MCS 260: Introduction to Computer Science
Emily Dumas
University of Illinois at Chicago
Fall 2020
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:
- Jennifer Vaccaro
- 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 - REPL and scripts; arithmetic
- Lecture 3 - Variables, assignments, input
- Lecture 4 - Strings and integers
- Lecture 5 - Lists and tuples
- Lecture 6 - Conditionals and boolean algebra
- Lecture 7 - For and while loops
- Lecture 8 - List comprehensions
- Lecture 9 - Functions
- Lecture 10 - Dictionaries
- Lecture 11 - String methods; math and random
- Lecture 12 - Command line arguments, operating systems
- Lecture 13 - Files, string formatting
- Lecture 14 - Lists as stacks and queues
- Lecture 15 - Functions as values & lambda
- Lecture 16 - Higher order functions and exceptions
- Lecture 17 - Comments, documentation, etc.
- Lecture 18 - More on booleans and iterables
- Lecture 19 - The os module
- Lecture 20 - Modules
- Lecture 21 - Software licensing
- Lecture 22 - HTML
- Lecture 23 - Object-oriented programming
- Lecture 24 - Object-oriented programming 2 (operator overloading)
- Lecture 25 - Object-oriented programming 3 (inheritance)
- Lecture 26 - Object-oriented programming 4 (protocols)
- Lecture 27 - Recursion
- Lecture 28 - Regular expressions
- Lecture 29 - Regular expressions; encodings, binary files
- Lecture 30 - The csv module
- Lecture 31 - The json module
- Lecture 32 - Testing and pytest
- Lecture 33 - Network architecture
- Lecture 34 - Requesting URLs in Python
- Lecture 35 - Making 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 - Locks and synchronization
- Lecture 43 - Threads in tkinter GUIs
Worksheets
Most of the worksheets and solutions can also be found in the
GitHub repository.
Quizzes
The course included a weekly quiz administered and 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.