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
January 12 (Th) No class    
January 17 (T) About the course (Notes) 1  
January 19 (Th) Basics of the Linux command line and vi (Notes) 2.1, 2.2  
January 24 (T) Introduction to Scala (Notes) 2.3  
January 26 (Th) Scala basics (Notes) 3.1, 3.2, 3.3, 3.4 Homework 1: HTML, PDF
January 31 (T) Scala basics, continued (Notes) 3.5, 3.6, 3.7, 3.8, 3.9  
February 2 (Th) Conditionals (Notes) 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7 Quiz 1
February 7 (T) Conditionals, continued; functions (Notes) 5.1, 5.2, 5.3, 5.4 Homework 2: HTML, PDF
February 9 (Th) Functions, continued (Notes) 5.5, 5.6, 5.7, 5.8  
February 14 (T) Functions, continued (Notes)   Homework 3: HTML, PDF
February 16 (Th) Recursion for repetition (Notes) 6.1, 6.2, 6.3, 6.4 Quiz 2
February 21 (T) No class (optionally attend CSCI 2094 lecture)    
February 23 (Th) Recursion for repetition, continued; a little about match; preview of collection types (Notes) 6.5, 6.6, 6.7, 6.8  
February 28 (T) Collection types (Notes) 7.1, 7.2, 7.3 Quiz 3 Homework 4: HTML, PDF
March 1 (Th) Review for midterm; collection types, continued (Notes)    
March 6 (T) Midterm (Review in HTML, PDF)    
March 8 (Th) No class    
March 13 (T) Holiday    
March 15 (Th) Holiday    
March 20 (T) Collection methods (Notes) 7.4  
March 22 (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  
March 27 (T) No class    
March 29 (Th) No class    
April 3 (T) Loops (Notes) 8.1, 8.2, 8.3 Homework 5: HTML, PDF
April 5 (Th) Loops, continued (Notes) 8.4, 8.5, 8.6 Quiz 4
April 10 (T) Files in Scala (Notes) 9  
April 12 (Th) A little about objects and classes; case classes (Notes) 10 Homework 6: HTML, PDF
April 17 (T) Command-line arguments; a little about errors (Notes)   Quiz 5
April 19 (Th) A little about sorting, searching, and (more) recursion (Notes) 13, 15  
April 24 (T) A little about GUIs and graphics (Notes) 11, 12, 14 Quiz 6 Homework 7: HTML, PDF
April 26 (Th) Course wrap-up and evaluations (Notes)    
May 7 (M), 8:30am Final exam (Review in HTML, PDF)