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 23 (W) About the course (Notes)    
August 25 (F) Programming basics (Notes)    
August 28 (M) Introduction to Linux; 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 30 (W) Command-line basics and text editors, continued (Notes)    
September 1 (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 4 (M) Holiday    
September 6 (W) Introduction to C, continued (Notes) 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.9 Homework 1: HTML, PDF  
September 8 (F) Binary numbers (Notes) D.1, D.2, D.3    
September 11 (M) Conditional execution (Notes) 5.1, 5.2, 5.3, 5.7, 5.9  
September 13 (W) Conditional execution, continued (Notes)   Homework 2: HTML, PDF  
September 15 (F) Functions (Notes) 4.1, 4.2, 4.3, 4.5, 4.6, 4.9  
September 18 (M) Functions, continued (Notes)   Quiz 1 (Solution)  
September 20 (W) Repetition via recursion (Notes) 6.9  
September 22 (F) Functions and recursion, continued (Notes)   Homework 3: HTML, PDF  
September 25 (M) Functions and recursion, more examples (Notes)   Quiz 2 (Solution)  
September 27 (W) Loops (Notes) 6.1, 6.2, 6.3, 6.4, 6.5, 6.7, 6.8, 6.12  
September 29 (F) Loops, continued (Notes)   Homework 4: HTML, PDF  
October 2 (M) More loops (Notes)    
October 4 (W) A little about ``random'' numbers; more loops (Notes)   Quiz 3 (Solution)  
October 6 (F) Character I/O and files (Notes) 7.1, 7.2, 7.3, 7.4, 7.5, 7.7 Homework 5: HTML, PDF
October 9 (M) Review for midterm (Notes)    
October 11 (W) Midterm exam (Review in HTML, PDF)    
October 13 (F) Files, continued; command-line arguments; a little about gnuplot (Notes) H.1, H.2; gnuplot tutorial (skim)    
October 16 (M) Arrays (Notes) 8.1, 8.2, 8.3, 8.4, 8.7, 8.8    
October 18 (W) Arrays, continued (Notes)    
October 20 (F) Class recess    
October 23 (M) Arrays, continued; (Notes) 8.7, 8.8, 8.11   Homework 6: HTML, PDF  
October 25 (W) Sorting and searching (Notes) 8.5, 8.6    
October 27 (W) Order of magnitude of algorithms (Notes)    
October 30 (M) Pointers (Notes) 9.1, 9.2, 9.3, 9.4, 9.5, 9.7, 10.1, 10.2, 10.3 Quiz 4 (Solution)  
November 1 (W) Dynamic memory allocation (Notes) 10.4, 10.5, 10.6, 10.8   Homework 7: HTML, PDF  
November 3 (F) Strings (Notes) 11.1, 11.2, 11.3, 11.4, 11.5, 11.7, 11.9    
November 6 (M) Strings and 2D arrays, continued (Notes)    
November 8 (W) 2D arrays, continued; about Homework 9 (Notes)    
November 10 (F) User-defined types (Notes) 12.1, 12.2, 12.3, 12.4 (skim), 12.7    
November 13 (M) User-defined types, continued (Notes)   Quiz 5 (Solution); Homework 8: HTML, PDF  
November 15 (W) User-defined types, continued; functions as parameters to other functions (Notes)    
November 17 (F) Separate compilation and UNIX make (Notes) K.1, K.2; "Simple Makefile Tutorial" (skim)    
November 20 (M) A little about \Code{sscanf}; a little about binary files (Preliminary notes) 13.1, 13.2, 13.6, 13.8 (skim all) Homework 9: HTML, PDF  
November 22 (W) Holiday    
November 24 (F) Holiday    
November 27 (M) A little about working with individual bits 14.1, 14.2, 14.3, 14.4 (skim all)    
November 29 (W) Linked data structures 15.1, 15.2   Quiz 6  
December 1 (F) Linked data structures, continued 15.3, 15.4, 15.5, 15.6, 15.7, 15.8    
December 4 (M) Course wrap-up and evaluations   Homework 10: HTML, PDF  
December 12 (T), noon Final exam    

Sample solutions to homeworks