Saint Louis University |
Computer Science 1300
|
Dept. of Math & Computer Science |
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 |
---|---|---|---|---|
Jan 17-Jan 20 | Wed |
Introduction, Course Administration
Introduction to Python |
syllabus | |
Thu | Introduction to cs1graphics | Ch. 3.1, 3.2 | ||
Fri | Hands-on day: accounts, cs1graphics, saving .py scripts | in-class activities | ||
Jan 23-Jan 27 | Mon | cs1graphics: depths, transformations, layers | Ch. 3.3-3.6 | |
Wed | Python basics: data types/classes, assignment semantics and identifiers, expressions and operator precedence | Ch. 2.4, 2.5, 2.8 | ||
Thu | 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 | |
Jan 30-Feb 3 | Mon | Hands-on Day: Small Python programs | prog01 | |
Wed |
Introduction to loops
for loops, index-based loops |
Ch. 4.1 | ||
Thu |
Nested loops
Case study: Drawing a Pyramid |
Ch. 4.3 | hw02 | |
Fri | Hands-on Day: Loops and Graphics | quiz02 | ||
Feb 6-Feb 10 | Mon |
Introduction to conditional statements (e.g., if, else, elif)
Boolean Expressions (practice) |
Ch. 4.4
Ch. 2.8 |
prog02 |
Wed | Hands-on Day: Word Scavenger Hunt | |||
Thu |
List Comprehension Syntax
solutions to previous hands-on day |
Ch. 4.5 | hw03 | |
Fri | Introduction to While Loops | Ch. 5.1 | quiz03 | |
Feb 13-Feb 17 | Mon |
While Loops
Case-study: Guess a number from 1 to 100 |
||
Wed | Hands-on Day: prog04 practice problem | prog03 | ||
Thu |
User-defined Functions
Avoiding Duplicate Code Revisiting Case-study: Guess a number from 1 to 100 |
Ch. 5.2, 5.3 | ||
Fri | Case Study: Computing square roots | Ch. 5.4 |
hw04
quiz04 |
|
Feb 20-Feb 24 | Mon | Case Study: Chain under gravity (code: py, pdf) | Ch. 5.6 | |
Wed | Error Checking and Exceptions | Ch. 5.5 | prog04 | |
Thu |
Error Checking and Exceptions
Case study: getInt(low,high) function scaleData example from book |
Ch. 5.5 | ||
Fri |
Standard Input and Output
Formatted Strings |
Ch. 8.1, 8.2
str.format method |
hw05
quiz05 |
|
Feb 27-Mar 3 | Mon | Working with Files | Ch. 8.3, 8.4 | |
Wed | Homemade Unix tools (wc, grep, head, more) | Ch. 8.3.1, Exercise 8.11 | ||
Thu | Working with Files (case studies) | Ch. 8.5.1, 8.5.2 | ||
Fri | Hands-on Day: prog05 |
hw06
quiz06 |
||
Mar 6-Mar 10 | Mon | Introduction to object-oriented programming |
Ch. 1.1-1.4.1
(brief summary) |
prog05 |
Wed |
Object-oriented design
Class diagrams Television case study |
Ch. 1.4.2 | ||
Thu |
Object-oriented design
Sequence diagrams |
Ch. 1.4.1, 1.4.3 | ||
Fri | First Exam (includes material through Mar 3 - info ) | |||
Mar 13-Mar 17 | Mon | No Class: Spring Break | ||
Wed | ||||
Thu | ||||
Fri | ||||
Mar 20-Mar 24 | Mon |
Introduction to user-defined classes
Point class (simple and robust versions) |
Ch. 6.1, 6.2
source code |
|
Wed | Design of a Television class | Ch. 6.3 | ||
Thu | Fraction class | Ch. 6.4 | ||
Fri | Good Software Practices, Mastermind | Ch. 7.1, 7.2, 7.3 |
hw07
quiz07 |
|
Mar 27-Mar 31 | Mon | 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 |
prog06 | |
Thu | Preview of LanguageHelper (prog07) | |||
Fri |
Introduction to Inheritance
Implentation of DeluxeTV |
Ch. 9.1 | ||
Apr 3-Apr 7 | Mon |
SortedSet model and implementations
When not to use inheritance |
Ch. 9.2, 9.3 | hw08 |
Wed | Inheritance and cs1graphics | Ch. 9.4 | prog07 | |
Thu | Case Study: Mailbox class | Ch. 9.6 | ||
Fri | Understanding Objects and References | Ch. 10.1 |
hw09
quiz08 |
|
Apr 10-Apr 14 | Mon | Objects that Reference Other Objects; Information Passing | Ch. 10.2, 10.3 | |
Wed |
Copying objects
Example: list of points Example: list of lists |
Ch. 10.2.2
source code |
||
Thu | No Class: Easter Break | |||
Fri | ||||
Apr 17-Apr 21 | Mon | |||
Wed | More Python Containers | Ch. 12.1 | prog08 | |
Thu |
A tour of Python's dict class.
Case Study: IMDB (see /public/goldwasser/1300/movies) |
Ch. 12.2, 12.3, documentation | ||
Fri |
Case Study: a Simple Search Engine
(see /public/goldwasser/1300/engine) |
Ch. 12.7 |
hw10
quiz09 |
|
Apr 24-Apr 28 | Mon | Python's internal use of dictionaries | Ch. 12.6 | |
Wed | Introduction to Recursion: Bullseye | Ch. 11.1 | ||
Thu | Activity: simulating a recursive list | Ch. 11.2 | ||
Fri | OurList class implementation | Ch. 11.2 |
hw11
quiz10 |
|
May 1-May 5 | Mon |
Functional Recursion, Factorials
Binary Search |
Ch. 11.3
Ch. 11.4 |
prog09 |
Wed | Case Study: Anagrams | Ch. 11.5 | ||
Thu |
Case Study: Anagrams
Prefix Search In-class challenge: binary search variant (source code) |
Ch. 11.5
Ch. 11.4.4 |
||
Fri |
Course evaluations
Discussion: Python2 vs Python3 |
hw12
quiz11 |
||
May 8 | Mon | Review for exam | prog10 | |
May 15 | Mon | Final Exam (8:00-9:50) - info |