Saint Louis University |
Computer Science 1300
|
Computer Science Department |
Also note: For each lecture, we denote both a topic as well as the associated reading in the textbook. The live link on the 'topic' leads to a page of my personal notes for that lecture. Those personal notes are not nearly as complete or polished as the associated readings from the text. In truth, they exist mostly to provide a brief outline of the day's lecture. Students are expected to read the associated sections of the text. In cases where my notes include material which is not explicitly in the text, I will add the word "notes" to the explicit reading list.
Week | Day | Topic | Reading | Due |
---|---|---|---|---|
Aug 28-Sep 1 | Mon |
Introduction, Course Administration
Introduction to Python |
syllabus | |
Tue |
Hands-on day: accounts, saving .py scripts Introduction to cs1graphics |
Ch. 3.1, 3.2 | ||
Wed | Further exploration of cs1graphics | in-class activities | ||
Fri | cs1graphics: depths, transformations, layers | Ch. 3.3-3.6 | ||
Sep 4-Sep 8 | Mon | No Class: Labor Day | ||
Tue | Python basics: data types/classes, assignment semantics and identifiers, expressions and operator precedence | Ch. 2.4, 2.5, 2.8 | ||
Wed | Python's sequence types: list, tuple, str | Ch. 2.2, 2.3 | hw01 | |
Fri |
User input/output.
String split/join Case study (from next Monday's hands-on day) |
Ch. 2.9 | quiz01 | |
Sep 11-Sep 15 | Mon | Hands-on Day: Small Python programs | prog01 | |
Tue |
Introduction to loops
for loops, index-based loops |
Ch. 4.1 | ||
Wed |
Nested loops
Case study: Drawing a Pyramid (see book) Case study: Drawing a Cityscape (source code, sample image) |
Ch. 4.3 | hw02 | |
Fri | Hands-on Day: Loops and Graphics | quiz02 | ||
Sep 18-Sep 22 | Mon |
Introduction to conditional statements (e.g., if, else, elif)
Boolean Expressions (practice) |
Ch. 4.4
Ch. 2.8 |
prog02 |
Tue | Hands-on Day: Word Scavenger Hunt | |||
Wed |
List Comprehension Syntax
solutions to previous hands-on day |
Ch. 4.5 | hw03 | |
Fri | Introduction to While Loops | Ch. 5.1 | quiz03 | |
Sep 25-Sep 29 | Mon |
While Loops
Case-study: Guess a number from 1 to 100 |
||
Tue | Hands-on Day: prog04 practice problem | prog03 | ||
Wed |
User-defined Functions
Avoiding Duplicate Code Revisiting Case-study: Guess a number from 1 to 100 |
Ch. 5.2, 5.3 | hw04 | |
Fri | Case Study: Computing square roots | Ch. 5.4 | quiz04 | |
Oct 2-Oct 6 | Mon | Case Study: Chain under gravity (code: py, pdf) | Ch. 5.6 | |
Tue | Error Checking and Exceptions | Ch. 5.5 | prog04 | |
Wed |
Error Checking and Exceptions
Case study: getInt(low,high) function scaleData example from book |
Ch. 5.5 | hw05 | |
Fri |
Standard Input and Output
Formatted Strings |
Ch. 8.1, 8.2
str.format method |
quiz05 | |
Oct 9-Oct 13 | Mon | Working with Files | Ch. 8.3, 8.4 | |
Tue | Hands-on day: Homemade Unix tools (wc, grep, head, more) | Ch. 8.3.1, Exercise 8.11 | ||
Wed |
Working with Files (case studies)
Solutions for previous Unix Tool day |
Ch. 8.5.1, 8.5.2 | hw06 | |
Fri |
Discussion of upcoming exam
Hands-on Day: prog05 |
quiz06 | ||
Oct 16-Oct 20 | Mon | Introduction to object-oriented programming |
Ch. 1.1-1.4.1
(brief summary) |
prog05 |
Tue |
Object-oriented design
Television case study Class diagrams |
Ch. 1.4.2 | ||
Wed |
Introduction to user-defined classes
Point class (simple and robust versions) |
Ch. 6.1, 6.2
source code |
||
Fri | First Exam (includes material through Oct 13 - info ) | |||
Oct 23-Oct 27 | Mon | No Class: Fall Break | ||
Tue | ||||
Wed | Design of a Television class | Ch. 6.3 | ||
Fri |
Operator overloading
Review of robust Point class Fraction class |
Ch. 6.4 | ||
Oct 30-Nov 3 | Mon | Good Software Practices, Mastermind | Ch. 7.1, 7.2, 7.3 | |
Tue | Naming Conventions, Documentation, Encapsulation | Ch. 7.4, 7.5, 7.6 | ||
Wed |
Test-Driven Development and Python's unittest module
Television Example (Television.py, TelevisionTest.py) |
documentation
Ch. 7.7, 7.8, 7.9 |
hw07 | |
Fri | Preview of LanguageHelper (prog07) | quiz07 | ||
Nov 6-Nov 10 | Mon |
Introduction to Inheritance
Implentation of DeluxeTV |
Ch. 9.1 | prog06 |
Tue |
SortedSet model and implementations
When not to use inheritance |
Ch. 9.2, 9.3 | ||
Wed | Inheritance and cs1graphics | Ch. 9.4 | hw08 | |
Fri | Case Study: Mailbox class | Ch. 9.6 | quiz08 | |
Nov 13-Nov 17 | Mon | Understanding Objects and References | Ch. 10.1 | prog07 |
Tue | Functions and Information Passing | Ch. 10.3 | ||
Wed |
Objects that Reference Other Objects
Copying objects Example: list of points Example: list of lists |
Ch. 10.2
source code |
hw09 | |
Fri |
continuation of copy labs
Python's copy module |
Ch. 10.2.2 | quiz09 | |
Nov 20-Nov 24 | Mon | More Python Containers | Ch. 12.1 | |
Tue |
A tour of Python's dict class.
Case Study: IMDB (see /public/goldwasser/1300/movies) |
Ch. 12.2, 12.3, documentation | prog08 | |
Wed | No Class: Thanksgiving Break | |||
Fri | ||||
Nov 27-Dec 1 | Mon |
Preview of
prog09
Case Study: a Simple Search Engine (see /public/goldwasser/1300/engine) |
Ch. 12.7 | |
Tue | Python's internal use of dictionaries | Ch. 12.6 | hw10 | |
Wed | Introduction to Recursion: Bullseye | Ch. 11.1 | ||
Fri | Activity: simulating a recursive list | Ch. 11.2 | quiz10 | |
Dec 4-Dec 8 | Mon | OurList class implementation | Ch. 11.2 | |
Tue |
Functional Recursion, Factorials
Binary Search |
Ch. 11.3
Ch. 11.4 |
hw11
prog09 |
|
Wed |
Prefix Search
In-class challenge: binary search variant (source code) |
Ch. 11.4.4 | ||
Fri |
Case Study: Anagrams
|
Ch. 11.5 |
hw12
quiz11 |
|
Dec 11 | Mon |
Course evaluations
Review for exam Discussion: Python2 vs Python3 |
prog10 | |
Dec 15 | Fri | Final Exam (8:00-9:50) - info |