CSCI 1320 (Principles of Programming I):
Lecture Topics and Assignments

The table below shows what we will be discussing in each class meeting, readings, dates of exams and quizzes, and due dates for homeworks. Dates of exams are fixed; other items are subject to change. Readings are from Dr. Lewis's An Introduction to the Art of Programming Using Scala unless otherwise indicated. Homework is due at 11:59pm on the date shown, unless otherwise indicated.

Date Topics Reading Due dates
August 25 (Th) About the course (Notes) 1  
August 30 (T) Basics of the Linux command line and vi (Notes) 2.1, 2.2  
September 1 (Th) Introduction to Scala (Notes) 2.3  
September 6 (T) No class    
September 8 (Th) Scala basics (Notes) 3.1, 3.2, 3.3, 3.4 Homework 1: HTML, PDF
September 13 (T) Scala basics, continued (Notes) 3.5, 3.6, 3.7, 3.8, 3.9  
September 15 (Th) Conditionals (Notes) 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7 Quiz 1
September 20 (T) Conditionals, continued; functions (Notes) 5.1, 5.2, 5.3, 5.4  
September 22 (Th) Functions, continued (Notes) 5.5, 5.6, 5.7, 5.8 Homework 2: HTML, PDF
September 27 (T) Recursion for repetition (Notes) 6.1, 6.2, 6.3, 6.4 Quiz 2
September 29 (Th) Recursion for repetition, continued; a little about match (Notes) 6.5, 6.6, 6.7, 6.8  
October 4 (T) No class    
October 6 (Th) Collection types (Notes) 7.1, 7.2 Homework 3: HTML, PDF
October 11 (T) Collection types, continued (Notes) 7.3 Quiz 3
October 13 (Th) Collections, continued; review for midterm (Notes)    
October 18 (T) Midterm exam (Review in HTML, PDF)    
October 20 (Th) Collection methods (Notes) 7.4  
October 25 (T) No class    
October 27 (Th) Argument passing and a few more collection methods. (Notes) 7.5, 7.6, 7.7, 7.8, 7.9, 7.10, 7.11, 7.12  
November 1 (T) Loops (Notes) 8.1, 8.2, 8.3  
November 3 (Th) Review of arrays and lists (Notes)    
November 8 (T) Loops, continued (Notes) 8.4, 8.5, 8.6 Quiz 4; Homework 4: HTML, PDF
November 10 (Th) No class    
November 15 (T) Files in Scala (Notes) 9  
November 17 (Th) Case classes; a little about errors (Notes) 10  
November 22 (T) Examples/applications (Notes)    
November 24 (Th) No class (holiday)    
November 29 (T) A little about sorting, searching, and (more) recursion (Notes) 13, 15 Quiz 5; Homework 5: HTML, PDF
December 1 (Th) A little about GUIs and graphics (Notes) 11, 12, 14 Quiz 6
December 6 (T) Course wrap-up and evaluations (Notes)   Homework 6: HTML, PDF
December 13 (T), noon Final exam (Review in HTML, PDF)