cs240.FALL 2009 CS 240 -- Fall 2009 Course Syllabus
 
       CS240 Fall 2009 Course Syllabus       
 

Syllabus last updated


General Course Information

TA EVENING CONSULTING HOURS

Labs and Projects

Test dates

Final Test -- DATE/PLACE


August 24
  • General Introduction
  • Java vs. C
  • Week 1-1

    August 26
  • C's flexibility
  • Compilation" Java model, C model
  • Examples
  • Week 1-2



    August 31
  • Data Types, ranges
  • Binary numbers
  • Examples
  • Week 2-1

    September 2
  • Printing
  • Statements, expressions and operators
  • Examples
  • Week 2-2




    September 7
  • Labor Day. No classes.


    September 9
  • Bitwise operations
  • Control Flow and Repetition
  • Examples
  • Week 3-2



    How to use getchar to read input
  • EXAMPLE

    Comments on use of scanf
  • SEE EXAMPLES


    September 14
  • bit shifting
  • program control - infinite loops, break, continue
  • functions, recursion, timing
  • Week 4-1

    September 16
  • conditional expressions
  • character input
  • postfix evaluation
  • file organization, using header files
  • variable scope
  • Week 4-2

    September 21
  • file organization and header files
  • variable scope
  • extern, automatic, static, register variables
  • preprocessor: include and define
  • preprocessor: macros
  • Week 4-2

    September 23
  • characters, representation and useful routines
  • strings and string manipulation routines
  • pointers: address of, and deference operators
  • pointers, bytes, words, characters
  • big and little endian
  • examples (pointer basics)
  • Week 5-1

    September 28
  • More on pointers
  • Pointer arithmetic
  • Void pointers
  • Passing parameters to functions
  • Examples
  • Week 5-2

    September 30
  • 2-D arrays, malloc, pointers
  • Example
  • Week 6-1





    October 5
  • Test 1 [ in class --- so please be early! Objective Test; bring Pencil & Eraser ]
  • Topics
  • Sample
  • Solution





    October 7
  • More on pointers
  • Multiple indirection and 2D arrays
  • Static vs Dynamically allocated arrays
  • How to get contiguous rows, avoiding multiple indirection
  • Passing arrays to functions
  • Examples
  • Week 6-2

    October 12
  • Spring Break. No class.

    October 14
  • More on malloc()
  • and calloc()
  • word alignment, safety
  • brief pointer review
  • simple memory management (using arrays)
  • simple application: dynamic linking and file allocation tables
  • Week 7-2

    October 19
  • All about structures (part 1)
  • Examples
  • Week 8-2

    October 21
  • More on structures
  • pointer to structure
  • structure as function
  • access, initialization, pointer to structs
  • arrays of structs, dereferencing
  • examples: linked-lists (insert/delete), linked-list (reverse)
  • example of using "enum" to emulate a micro-assembly language
  • Week 9-1

    October 26
  • structure size, machine dependence, pragma, typedef
  • unions
  • examples: simple union, nested union inside struct
  • array of structs containing unions
  • array of structs containing arrays of unions
  • derefencing inside union
  • bit-operations and masks; working with bit-fields
  • ambiguity (machine dependence), padding, unused fields
  • mem management and pointers: using alloc() and afree() [page 100]
  • recap of pointer arithmetic
  • Assignment: developing a dictionary
  • Week 9-2

    October 28
  • Introduction to Makefiles
  • Week 10-1

    November 2
  • More on Makefiles
  • Applications of Trees
  • Examples
  • Week 10-2

    November 4
  • Review of topics covered
  • parameter passing
  • void pointers
  • command-line arguments (see examples below)
  • Examples
  • - histogram graphing
  • - using histogram in coin tossing example
  • - Josephus problem
  • Week 11-1

    November 9
  • Review of topics covered
  • Continuation of last lecture
  • (Test moved from Nov 9 to Nov 11 on student request)
  • Week 11-1





    November 11
  • Test 2 [ in class --- so please be early! Objective Test; bring Pencil & Eraser ]
  • Solution




    November 16
  • Function pointers, with examples
  • Introduction to Streams
  • Week 12-1

    November 18
  • Streams, I/O
  • Using disk files
  • I/O: formatted, character and direct
  • Sequential vs. Random file access
  • Week 12-2

    November 23
  • Software Engineering issues: basic questions
  • Examples
  • Therac 25
  • Testing
  • Week 12-1

    November 25
  • Thanksgiving break. No Class