0% found this document useful (0 votes)
0 views

1-intro

The document outlines a Python programming course starting April 3, 2023, detailing its structure, learning goals, and logistics. It includes case studies in various programming languages, course topics for each week, and emphasizes project-based learning. Students will engage in assignments with no grades, focusing on completion and feedback, while also learning to collaborate effectively.

Uploaded by

Aditya tripathi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

1-intro

The document outlines a Python programming course starting April 3, 2023, detailing its structure, learning goals, and logistics. It includes case studies in various programming languages, course topics for each week, and emphasizes project-based learning. Students will engage in assignments with no grades, focusing on completion and feedback, while also learning to collaborate effectively.

Uploaded by

Aditya tripathi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Welcome to Python!

April 3, 2023
parth sarin (they/them) tara jones (she/her)
Will Fang Chase Joyner Arpit Ranasaria

Sign up for sections on Canvas next Monday


(when you have a group)
Case Study: Hello World
Case Study: Hello World
// Java
Case Study: Hello World
// Java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Case Study: Hello World
// Java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}

$ javac HelloWorld.java
$ java HelloWorld
Hello world!
Case Study: Hello World
Case Study: Hello World
// C++
Case Study: Hello World
// C++
#include <iostream>
using namespace std;

int main() {
cout << "Hello world!" << endl;
return 0;
}
Case Study: Hello World
// C++
#include <iostream>
using namespace std;

int main() {
cout << "Hello world!" << endl;
return 0;
}

$ g++ helloWorld.cpp
$ ./a.out
Hello world!
Case Study: Hello World
Case Study: Hello World

print("Hello world!")
Case Study: Hello World

print("Hello world!")

$ python helloworld.py
Hello world!
Case Study: Int Size
Case Study: Int Size
// C++
Case Study: Int Size
// C++
#include <iostream>
using namespace std;

int main() {
cout << sizeof(41) << endl;
return 0;
}
Case Study: Int Size
// C++
#include <iostream>
using namespace std;

int main() {
cout << sizeof(41) << endl;
return 0;
}

$ g++ intSize.cpp
$ ./a.out
4
Case Study: Int Size
Case Study: Int Size

print((41).__sizeof__())
Case Study: Int Size

print((41).__sizeof__())

$ python intsize.py
28
>>> import this
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.


Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
>>> import this
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do
it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
what this class is what this class is not
• Deep dive into the Python programming • An introduction to programming — take 106A!
language
• A class about "low-level" vs. "high-level"
• Implementation details programming — take 107!
• Language design • A class about arti cial intelligence — take
229, 230n, etc.!
• Etc.
• Project-based learning — build things
(physical and digital) with Python
• An introductory course :) — 106A and 106B /
programming maturity are the prerequisites
fi
Learning Goals
Learning Goals
After CS 41, students will be able to...
1. Compare and contrast Python’s language design with other languages
they’ve seen before
2. Determine whether or not Python is an appropriate language to write a
program in
3. Design the architecture of a Python project and implement it knowing
which resources to consult
4. Work with a team more effectively by using pair programming resources
and balancing work appropriately
5. Interact with and augment others' digital or physical creations using
Python
Logistics
Logistics
Website https://stanfordpython.com
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Assignments 3 assignments + a nal project
A0 is individual, the rest are in groups

fi
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Assignments 3 assignments + a nal project
A0 is individual, the rest are in groups
Grading No grades on any assignments, feedback only
Overall course grade is based on completion
fi
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Assignments 3 assignments + a nal project
A0 is individual, the rest are in groups
Grading No grades on any assignments, feedback only
Overall course grade is based on completion
Labs Class on Tuesday, Lab on Thursday
fi
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Assignments 3 assignments + a nal project
A0 is individual, the rest are in groups
Grading No grades on any assignments, feedback only
Overall course grade is based on completion
Labs Class on Tuesday, Lab on Thursday
Playlist Link on the website
fi
Logistics
Website https://stanfordpython.com
Ed Discussion, Ed workspaces, link on the website
Canvas Section sign-up, link on the website (assignments tab)
Groups Link on the website (assignments tab)
Assignments 3 assignments + a nal project
A0 is individual, the rest are in groups
Grading No grades on any assignments, feedback only
Overall course grade is based on completion
Labs Class on Tuesday, Lab on Thursday
Playlist Link on the website
Masking Masks recommended, safety is the priority
fi
Unicornelius (any/all)
The Road Ahead
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 1: Welcome & Basics


Week 2: Data Structures & OOP
Week 3: Electronics
Week 4: Python & the Web, APIs
Week 5: Python & the Web, Server-side
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations
The Road Ahead

Week 6: Low-Level & Embedded Python


Week 7: Functions & Functional Programming
Week 8: Standard & Third-Party Libraries
Week 9: Gaming
Week 10: Final Project Presentations

You might also like