Today: Last lecture, your future in CS, conclusions

Final Exam

Nick Chat After Class

Nick will answer questions after class, and after that at Bytes cafe. Stop by with any sort of CS questions. Also on Zoom at 4:00.

Python Guide

I'm gradually working on and expanding the Python Guide, aiming to keep it as a free resource on the web. If you want to find it in the future, it's linked from my home page and the CS106A page.


CS106A - What Just Happened?

Things we talked about on the first day. Years from now, you will still knows things.

1. The Nature of Code

2. Your are a Python Programer Now

alt: the course is a series of hurdles

3. Skill: Solving in the Midst of Chaos

Learned All The Programming Techniques?

Nope!

Learned the Important Core

Here is the deal: Python and the space of all programming techniques is very large. A bigger space than you might think.

You have learned the most important 80% core: loops, lists, strings, functions, tests. There's a few more important techniques in CS106B. Most programs, even very advanced programs, are centered around those core features. If you need to use a less-common technique, you may look it up and figure out as you go. That's how most programmers proceed - the core they know well, the other stuff they look up as they go.


Women in CS Trend - 1994 - 2020

Slide from Mehran Sahami, Stanford CS-Education. The bars is number of students, the line is percentage of women - both are going up which is great, I interpret as a slow broadening of the field.


alt: increasing percentage of women in CS


What Do Most People think of Programming?
vs. CS106A

Fact #1: Programmer Shortage

Nick Python T-Shirt Story

I was on a bicycle, wearing ratty clothes and a "Python" t-shirt stopped for a red light. A person walking in the cross-walk in front of me, stopped, turned to me, and asked if I was looking for work.

Like how desperate for programmers was that person? That is what an extreme programmer shortage looks like!


Background: Many Computer Languages

Python Niche - Programmer Efficient

Code Ideas We've Seen in Python

Your Second Programming Language

Here is some C++ code

// comments start with 2 slashes
int i = 0;                 // must declare var
while (i < 100) {          // parens + braces
    i += 1;                // same as py + semicolon
    if (is_bad(i)) {       // parens + braces
        return;
    }
    i += "Hello";          // error detected
    // int/string types different,
    // so above does not work.
    // Error is flagged at edit-time:
    // earlier than python, an improvement
}

Possible Next Steps

Most Stanford students take 1 or 2 CS classes and keep with their chosen major. It's easy to imagine they use Python here and there as part of their work.

After CS106A ..

Next "CS106" CS106B

Think About Section Leading

Map of CS Major

Aside: What is CS Integer Mathematics?

CS Major Tracks / Concentrations

Some Select Courses

We'll just mention a few courses you could take, build the picture that there are many different areas of CS you might explore. Many of these require CS106B as the pre-requisite.

Scientific Python CME 193

Applied Machine Learning CS129

Human Computer Interaction (HCI) CS147

Web Applications CS142

Graphics CS148


Human Computer Interaction - HCI Design

Symbolic Systems Major

A sibling to the CS major - similar intellectual domains but less focus on coding

An interdisciplinary major that uses the lenses of CS, Philosophy, Psychology and Linguistics to study systems that use symbols to represent information. In Symsys you can concentrate on AI, Neuroscience, Natural Language, Philosophical Foundations or design your own concentration.


Big Data - Machine Learning

Ghost Example

Machine Learning Sketch

Machine Learning - Programmer + Computer

Self-Driving Cars - Machine Learning

One difficult case is very illuminating

alt: bike attached to back of car


Where is the Magic in CS?


alt: ghost input image with foot in the way

Where is the Insight? The Power?


Where is the power in this story?

Thanks To Juliette and the Section Leaders

Thanks to Juliette and the section leaders! The only way this course can work is with their prodigious and generous efforts. Juliette and the section leaders are a tribe selected for technical skill and generosity - a fantastic group of people and we are lucky to have them.

Fare Well Python Programmers!

In closing, I'll say that teaching this class is very satisfying endeavor - it's great to see the light in someone's eyes when the power we know in CS starts working for that student.

Best of luck with your future projects!