Today: Last lecture, 3x tech and society, your future in CS, conclusions

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.

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.

Office Hours Today + Thu

I have office hours right after class today and Juliette will be joining us, and I also have hours Thu. Please feel free to stop by for any sort of discussion you are interested in.

Data Art Show

Thanks to all those who submitted data art. Here are the category winners..

Data Art Show Winners


A last tech / society question...

How Does Python Exist?

You have noticed that Python works well on your machine, and yet it's free. How does that work? Python is a great example of "open source" software.

Much of the internet is based on open standards - TCP/IP, HTML, JPEG - and open source software: Python (language), Linux (operating system), R (statistics system).

How Open Source Works:

Let's look at Python
alt: magazines make money on ads

Open Source License - Contributions

Open Source Economics


3 High level thoughts about CS106A..

1. How Far Have You Come?

alt: the course is a series of hurdles

2. Have You Learned All Programming Features?

No!

Python and the space of all programming techniques is huge. A bigger space than you might think.

What's most important is that you have learned the 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.

3. What is the Central Technique of CS?

What Do You Do With Broken Code?

Aside: The LaIR


CS106A - future paths..

After CS106A ..

Women in CS Trend

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


Programmer Shortage

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

Like how desperate for programmers was that guy? Conclusion: programmer shortage!


Pre CS106B chat..

Key Ideas We've Seen in Python

Your Second Programming Language

Here is some C++ code

// comments start with 2 slashes
int i = 0;                    // declare type of var
while (true) {                // curly braces
    i += 1;                   // same as py, semicolons
    if (i == 100) {           // same as py + braces
        break;
    }
    i += "Hello";             // error detected
    // int/string types different,
    // 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.

Next "CS106" CS106B

Scientific Python CME 193

CS129 Applied Machine Learning

Map of CS Major

Think About Section Leading

CS Major Tracks / Concentrations

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


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?

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

Best of luck with your future projects!