Welcome to CS106A
- Instructor - Nick Parlante - CS senior lecturer, Google
- Head TA - Juliette Woodrow
- CS106A teaches basic coding and problem solving
like swimming, you can't just read about it
Learn by doing - "reps" Nick's favorite word
- No prior experience required
- We are careful to go step by step
You Will Be Amazed
- In just a couple weeks
- You will be amazed at what you can build
- Partly because computers are powerful
- Partly because it's easier than you think
Why Take CS106A?
- 1. Understand What Computers Can Do
The nature of computers is code
Understand what computers can and cannot do
Not some hocus-pocus mythology of computers
- 2. Solve Coding Problems
Python is powerful
In 10 weeks, you'll learn enough to solve real problems
Maybe don't take CS106A senior year
- 3. Hidden Agenda
You might find you like it
Take CS106B
We have a whole department of this stuff!
Here is the deal...
Step-1 - Code is going to look bad
- Code will look kind of awful
This will be evident right away!
- Weird syntax
- Unhelpful error messages
- Computer systems can be weirdly stupid and inflexible
You see this trying to enter data into web forms
Like you type a space in the wrong place and the whole thing shatters
- BUT .. this is a superficial badness
Aside: Why is syntax inflexible?
- Computers are powerful but mechanical and kind of stupid
- This is the basic deal of computer systems
You, as a programmer, have an idea for the real world
You express the idea in mechanical syntax so the computer can understand
Step-2 - And Then it's Going To Work
- Push through the superficial syntax
It's weird, but not difficult
- We will show you how A connects to B, B connects to C
- Show you how to fix some common problems
- And then your code is going to work
- "That's it?" you will say
"That's how this works?"
3. A Prediction About Your Code
Theme: "broken" is the natural state of code
- You will have code, and at first it is not working
- You will work on it, fixing this and that
- And one moment you will click the Run button..
- And it will rise up, working perfectly
- That moment is very satisfying
- You built it
- Working code is sort of tangibly satisfying
- This keeps CS work engaging
Writing a great essay is satisfying, but a more abstract pleasure
Course Mechanics..
Links on Course Page
- cs106a.stanford.edu - links to everything from there
- Juliette Woodrow - our super head TA
Contact her if you need a problem solved
Best to email before class
- Link to "Python Guide" written detail
- Videos available after lecture within 2 hours - links on course page
The videos will be sufficient for you to follow along with the course
When we get back to in-person:
We like in-person lecture attendance
Our room does not quite have enough seats for everyone anyway
Office Hours
- Maintained on the course page, so look there
- Nick's first week office hours / Zoom - right after class
See link on course page
Mon 2:35 - 3:35
Wed 2:35 - 3:35
- Juliette will have hours Wed Thu - see course page
- Starting Sun at the end of week-1, the official "LaIR" will open with tons of help hours in the evenings
Python Language
- Using Python3
- Python is "programmer friendly"
get things done easily
- Not just for CS people
- Very popular for data, all sorts of things
Pedagogy Notes
- Lab in lecture - reinforce
- Education research, Carl Wieman (Stanford)
Do a little activity with what you just saw
- Typical schedule
Give out homework on Wed
Lecture on that topic through Fri
HW is due Tue or Wed following week
So we always give you the weekend
Lecture Notes and Exercises
- I'll provide notes like this each day
- Often including links of code exercises to try
- I go through pretty fast .. do examples etc.
- After lecture, you should, say, 60% understand the ideas
- You will likely need to review the examples to solidify
Maybe after class
Maybe when the homework comes out on these topics
- Ultimately, you want to be able to solve the lecture problems without peeking at a solution
Nick's Theory of the 10 Week Quarter
- We're going to go quite fast at the start of the quarter
- Reduce the load at the very end
- This first material is weird but not that difficult
- Just hang in there, this will give us more time later
Please read the syllabus for other details - linked off course page