CS240 Fall 2013: Programming in C


Class Information
Labs
Lectures
Resources
Class Information

This is information about a C class I taught at Purdue in Fall 2013.

Instructor Textbook
  • C Programming Language (2nd Edition), Brian W. Kernighan and Dennis M. Ritchie
Labs
Virtual Machine for Labs/Projects

If students work on labs and projects on computers other than those in our designated lab, we require them to use this image of VMWare that contains all software, tools, and libraries that you will need for your assignments. (This is to avoid the potential problem that codes developed on other machines do not work on the ones used to grade them.) The login and password necessary to access this image will be provided in the labs. Students who do not already have VMWare installed on their personal machines can do so by downloading VMWare player; this is a free download. Another free alternative is Virtual Box (which works for Mac OS).

Resources
Lectures


Week Tuesday Thursday Lab
Week 1 (Aug. 19 - 23) Lecture 1 - Class policy. Introduction. Lecture 2 - Hello world. Data types. Lab 1 - ATTENDANCE REQUIRED

Lab 1 discussed in class. This lab is not graded.
Week 2 (Aug. 26 - 30) Lecture 3 - Types, pointers, arrays, strings . Lecture 4 - Operators and Expressions. Control Flow

Lab 2 assigned
Week 3 (Sept. 2 - 6) Lecture 5 - Functions and program structure.

Project 1 assigned
Lecture 6 - Recursive functions. C Preprocessor.

Lab 2 due

Lab 3 assigned
Week 4 (Sept. 9 - 13) Lecture 7 - Multiple Arrays. Pointers and arrays. Lecture 8 - Dynamic memory allocation: functions, use, common mistakes.

Lab 3 due

Week 5 (Sept.16 - 20) Lecture 9 - Structures

Project 1 due
Lecture 10 - Assertions and errors checking. Lab Review - the TAs will go over the solutions for the labs so far in the class, or any other questions you may have.

Week 6 (Sept. 23 - 27) First Midterm REVIEW. First Midterm EXAM.

Lab 4 assigned
Week 7 (Sept. 30 - Oct.4) Lecture 11 - Bit fields, unions, pointers to functions.

Project 2 assigned
Lecture 12 - Function pointers. Variable arguments. Time. Solving exam 1.

Lab 4 due.

Lab 5 assigned
Week 8 (Oct. 7 - 11) October break. Tools.

Lab 5 due

Lab 6 assigned
Week 9 Oct. 14 - 18) Lecture 13 - Working with files: stream interface. Lecture 14 - Working with files: stream interface. Lab review - The TAs will go over the solutions for the labs since last Lab review.

Lab 6 due
Week 10 (Oct. 21 - 25) Lecture 15 - Working with files: low-level interface.

Project 2 due

Project 3 assigned
Lecture 16 - Working with files: low-level interface. Processes and Signals.

Lab 7 assigned
Week 11 (Oct. 28 - Nov 1) Second Midterm REVIEW. Second Midterm EXAM

Lab 7 due
Week 12 (Nov. 4 - 8) Solving exam 2. Solving exam 2.

Lab 8 assigned

Week 13 (Nov. 11 - 15) Solving exam 2. Lecture 17 - Signals

Project 3 due

Project 4 assigned
Lecture 17 - Signals.

Week 14 (Nov. 18 - 22) Lecture 18 - Threads. Lecture 18 - Threads.

Lab 8 due.

Week 15 (Nov. 25 - 29) Review Pointers and Dynamic Memory Allocation.

Project 4 due - DEC. 1 10 PM.
THANKSGIVING BREAK THANKSGIVING BREAK
Week 16 (Dec. 2 - 6) Final REVIEW Final REVIEW Lab review - The TAs will go over the solutions for the labs since last Lab review.






Copyright© 2010 Cristina Nita-Rotaru. Send your comments and questions to Cristina Nita-Rotaru