You're not currently signed in. Sign in »

CS 101

Introduction to Programming for Engineers and Scientists

N E Davis · Computer Science


What When and Where
Lecture Mon 11:00–11:50 · Zoom
Labs Per-section, see below; L416 Digital Computer Laboratory
TA Office Hours Mon/Tue/Wed afternoons, see below; 0220 Siebel Center for Computer Science
Class URL
Enrollment Course catalog
Instructor email
Class forum Piazza
Python Run online » Install (3.7 or higher) » Practice »
MATLAB Run online » Purchase » Practice »
Gradebook RELATE Gradebook »

Software & Textbooks



In addition to the lesson notes, we refer you to two textbooks throughout the semester. These are optional, and I recommend getting the PDF through the library link rather than buying a hard copy.


There are four components to your course grade: lessons, homework, labs, and the project. Occasionally extra credit will be offered.

Component Value per Assignment Total Value Explanation
Lessons 1% 25% There are 28 lessons total; the lowest three grades are dropped. (Lessons are due the week after they are assigned on Wednesday at 10 p.m. CT.)
Homework 2½% 30% There are thirteen homeworks total; the lowest grade is dropped. (Homework is due Wed 10 p.m. CT.)
Lab/Discussion 2½% 25% There are eleven labs total; the lowest grade is dropped.
Project variable 15% There will be several project milestones and a final report.

Because we automatically drop several assignments in each category, CS 101 does not excuse absences or failure to complete assignments. Please plan to complete assignments early or before necessary travel. Labs may be made up during the next week with a doctor's note or travel letter. See the absence policy for more information.

Letter Grade Range Letter Grade Range Letter Grade Range
A+ 100+ A [93⅓,100) A- [90,93⅓)
B+ [86⅔,90) B [83⅓,86⅔) B- [80,83⅓)
C+ [76⅔,80) C [73⅓,76⅔) C- [70,73⅓)
D+ [66⅔,70) D [63⅓,66⅔) D- [60,63⅓)



Lesson Release Date Due Date (10 p.m.)
lesson00 computation/intro 2021-08-23 2021-09-08
lesson01 python/intro 2021-08-25 2021-09-08
lesson02 python/types 2021-08-30 2021-09-08
lesson03 python/logic 2021-09-01 2021-09-08
lesson04 python/flow 2021-09-08 2021-09-15
lesson05 python/loops 2021-09-13 2021-09-22
lesson06 python/files 2021-09-15 2021-09-22
lesson07 python/dict 2021-09-20 2021-09-29
lesson08 python/memory 2021-09-22 2021-09-29
lesson09 python/error 2021-09-27 2021-10-06
lessonx0 python/map (extra credit) 2021-09-27 2021-10-13
lesson10 symbolics/algebra 2021-09-29 2021-10-06
lesson11 symbolics/calculus 2021-10-04 2021-10-13
lesson12 symbolics/physics 2021-10-06 2021-10-13
lesson13 numerics/plotting 2021-10-11 2021-10-27
lesson14 numerics/vector 2021-10-13 2021-10-27
lesson15 numerics/random 2021-10-20 2021-10-27
lesson16 numerics/matrix 2021-10-25 2021-11-03
lesson17 numerics/calculus 2021-10-27 2021-11-03
lesson18 numerics/equation 2021-11-01 2021-11-10
lesson19 numerics/brute 2021-11-03 2021-11-10
lesson20 numerics/greedy 2021-11-08 2021-11-17
lesson21 numerics/monte 2021-11-10 2021-11-17
lessonx1 python/module (extra credit) 2021-11-10 2021-12-01
lesson22 matlab/intro 2021-11-15 2021-12-01
lesson23 matlab/text 2021-11-17 2021-12-01
lesson24 matlab/poly 2021-11-29 2021-12-08
lesson25 matlab/stats 2021-12-01 2021-12-08
lesson26 matlab/fit 2021-12-06 2021-12-08
lesson27 matlab/model 2021-12-08 2021-12-08

Lesson introductions and other videos are also available on MediaSpace with a backup mirror at ClassTranscribe, both with captions. (ClassTranscribe currently appears to require multiple login attempts for the link to work.)


Lab Week Of
lab00 orientation 2021-08-23
lab01 formulae 2021-08-30
No lab 2021-09-06
lab02 complex 2021-09-13
lab03 dna (project launch) 2021-09-20
lab04 language 2021-09-27
lab05 encode 2021-10-04
lab06 nuclear 2021-10-11
No lab (project working day) 2021-10-18
lab07 decode 2021-10-25
lab08 censorship 2021-11-01
No lab (project working day) 2021-11-08
lab09 earthquake 2021-11-15
lab10 life 2021-11-29

Labs meet synchronously (all together at their designated time). We will have course support staff to help you work through the projects in small groups.


Homework Due Date (10 p.m.)
hw00 · Python (Math Review & Debugging) 2021-09-08
hw01 · Python (Piecewise Functions) 2021-09-15
hw02 · Python (Automating with Loops) 2021-09-22
hw03 · Python (Calculus & Physics) 2021-09-29
hw04 · Python (Polynomials & Data Processing) 2021-10-06
hw05 · Python (Symbolic Mathematics) 2021-10-13
hw06 · Python (Plotting & Vectors) 2021-10-27
hw07 · Python (Random Distributions) 2021-10-27
hw08 · Python (Numerical Integration) 2021-11-03
hw09 · Python (Ballistics & Scientific Functions) 2021-11-10
hwxc · Python (Hunt the Wumpus) (extra credit) 2021-11-10
hw10 · Python (Optimization) 2021-11-17
hw11 · MATLAB (essentials) 2021-12-01
hw12 · MATLAB (modeling and curve fitting) 2021-12-08


There will be a project with components spanning the semester. More information will be communicated at the appropriate time.

There are several project working days scheduled in lab; you should not use these as your only working days, of course, but as a targeted opportunity to talk through your project approach and challenges with course staff.

Lab & Discussion Sections

Section Date & Time Teaching Assistant
AYA Mon 13h00–14h50 Dipayan
AYB Mon 15h00–16h50 Dipayan
AYC Mon 17h00–18h50 Chandni
AYD Tue 09h00–10h50 Albert
AYE Tue 11h00–12h50 Sita
AYF Tue 13h00–14h50 Alex
AYG Tue 15h00–16h50 Chandni
AYH Wed 13h00–14h50 Jaya
AYI Wed 15h00–16h50 Jaya
AYJ Wed 17h00–18h50 Alex
AYK Thu 09h00–10h50 Albert
AYL Thu 11h00–12h50 Sita
AYM Thu 13h00–14h50 Zitong
AYN Thu 15h00–16h50 Zitong
AYO Fri 09h00–10h50 Dipayan
AYP Fri 11h00–12h50 Sita
AYQ Fri 13h00–14h50 Irene
AYR Fri 15h00–16h50 Irene
OYS Thu 11h00–12h50 Sofia
OYT Thu 13h00–14h50 Sofia
OYU Thu 15h00–16h50 Sofia

Office Hours

Office hours are held to assist you in understanding course concepts and completing course assignments. You are also encouraged to ask questions on the course forum in the appropriate chat channel.

Office hours will begin the second week week of class. Times are subject to change before that week.

Day Time Location
Mon 16h00–17h50 0220 Siebel
Tue 14h00–19h50 0220 Siebel
Wed 09h00–09h50 Online: Discord
Wed 11h00–11h50 Online: Zoom (w/ Prof. Davis)
Wed 14h00–17h50 Online: Discord

The Engineering CARE Center also has tutorial hours available for CS 101.

If you have spent more than two hours working on a problem and you can not see a way forward, post your code (not a screenshot!) privately to the course forum and include #twohours in the title. A TA will help you resolve your issues and be able to proceed.

Policies & Statements

Other Grainger College of Engineering and Student Code policies may apply.