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

The table below shows planned topics, readings, homeworks, quizzes, and exams. Exam dates are 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 22 (W) About the course (Notes)    
August 24 (F) Programming basics; introduction to Linux (Notes)    
August 27 (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 29 (W) Command-line basics and text editors, continued; introduction to C (Notes) 1  
August 31 (F) Variables, types, and I/O (Notes) 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.10; my notes on gcc    
September 3 (M) Holiday    
September 5 (W) Introduction to C, continued; a little about binary numbers (Notes) 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.9 Homework 1: HTML, PDF  
September 7 (F) Binary numbers, continued (Notes) D.1, D.2, D.3    
September 10 (M) Conditional execution (Notes) 5.1, 5.2, 5.3, 5.7, 5.9  
September 12 (W) Conditional execution, continued (Notes)   Homework 2: HTML, PDF  
September 14 (F) Functions (Notes) 4.1, 4.2, 4.3, 4.5, 4.6, 4.9  
September 17 (M) Functions, continued (Notes)   Quiz 1 (Solution)  
September 19 (W) Repetition via recursion (Notes) 6.9   Homework 3: HTML, PDF  
September 21 (F) Functions and recursion, continued (Notes)    
September 24 (M) Odds and ends (Notes)   Quiz 2 (Solution)  
September 26 (W) Loops (Notes) 6.1, 6.2, 6.3, 6.4, 6.5, 6.7, 6.8, 6.12    
September 28 (F) Loops, continued (Notes)   Homework 4: HTML, PDF  
October 1 (M) No class    
October 3 (W) Loops continued; a little about ``random'' numbers (Notes)    
October 5 (F) Loops continued (Notes)   Quiz 3 (Solution); Homework 5: HTML, PDF  
October 8 (M) Review for midterm (Notes)    
October 10 (W) Midterm exam (Review in HTML, PDF)    
October 12 (F) Class recess    
October 15 (M) Files; command-line arguments (Notes) 7.1, 7.2, 7.3, 7.4, 7.5, 7.7; H.1, H.2 gnuplot tutorial (skim)    
October 17 (W) A little about gnuplot; more about floating point (Notes)    
October 19 (F) No class    
October 22 (M) Arrays (Notes) 8.1, 8.2, 8.3, 8.4, 8.7, 8.8    
October 24 (W) Arrays, continued (Notes) 8.7, 8.8, 8.11    
October 26 (F) Sorting and searching; order of magnitude of algorithms (Notes) 8.5, 8.6   Homework 6: HTML, PDF  
October 29 (M) More about multi-dimensional arrays; introduction to pointers (Notes) 9.1, 9.2, 9.3, 9.4, 9.5, 9.7, 10.1, 10.2, 10.3    
October 31 (W) Pointers continued; dynamic memory allocation (Notes) 10.4, 10.5, 10.6, 10.8    
November 2 (F) Strings (Notes) 11.1, 11.2, 11.3, 11.4, 11.5, 11.7, 11.9   Homework 7: HTML, PDF  
November 5 (M) Strings, continued; (Notes)   Quiz 4 (Solution)  
November 7 (W) Multi-dimensional arrays revisited (Notes)    
November 9 (F) (Homework catch-up day) (Notes)    
November 12 (M) About Homework 9 (Notes)   Quiz 5 (Solution); Homework 8: HTML, PDF  
November 14 (W) User-defined types (Notes) 12.1, 12.2, 12.3, 12.4 (skim), 12.7    
November 16 (F) No class    
November 19 (M) More about user-defined structures (Notes)    
November 21 (W) Holiday    
November 23 (F) Holiday    
November 26 (M) Separate compilation and UNIX make (Notes) K.1, K.2; "Simple Makefile Tutorial" (skim)    
November 28 (W) A little about linked data structures (Notes) 15.1, 15.2 (skim if interested)   Quiz 6 (Solution); Homework 9: HTML, PDF  
November 30 (F) Functions as parameters to other functions (Notes) I.1, I.2 (skim if interested)    
December 3 (M) Review for final; course wrap-up and evaluations (Notes)   Homework 10: HTML, PDF (accepted without penalty through 12/07)  
December 10 (M), noon Final exam (Review in HTML, PDF)    
December 11 (T) (Not a class day)   Final deadline for all homeworks (nothing accepted past this date)  

Sample solutions to homeworks