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:
-
Classes, 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 to help introduce you to the culture of technology.
Class
-
Class is 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 10AM and go until 10: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 Lincoln Theater
This is a beautiful place, but there are a bunch of us here together.
Making Lincoln 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 May.
-
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. Consider an electronic copy!
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?
Fall 2019 Homework
-
167 homework and exam programming problems
-
8,789 lines of testing code
-
30,541 hours of work on the homework problems, including 6,484 on the ungraded practice problems
-
802,458 submissions on the lab, quiz, exam, and homework programming problems…
-
…containing 15,066,257 (!!!) lines of non-commenting code!
-
Which is roughly 21,500 lines of code per student (!!!).
Fall 2019 Homework
And the bugs. Oh, the bugs…
-
802,458 programming problem submissions, resulting in…
-
133,965
checkstyle
errors, -
274,434 compilation errors,
-
264,126 testing errors,
-
leaving 129,933 correct submissions.
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
-
Use the course forum!
Week 0
-
Today: I’ll hang around outside Lincoln until 12PM and then be back in Siebel 2227 (my office) from 3–5PM. Please stop by to say hi or if you have any questions.
-
Monday: our first homework problem was released.
-
Yesterday: Labs and our first quiz started.
-
Today: Our third homework problem has been posted. It’s easy, but our goal is for you to be programming every day from now until May.
-
Thursdays: More homework
-
Friday: We’ll keep learning to program… and more homework!
Weeks 0 and 1
This semester starts on a Wednesday, so things are going to be a bit out-of-order initially.
-
For the first two weeks homework will be released daily but not due until Sunday 2/2/2020.
-
Some homework may be released before we cover the concept in class. Feel free to give them a try, or just wait until we get to the concept in class.
-
After two weeks everything will straighten itself out.
Questions?
Extra Credit Opportunities!
Already, and more to come…
-
Take our initial student survey by Sunday 02/02/2020 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 (Thursday) at 7PM in Siebel 1404.
-
Registration for CS 196 should be open now.
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 0216.
-
It’s staffed by a fantastic TA (Heather) 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.
Announcements
-
Take our intro survey!
-
Several homework problem available now.
-
Quizzes started yesterday but the first quiz is easy and mainly covers course policies.
-
Friday we’ll cover variables, primitive types, expressions, and conditional statements.
-
If you haven’t registered yet please complete this form
-
I’ll be around after class in the lobby and in Siebel 2227 starting at 3PM if you have questions or want to say hi.
-
Have questions? Ask on the forum.