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 MPs provide practice with working on larger software projects.
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 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 hall, 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
Labs and MPs
Programming is about (more) practice. Period.
-
Our CS 125 Android programming assignments—known here as machine problems—are another enormous part of how you learn the material.
-
Start them 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.
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 2018: MPs
-
7 MPs 4
-
34,030 graded commits from 21,442 submissions
-
78,883 autograder runs and 105,602 test suite runs 5
-
406,028 failed test cases and 247,970 successful ones
-
711,429 added or modified lines of code 6
-
13,192 estimated hours spent working in IntelliJ 7
Fall 2018: Homework
-
108 homework and exam programming problems
-
8,964 lines of testing code
-
26,629 hours of practice on the homework problems, including 8,967 on the ungraded practice problems
-
1,010,725 submissions on the quiz and homework programming problems…
-
…containing 12,585,514 (!!!) lines of non-commenting code!
-
Which is roughly 14,000 lines of code per student.
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
Cheating
I take academic integrity extremely seriously. Cheaters will be caught and punished.
Week 0
-
Today: I’ll hang around outside Lincoln until noon and then be back in Siebel 0403 (our basement space) from 1–4PM. 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.
-
Tomorrow: Quizzes and labs start. Both are important! And more homework!
-
Wednesday: We’ll keep learning to program. And more homework!
-
Thursdays: Office hours will start. And 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 02/03/2019.
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) from 7–8PM in Siebel 0216.
-
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 0216
-
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
Announcements
-
Take our intro survey!
-
Homework starts today
-
Labs start tomorrow and the first one includes important setup
-
Quizzes start tomorrow, but the first quiz is easy and mainly covers course policies
-
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