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
``````
``````    1
``````    1