CS 101
Introduction to Programming for Engineers and Scientists
Ruby Tahboub · Computer Science
Mattox Beckman · Computer Science
Resources
What | When and Where |
---|---|
Lecture | M,W |
In-Person Labs | Per-section, see below; L416 Digital Computer Laboratory |
TA Office Hours | see below; 0224 Siebel Center for Computer Science; Discord Link |
Class URL | go.illinois.edu/cs101 |
Enrollment | Course catalog |
Instructor email | cs101admin@cs.illinois.edu |
Class forum | Campuswire |
Python | Run online » Install (3.7 or higher) » Practice » |
![]() |
Run online » Purchase » Practice » |
Gradebook | RELATE Gradebook » |
Software & Textbooks
Required
-
Python (version 3.7 or higher). We recommend installing Anaconda Python as it comes with all necessary libraries.
-
MATLAB (any modern version, post-2010) or Octave (a free open-source implementation, which will be adequate for CS 101).
Optional
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.
-
Hans Petter Langtangen, A Primer on Scientific Programming with Python, 5th ed. (2016). ISBN: 9783662498866.
- Library access to PDF copy (Please note that you can purchase a hard copy through SpringerLink website at a reduced price if desired.)
- Book website
-
Stormy Attaway, MATLAB: A Practical Introduction to Programming and Problem Solving, 5th ed. (2018) ISBN: 9780128154793
Grading
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 | 20% | 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.
When possible, we permit a late period for you to complete a missed assignment eligible for 50% credit. (This may not available the case around holidays, breaks, and the end of the semester.) Please read directions on each assignment carefully when you start a session to make sure that it's eligible for the credit you expect.
- Time zone conversion tool. All times are in U.S. Central Time—note that this changes in spring and in fall due to Daylight Savings Time.
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⅓) |
Assignments
Lessons
Lesson | Release Date | Due Date (10 p.m.) |
---|---|---|
lesson00 computation/intro |
2022-08-22 | 2022-09-07 |
lesson01 python/intro |
2022-08-26 | 2022-09-07 |
lesson02 python/types |
2022-08-26 | 2022-09-07 |
lesson03 python/logic |
2022-09-02 | 2022-09-14 |
lesson04 python/flow |
2022-09-09 | 2022-09-21 |
lesson05 python/loops |
2022-09-09 | 2022-09-21 |
lesson06 python/files |
2022-09-16 | 2022-09-28 |
lesson07 python/dict |
2022-09-16 | 2022-09-28 |
lesson08 python/memory |
2022-09-23 | 2022-10-05 |
lesson09 python/error |
2022-09-23 | 2022-10-05 |
lesson10 symbolics/algebra |
2022-09-30 | 2022-10-12 |
lesson11 symbolics/calculus |
2022-09-30 | 2022-10-12 |
lesson12 symbolics/physics |
2022-10-07 | 2022-10-19 |
lesson13 numerics/plotting |
2022-10-07 | 2022-10-19 |
lesson14 numerics/vector |
2022-10-14 | 2022-10-26 |
lesson15 numerics/random |
2022-10-14 | 2022-10-26 |
lesson16 numerics/matrix |
2022-10-21 | 2022-11-02 |
lesson17 numerics/calculus |
2022-10-21 | 2022-11-02 |
lesson18 numerics/equation |
2022-10-28 | 2022-11-09 |
lesson19 numerics/brute |
2022-10-28 | 2022-11-09 |
lesson20 numerics/greedy |
2022-11-04 | 2022-11-16 |
lesson21 numerics/monte |
2022-11-04 | 2022-11-16 |
lesson22 matlab/intro |
2022-11-11 | 2022-11-30 |
lesson23 matlab/text |
2022-11-11 | 2022-11-30 |
lesson24 matlab/poly |
2022-11-24 | 2022-12-07 |
lesson25 matlab/stats |
2022-11-24 | 2022-12-07 |
lesson26 matlab/fit |
2022-12-02 | 2022-12-07 |
lesson27 matlab/model |
2022-12-02 | 2022-12-07 |
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.)
Project
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.
Project Component | Due Date (10 p.m.) |
---|---|
Progress Report 1.1) | 2022-09-30 |
Milestone #1 | 2022-10-14 |
Peer Evaluation #1 | 2022-10-16 |
Progress Report 2.1 | 2022-10-28 |
Progress Report 2.2 | 2022-11-04 |
Progress Report 2.3 | 2022-11-11 |
Milestone #2 | 2022-11-18 |
Peer Evaluation #2 | 2022-11-21 |
Milestone #3 | 2022-12-12 |
Peer Evaluation #3 | 2022-12-14 |
All submissions for the project will be done on Gradescope.
Labs
Lab | Week Of |
---|---|
(no lab) | 2022-08-22 |
lab00 orientation |
2022-08-29 |
(no lab) | 2022-09-05 |
lab01 formulae |
2022-09-12 |
lab02 complex |
2022-09-19 |
lab03 dna |
2022-09-26 |
lab04 language |
2022-10-03 |
lab05 encode |
2022-10-10 |
lab06 nuclear |
2022-10-17 |
lab07 decode |
2022-10-24 |
lab08 censorship |
2022-10-31 |
(no lab) | 2022-11-07 |
lab09 earthquake |
2022-11-14 |
(no lab) | 2022-11-21 |
lab10 life |
2022-11-28 |
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
Homework | Due Date (10 p.m.) |
---|---|
hw00 · Python (Math Review & Debugging) |
2022-09-07 |
hw01 · Python (Piecewise Functions) |
2022-09-19 |
hw02 · Python (Automating with Loops) |
2022-09-26 |
hw03 · Python (Calculus & Physics) |
2022-10-03 |
hw04 · Python (Polynomials & Data Processing) |
2022-10-10 |
hw05 · Python (Symbolic Mathematics) |
2022-10-17 |
hw06 · Python (Plotting & Vectors) |
2022-10-24 |
hw07 · Python (Random Distributions) |
2022-10-31 |
hw08 · Python (Numerical Integration) |
2022-11-07 |
hw09 · Python (Ballistics & Scientific Functions) |
2022-11-14 |
hw10 · Python (Optimization) |
2022-11-28 |
hw11 · Python (Essentials) |
2022-12-08 |
Materials
If we happen to produce materials for a specific lecture, we will put it here.
All of Mattox's Jupyter notebooks can be found on Github
Lecture Date | Link |
---|---|
Wednesday, August 24 | Slides |
Monday, August 29 | Slides; Exercises |
Wednesday, August 31 | Slides; Exercises |
Wednesday, September 7 | Exercises |
Monday, September 12 | Slides; Exercises |
Wednesday, September 14 | Slides; Exercises |
Monday, September 19 | Slides; Exercises |
Wednesday, September 21 | Slides; Exercises |
Monday, September 26 | Slides; Exercises |
Wednesday, September 28 | Slides; Exercises |
Monday, October 3 | Slides |
Monday, October 10 | Slides Exercises dataL14.txt |
Wednesday, October 12 | Slides Exercises red.txt blue.txt class exercise countries.txt |
Monday, October 24 | Slides Exercises |
Wednesday, October 26 | Slides Exercises |
Wednesday, November 2 | Slides Notebook |
Monday, November 14 | Slides |
Wednesday, November 16 | Slides |
Wednesday, December 7 | Slides |
Lab & Discussion Sections
Section | Date & Time | Teaching Assistant |
---|---|---|
AYA | Mon 13h00–14h50 | Dipayan |
AYB | Mon 15h00-16h50 | Vien |
AYD | Tue 09:00-10:50 | Vidya |
AYE | Tue 11:00-12:50 | Alex |
AYF | Tue 13h00–14h50 | Alex |
AYG | Tue 15h00-16h50 | Vidya |
AYH | Wed 13h00–14h50 | Jaya |
AYI | Wed 15h00-16h50 | Jaya |
AYL | Thu 11:00-12:50 | Vivek |
AYM | Thu 13h00–14h50 | Vien |
AYO | Fri 09:00-10:50 | Vivek |
AYP | Fri 11:00-12:50 | Alex |
AYQ | Fri 13h00–14h50 | Patrick |
AYR | Fri 15h00-16h50 | Patrick |
There are no online-only lab sections this semester.
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.
Virtual office hours will be held on discord.
We also have a scheduling queue.
Day | Time | Location |
---|---|---|
Monday | 9:00 | Discord |
Monday | 13:00 | 0224 Siebel |
Monday | 15:00 | 0224 Siebel |
Monday | 16:00 | Discord |
Tuesday | 10:00 | 0224 Siebel |
Tuesday | 14:00 | 0224 Siebel |
Tuesday | 15:00 | Discord |
Wednesday | 13:00 | 0224 Siebel |
Wednesday | 14:00 | Discord |
Wednesday | 17:00 | 0224 Siebel |
Thursday | 12:00 | Discord |
Thursday | 13:00 | 0224 Siebel |
Thursday | 14:00 | Discord |
Friday | 13:00 | 0224 Siebel |
Friday | 14:00 | 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.
- An Anki practice deck for Python has been contributed to the course by Michael Montanile.
Policies & Statements
- Absences
- Academic Integrity
- Disability Resources and Educational Services (DRES)
- Mental Health
- Religious Observance
Other Grainger College of Engineering and Student Code policies may apply.