SCHEDULE
IMPORTANT NOTE: The schedule below represents the current best guess concerning due dates, topics covered, and discussions. I am providing this information to give you a general idea of the pace and timing of the class. As we move on, some dates might change. The readings listed are from the Langtangen textbook. As the term progresses, I will be posting notes and other readings for you.
Week 1 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
---|---|---|---|---|
M1 | Course Introductions The Role of Computation in Science Intro to Python |
|||
LAB1 | Lab 1: Introduction to Python | Read Sections 1.1 - 1.5, 4.1, 4.3.1 (up to p.
157) Work on Reflection #1 |
Reflection #1 | |
W1 | Functions Mini-Lab: Exploring Functions |
Read Sections 3.1.1, 3.1.3, 3.1.4, 3.1.5, 3.1.7,
3.1.9, 3.1.11, 3.1.13 Start Working on HW #1 |
Lab 1 | |
F1 | Conditional Statements Mini-Lab: If Statements |
Read Section 3.2. (You can ignore the last part of 3.2.2
that talks about lambda functions and if statements.) Start working on HW #2 |
||
Week 2 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M2 | Repetition Statements Mini-Lab: Repetition Statements (Loops) |
Read Section 2.1 |
ML: If Statements ML: Exploring Functions HW #1 |
|
LAB2 | Lab 2: Nested Loops | Read the "In The Spotlight: Using Nested Loop
Patterns" excerpt from the Gaddis book. It is available on
Kit. |
ML: Repetition Statements | |
W2 | Knowledge Check
In-class activity: (If/for) Problem Set In-class activity: (Function) Problem Set (Time permitting) Intro to Lists |
|
||
F2 | Arrays Mini-Lab: Intro To Arrays |
Read Sections 5.1 and 5.2 |
Lab 2 HW #2 |
|
Week 3 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M3 | More with Arrays Mini-Lab: Intro to Arrays, Part 2 Work through the Quiz on NumPy to test your understanding of working with arrays. (You should aim to get at least 80% correct!) |
Read Section 5.6
The following is another good reference for working with NumPy arrays: NumPy, Matplotlib & SciPy Tutorial |
ML: Intro to Arrays | |
LAB3 | Lab 3: Using Arrays If you are unable to access the link to the article at the end of the lab, it has also been posted in the General channel on our Teams site. |
ML: Intro to Arrays, Part 2 | ||
W3 | Multi-dimensional arrays and
built-in statistics functions Mini-Lab: Using Arrays, Part 2 |
The following is a reference for Statistics
functions in NumPy
|
||
F3 | Work day. Work on finishing lab or minilabs, or start working on practice exam. | Lab 3: Using Arrays | ||
Week 4 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M4 | Review/Practice Midterm | Print out a copy of the practice midterm from Kit and work through the problems. | ML: Using Arrays, PArt 2 | |
LAB4 | Exam 1 | |||
W4/F4 | Program Design Mini-Lab: Game of Life |
Description of Game of Life in Python with interesting starting world configurations: The Game of Life | ||
Week 5 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M5 | Computational Models | (Shiflet) Module 4.2: Predator-Prey Models | ||
LAB5 | PP #1: Population Dynamics | ML: Game of Life | ||
W5 | Work on PP #1 Part 1 | |||
F5 | Scientific Writing
with Google Colab Mini-Lab: Intro to Google Colab |
|||
Week 6 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M6 | Plotting using MatPlotLib Mini-Lab:Intro to Plotting with MatPlotLib |
Read Sections 5.3.1 and 5.3.2.
Read Sections 4.5 and 6.4.2. Refer to the following tutorials to get started: MatPlotLib Tutorials |
ML: Intro to Google Colab | |
LAB6 | Using Data | Read the selection (Section 4.1) from "Student's Guide to Python for Physical Modeling" that can be found on Kit. | ||
W6 | Work on finishing lab and/or PP #1. | ML: Intro to Plotting | ||
F6 | Fall Break Day - NO CLASS
Watch the video The Machine that Changed the World, Part I (approx. 60 min.) The video may be found on Kit, through the Links to CS History Videos file. Complete a video presentation reflection using the Video Reflective Response Template (or pdf) |
Follow-up Reading (after the video): "The Modern History of Computing" From the Stanford Encyclopedia of Philosophy | PP #1 Part 1 | |
Week 7 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M7 | Mini-lab: Solving Equations | Video Reflection (from Friday) | ||
LAB7 | Random Walks ML: Random Walks in One and Two Space Dimensions |
Read Sections 8.6 and 8.7 of your textbook | Using Data PP #1 Part 2 |
|
W7 | Continue working on Solving equations and Random Walks | |||
F7 | Mini-Lab: Applications of Random Walks | ML: Solving Equations | ||
Week 8 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M8 | Review for Exam 2 Work on projects |
Lab: Random Walks | ||
LAB8 | Exam 2 | |||
W8 | Work Day Use the time to work on this week's mini-labs or to catch up on late assignments. |
|
||
F8 | ML: ASCII Representation of Characters | Watch the following short video introductions to
number and character representations: A Quick Look at Representing Numbers (slides) A Quick Look at Representing Characters in Strings (slides) Reference Material: ASCII Table |
ML: Random Walk Appls | |
Week 9 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M9 | Final Project Discussion (Final Project Guidelines and Topics) | |||
LAB9 | Computer
Organization
Assembly and Machine Language ML: CPU Simulator |
|||
W9 | Work on Projects | |||
F9 | Floating Point Number Representation | Floating point number representation slides What Every Programmer Should Know About Floating-Point Arithmetic Floating Point Arithmetic: Issues and Limitations |
One-page final project progress report | |
Week 10 | ||||
Day | Class Topic | Before Class | Due (by 11:59 PM) | |
M10 | Algorithm Analysis
Sorting Visualizations (small scale) Comparisons (small scale) Animations with larger data sets |
ML: CPU Simulator | ||
LAB10 | Work on Projects | |||
W10 | Limits of Computing Halting Problem Wrap up Course evaluations | |||
F10 | Work on Projects |