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