UNB/ CS/ David Bremner/ teaching/ old/ cs2023/ topics

Tentative list of topics

Topic chapters lectures
Month 1
 12.0 
Introduction
  2.0 
  • Context
    1 
  0.5 
  • Compiling and Linking a simple C program
    2 
  0.5 
  • Basics of C syntax
    2 
  1.0 
Input/Output
  1.0 
  • printf and scanf
  2,3 
  0.5 
  • character IO
    7 
  0.5 
Expressions
  2.5 
  • Arithmetic Operators
    4 
  0.5 
  • Assignment and side effects
    4 
  1.5 
  • Expression evaluation
    4 
  0.5 
Control Structures
  2.0 
  • "Boolean" expressions
    5 
  0.5 
  • if, switch, and break
    5 
  0.5 
  • while, do, for
    6 
  0.5 
  • break, continue, goto
    6 
  0.5 
Types
  2.5 
  • character, integer and floating point types
    7 
    1 
  • type conversion and casting
    7 
    1 
  • typedef and sizeof
    7 
  0.5 
Arrays
  1.0 
  • One dimensional Arrays, initializers
    8 
  0.5 
  • Multidimensional Arrays
    8 
  0.5 
Functions
    1 
  • Procedural design/partition
    9 
    1 
Month 2
 12.0 
Functions
  2.0 
  • Declarations, Arguments/parameters
    9 
    1 
  • return and exit
    9 
  0.5 
  • recursion
    9 
  0.5 
Blocks and scope, external variables
   10 
    1 
Organization
   10 
    1 
Pointers I
11,12 
  3.0 
  • Pointer basics
   11 
    1 
  • Pointers and arrays
   12 
  2.0 
Strings
   13 
  3.5 
  • Strings Literals and Variables
  0.5 
  • Initialization, Simple IO
  0.5 
  • Character by Character I/O
  0.5 
  • C String library
    1 
  • String idioms
  0.5 
  • Arrays of strings
  0.5 
File IO
   22 
  1.5 
Month 3
 13.0 
Version Control
    1 
C preprocessor
   14 
  2.0 
  • How the Preprocessor works
  0.5 
  • Directives and simple macros
  0.5 
  • Parameterized macros
  0.5 
  • Conditional compilation
  0.5 
Multifile Organization
  3.0 
  • Source and include files
  0.5 
  • Sharing definitions
    1 
  • Dividing a program into files
  0.5 
  • Building and linking with make
    1 
Structures Unions and Enumerations
   16 
  3.0 
  • Structures
    1 
  • Arrays of structures
  0.5 
  • Unions
    1 
  • Enumerations
  0.5 
Dynamic Memory allocation
   17 
    4 
  • Malloc, calloc, realloc
   17 
    1 
  • free, garbage, dangling pointers, debugging
    1 
  • Linked lists
    1 
  • Pointers to Pointers, pointers to functions
    1