CSCI 1312 (Introduction to Programming for Engineering):
Lecture Topics and Assignments

The table below shows what we will be discussing in each class meeting, readings, dates of exams, and due dates for homeworks. The dates of the final exam is fixed; other items are subject to change. Readings are from the textbook unless otherwise indicated. Homework is due at 11:59pm on the date shown, unless otherwise indicated.

Date Topics Reading Due dates
August 24 (W) About the course (Notes)    
August 26 (F) Programming basics; introduction to Linux (Notes)    
August 29 (M) Command-line basics and text editors (Notes) My notes on CLI commands; my notes on vi; Dr. Lewis's video lectures on Linux and the command line (skip anything specific to Scala)  
August 31 (W) Command-line basics and text editors, continued (Notes)    
September 2 (F) Introduction to C; variables, types, and I/O (Notes) 1, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.10; my notes on gcc  
September 5 (M) Holiday    
September 7 (W) Introduction to C, continued (Notes) 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.9  
September 9 (F) Binary numbers (Notes) D.1, D.2, D.3   Homework 1: HTML, PDF  
September 12 (M) Conditional execution (Notes) 5.1, 5.2, 5.3, 5.7, 5.9  
September 14 (W) Conditional execution, continued (Notes)   Homework 2: HTML, PDF  
September 16 (F) Functions (Notes) 4.1, 4.2, 4.3, 4.5, 4.6, 4.9  
September 19 (M) Functions, continued (Notes)   Quiz 1  
September 21 (W) Repetition via recursion (Notes) 6.9 Homework 3: HTML, PDF  
September 23 (F) Functions and recursion, continued (Notes)    
September 26 (M) Functions and recursion, example continued; review of binary numbers (Notes)   Quiz 2  
September 28 (W) Loops (Notes) 6.1, 6.2, 6.3, 6.4, 6.5, 6.7, 6.8, 6.12 Homework 4: HTML, PDF  
September 30 (F) Loops, continued (Notes)    
October 3 (M) More loops (Notes)    
October 5 (W) A little about ``random'' numbers; character I/O and files (Notes)   Quiz 3  
October 7 (F) I/O and files, continued (Notes) 7.1, 7.2, 7.3, 7.4, 7.5, 7.7 Homework 5: HTML, PDF  
October 10 (M) Review for midterm (Notes)    
October 12 (W) Midterm exam (Review in HTML, PDF)    
October 14 (F) Class recess    
October 17 (M) Arrays (Notes) 8.1, 8.2, 8.3, 8.4, 8.7, 8.8  
October 19 (W) Arrays, continued (Notes)    
October 21 (F) Arrays, continued; (Notes) 8.7, 8.8, 8.11  
October 24 (M) Sorting and searching (Notes) 8.5, 8.6  
October 26 (W) Order of magnitude of algorithms; a little about gnuplot (Notes)   Quiz 4; Homework 6: HTML, PDF  
October 28 (F) Review of files and command-line arguments; a little more about gnuplot (Notes) H.1, H.2; gnuplot tutorial (skim)  
October 31 (M) Pointers (Notes) 9.1, 9.2, 9.3, 9.4, 9.5, 9.7, 10.1, 10.2, 10.3  
November 2 (W) Strings (Notes) 11.1, 11.2, 11.3, 11.4, 11.5, 11.7, 11.9  
November 4 (F) Dynamic memory allocation (Notes) 10.4, 10.5, 10.6, 10.8    
November 7 (M) Separate compilation and UNIX make (Notes) K.1, K.2; "Simple Makefile Tutorial" (skim)   Homework 7: HTML, PDF  
November 9 (W) Functions as parameters to other functions (Notes) I.1, I.2  
November 11 (F) User-defined types (Notes) 12.1, 12.2, 12.3, 12.4 (skim), 12.7   Quiz 5  
November 14 (M) User-defined types, continued (Notes)    
November 16 (W) User-defined types, continued (Notes)   Homework 8x (optional): HTML, PDF  
November 18 (F) Working with individual bits (Notes) 14.1, 14.2, 14.3, 14.4    
November 21 (M) A little about binary files (Notes) 13.1, 13.2, 13.6, 13.8 (skim all)  
November 23 (W) Holiday    
November 25 (F) Holiday    
November 28 (M) Linked data structures (Notes) 15.1, 15.2 Homework 8: HTML, PDF  
November 30 (W) Linked data structures, continued (Notes) 15.3, 15.4, 15.5, 15.6, 15.7, 15.8 Quiz 6  
December 2 (F) Linked data structures, continued (Notes)    
December 5 (M) Course wrap-up and evaluations (Notes)    
December 9 (F), noon Final exam (Review in HTML, PDF)    
December 14 (W) (Not a class or exam day)   Homework X (optional): HTML, PDF