Welcome to CS 125. What will you build this semester?
> Click or hit Control-Enter to run the code above
Meet The Course Staff!
You’re In The Right Place
What Are Computers Good At?
-
Basic math
-
Simple decision making
-
Doing things over and over again very, very fast
-
Storing data
-
And communicating
> Click or hit Control-Enter to run the code above
> Click or hit Control-Enter to run the code above
> Click or hit Control-Enter to run the code above
> Click or hit Control-Enter to run the code above
What Are Computers Good At?
-
Basic math
-
Simple decision making
-
Doing things over and over again very, very fast
-
Communicating… well maybe you’re OK at that 1.
All things you aren’t good at!
Your Perfect Complement
Together you can solve any problem.
Concept and Craft
Computer science is both a conceptual and an applied discipline.
-
Concepts: computer science has deep roots in mathematics and explores the fundamental heart of problem solving
-
Craft: as you learn computer science, you learn the most powerful skill on Earth: programming.
Concepts
-
Algorithms: ways of solving problems and what makes certain problems hard
-
Representation: representing data so that computers can manipulate it
-
Recursion: breaking down problems into smaller, manageable pieces
Craft
-
Imperative programming: solving problems using constructs like loops and conditional expressions
-
Object-oriented programming: design patterns for starting to work on larger software projects
-
Software development: design, style, debugging, testing, and other core software development competencies
-
Android programming: working with large, complex, and unfamiliar programming environments
Don’t Tell Anyone: Programming Is Fun
-
Really fun. It’s an ultimate mental challenge and a full left-right brain workout.
-
Once you get good at it, it’ll be one of your favorite things to do. And you can change the world. So there’s that.
Creations
Computer scientists have built some incredible things! So we’ll try to find time to talk about things like:
-
The internet
-
Google
-
Computer hardware
-
Artificial intelligence
-
And something that you might suggest! We’re open to ideas.
Hi, I’m Geoff
This is My Thing
This is a Big Class
How CS 125 Works
Roughly the course material is broken down into two parts:
-
Lectures, quizzes, and homework cover core programming concepts.
-
Labs and the Machine Project provide practice with working on larger software projects.
-
We’re also reading a book this semester to help introduce you to the culture of technology.
Lectures
-
Lectures are taught in an active learning style. We’ll spend our time reading and writing code together, just like the examples we started class with.
-
If you have a laptop, bring it with you. If you don’t, we’ll make accommodations.
-
You’ll receive credit for being in the right place at the right time and following along and participating
-
I will start promptly at 11AM and go until 11:50AM. You will get your money’s worth.
-
There will be excellent 2 and loud 3 music beforehand if you need help waking up.
Together in Foellinger Auditorium
This is a beautiful place, but there are a bunch of us here together.
Making Foellinger Work
-
Please arrive early so that you can get a seat.
-
Please bring a fully-charged laptop. (Even Siebel 1404 doesn’t have chargers…)
-
Please be gentle with the WiFi. Our in-class activities are more important than whatever soccer match happens to be on now.
Homework
Programming is about practice. Period.
-
Our CS 125 homework problems are the primary way that you learn the material.
-
One per day from now until December.
-
Start them early, get help as needed, and don’t give up! The more you work at them, the more you learn.
Quizzes
CS 125 gives weekly assessments in the Computer-Based Testing Facility
-
12 weekly assessments will be quizzes, 3 will be midterms
-
All quizzes and midterms are worth the same, but midterms are more cumulative and cannot be dropped
-
Every quiz and midterm contains programming problems
-
The point of these assessments is to get you to do the homework
Let Me Love on the CBTF
List of schools that give weekly computerized exams in CS1 in a controlled environment:
-
The University of Illinois
-
…?
-
…Anyone?
-
You may come to hate and fear the CBTF 4, but it will help you learn.
Labs and MPs
Programming is about (more) practice. Period.
-
This semester we’re moving to a single long multi-part machine project that will span the entire semester. You’ll be building a cool Android app in stages calibrated to help you learn.
-
Start each MP checkpoint early, get help as needed, and don’t give up! The more you work at them, the more you learn.
-
Lab this semester will also cover Android programming and other related topics.
Coders by Clive Thompson
This is a fantastic book—you will enjoy it and learn a lot from it. (A few questions about it will be on each quiz.)
Get your copy here.
CS 125 Course Design Principles
Programming is about consistent, regular practice. Period. The course is designed with this in mind.
-
There are no high-percentage exams in CS 125
-
You’ll do a bit each and every day
-
Good news: no cramming, no high-stakes assessments
-
Bad news: no way to save yourself if you get behind
-
So don’t
And in the End?
Spring 2019 Homework
-
160 homework and exam programming problems
-
8,789 lines of testing code
-
23,379 hours of work on the homework problems, including 5,672 on the ungraded practice problems
-
588,765 submissions on the lab, quiz, exam, and homework programming problems…
-
…containing 10,718,190 (!!!) lines of non-commenting code!
-
Which is roughly 20,000 lines of code per student (!!!).
Spring 2019 Homework
-
588,765 programming problem submissions, resulting in…
-
95,721
checkstyle
errors, -
221,039 compilation errors,
-
178,837 testing errors,
-
leaving 93,168 correct submissions.
-
Of which 11,603 were perfect.
Who’s a Beginner?
Who’s Not a Beginner?
Beginner’s Rule
-
Many of you are beginners, but not all of you.
-
If you’re new and you meet someone that seems much better than you—they have probably just had more practice.
-
Don’t get discouraged! But the only way to catch up is to keep practicing.
-
You will get better. And it gets fun fast…
How To Succeed in CS 125
-
Prepare for, attend, and participate in your assigned lecture and lab section
-
Do your daily homework problems
-
Start the MPs early and make a regular appointment to come to office hours
-
Don’t miss the weekly quizzes in the CBTF—they start tomorrow
Week 0
-
Today: I’ll hang around outside Foellinger until 1PM and then be back in Siebel 0403 (our basement space) from 3–5PM. Please stop by to say hi or if you have any questions.
-
Today: Our first homework problem has been posted. It’s easy, but our goal is for you to be programming every day from now until May. CBTF quizzes also start today.
-
Tomorrow: Labs start tomorrow. And more homework!
-
Wednesday: We’ll keep learning to program. Office hours will start. And more homework!
-
Thursdays: More homework
-
Friday: We’ll keep learning to program… and more homework!
Questions?
Extra Credit Opportunities!
Already, and more to come…
-
Take our initial student survey by Sunday 09/08/2019 at midnight.
CS 196: The CS 125 Honors Section
If you are up for a challenge—or have a bit of programming experience and so need a challenge—CS 125 offers an honors section. Find out more on the CS 196 website.
-
Their first class is tomorrow (Tuesday) at 7PM in Siebel 1404.
-
Registration for CS 196 won’t open until later this week or early next.
CS 199 EMP: The CS 125 Extra Practice Section
If you need a bit of help keeping up with the CS 125 material we have a weekly review section called EMP (Even More Practice).
-
EMP meets Thursdays from 5–7PM in Siebel 1404.
-
It’s staffed by a fantastic TA and multiple CAs who are excited about working with beginners
-
You can enroll for one credit hour—but you don’t have to. Feel free to just show up when and if you need some extra help.
If You Aren’t Enrolled Yet…
Sign up here to get temporary access to the course forum and other materials.
Is Josh Here?
Announcements
-
Take our intro survey!
-
Homework starts today.
-
Quizzes start today but the first quiz is easy and mainly covers course policies.
-
Labs start tomorrow.
-
Wednesday we’ll cover variables, primitive types, expressions, and conditional statements.
-
If you haven’t registered yet please complete this form and attend any lab this week.
-
I’ll be around after class in the lobby and in Siebel 0403 starting at 3PM if you have questions or want to say hi.