Course Home | Assignments | Computing Resources | Lab Hours/Tutoring | Python | Schedule | Submit

Saint Louis University

Computer Science 1300
Introduction to Object-Oriented Programming

Michael Goldwasser

Fall 2017

Computer Science Department


Please note that the schedule for future classes is tentative.

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
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
Ch. 4.4
Ch. 2.8
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
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
Oct 16-Oct 20 Mon Introduction to object-oriented programming Ch. 1.1-1.4.1
(brief summary)
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
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 (,
Ch. 7.7, 7.8, 7.9
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
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
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
Wed Prefix Search
In-class challenge: binary search variant (source code)
Ch. 11.4.4
Fri Case Study: Anagrams
Ch. 11.5 hw12
Dec 11 Mon Course evaluations
Review for exam
Discussion: Python2 vs Python3

Dec 15 Fri Final Exam (8:00-9:50) - info

Michael Goldwasser
CSCI 1300, Fall 2017
Last modified: Saturday, 09 December 2017
Course Home | Assignments | Computing Resources | Lab Hours/Tutoring | Python | Schedule | Submit