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  
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  
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  
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  
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; 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 sscanf; a little about binary files (Notes) 13.1, 13.2, 13.6, 13.8 (skim all) Homework 9: HTML, PDF (accepted without penalty through 11/27)  
November 22 (W) Holiday    
November 24 (F) Holiday    
November 27 (M) A little about working with individual bits (Notes) 14.1, 14.2, 14.3, 14.4 (skim all)    
November 29 (W) Linked data structures (Notes) 15.1, 15.2   Quiz 6  
December 1 (F) Linked data structures, continued (Notes) 15.3, 15.4, 15.5, 15.6, 15.7, 15.8    
December 4 (M) Course wrap-up and evaluations (Notes)   Homework 10: HTML, PDF  
December 12 (T), noon Final exam (Review in HTML, PDF)   "Not accepted past" date for all homeworks except extra-credit (11:59pm)  
December 13 (W), noon (Not a class or exam day)   Homework X (optional extra credit): HTML, PDF (not accepted late)