MCS 260: Introduction to Computer Science
Emily Dumas
University of Illinois at Chicago
Fall 2021
About the course
This course is an introduction to computer science that assumes no prerequisite knowledge of computer programming or computer science concepts.
The course focuses primarily on teaching the basics of the Python programming language (version 3), and discussing some of the concepts from computer science that are encountered along the way.
Staff
- Instructor: Emily Dumas
- Teaching assistants:
- Johnny Joyce
- Kylash Viswanathan
Slides and sample code
Slides are available as HTML or PDF.
Some lectures have associated sample programs. There is a GitHub repository that includes all of the sample programs. In the list below, the name of the sample program is a link to view the source code on GitHub (where there is nice syntax highlighting). The adjacent [⤓] link will download the source directly.
- Lecture 1 - Intro and number systems
- Lecture 2 - Python REPL & scripts; arithmetic
- Lecture 3 - Comments, variables, input
- Lecture 4 - booleans and conditionals
- Lecture 5 - lists
- Lecture 6 - For and While Loops
- Lecture 7 - strings and integers
- Lecture 8 - List comprehensions
- Lecture 9 - Functions
- Lecture 10 - Dictionaries
- Lecture 11 - String methods, math and random modules
- Lecture 12 - command line arguments, operating systems
- Lecture 13 - Files, String formatting
- Lecture 14 - Files for structured data
- Lecture 15 - JSON
- Lecture 16 - CSV
- Lecture 17 - Stacks and queues
- Lecture 18 - Exceptions
- Lecture 19 - The os module
- Lecture 20 - Functions, arguments, and assignment
- Lecture 21 - Dispatch tables
- Lecture 22 - More on booleans and iterables
- Lecture 23 - Modules
- Lecture 24 - Higher-order functions and lambda
- Lecture 25 - Object-oriented Programming
- Lecture 26 - Object-oriented Programming 2
- Lecture 27 - Object-oriented Programming 3
- Lecture 28 - Object-oriented programming 4
- Lecture 29 - Recursion
- Lecture 30 - Regular expressions
- Lecture 31 - More regex and software licensing
- Lecture 32 - Testing and pytest
- Lecture 33 - Network architecture
- Lecture 34 - Requesting URLs in Python
- Lecture 35 - Making simple APIs with Flask
- Lecture 36 - GUIs with tkinter
- Lecture 37 - Dates and times
- Lecture 38 - GUIs with tkinter 2
- Lecture 39 - threads and concurrency
- Lecture 40 - GUIs with tkinter 3
- Lecture 41 - The subprocess module
- Lecture 42 - Locking and synchronization
- Lecture 43 - Threads in tkinter GUIs
Homework
The course included a weekly homework assignment collected using GradeScope. Solutions to most of the quizzes can be found here and in the
GitHub repository.
Projects
These documents describe the four larger coding projects assigned during the semester. The first three projects have fixed specifications and solutions are provided.