Introduction to CS and Programming in C


Home
Syllabus
Schedule
Grades
About CUNIX
Misc. Links


Schedule


Lecture 1
9/9/2009
Components of a computer, buildling a C program, and your first C program "Hello World"
Lecture 2
9/14/2009
Declaring variables, valid identifiers(names) of variables, basic types (int, char, float),  {assignment, arithmetic, comparison, logical} operators, operator precedence and associativity
Lecture 3
9/16/2009
Lab session at 252 Engineering Terrace.
Unix commands (ls, mkdir, pwd, cd, cp, mv), the vi text editor,
compiling the Hello World program
Lecture 4
9/21/2009
Review of the programming exercises, printf and scanf, decision making constructs (if/else and switch/case)
Lecture 5
9/23/2009
Review of if-else and switch-case, "else belongs to closest else-less if", evaluation of logical expressions, while, break, continue
Lecture 6
9/28/2009
Review of programming exercise #2 and while, do-while construct, for construct, nested loops, arrays (declaration, subscript/index, initialization)
Lecture 7
9/30/2009
Array initialization, strings (char arrays), string functions in <string.h>, printing and getting string inputs, how to write my own functions, scope of variables
Lecture 8
10/5/2009
Review of functions, function prototypes, program structure, scope of variables (automatic vs. global), passing arguments to functions
Lecture 9
10/7/2009
Global vs. local variable name conflict, why global variables can be useful, #define, static variables
Lecture 10
10/12/2009
Summary of functions (why they are useful), explanation of HW2, debugging techniques (using printf and using gdb)
Lecture 11
10/14/2009
How to use core file in gdb, bits and the binary notation, binary to decimal and vice versa, binary addition, signed vs. unsigned integers, the 2's complement system, overflow
Lecture 12
10/19/2009
Review of programming exercise #5 including the hexadecimal notation, real number representation in floating point, what memory looks like to programmers, pointers
Lecture 13
10/21/2009
Pointers, the swap function using pointers, pointers and arrays, string functions using pointers, NULL pointer, void pointer, dynamic memory allocation using the malloc function
Lecture 14
10/26/2009
Dynamic memory allocation (malloc(), calloc(), and free()), midterm review
Midterm
10/28/2009
Midterm solution (PDF)
Lecture 15
11/4/2009
Beginning of the CS part of the course: what is CS?, what is an algorithm?, search algorithms (sequential and binary), sorting algorithms (bubblesort and coutsort)
Lecture 16
11/9/2009
Midterm review, walk-through of the insertion sort algorithm, iterative algorithms
Lecture 17
11/11/2009
Weekly programming exercise 6, time analysis of insertion sort algorithm (handout), recursive algorithms (fibonacci sequence, tower of hanoi, quicksort - very briefly)
Lecture 18
11/16/2009
Started talking about data structures: linked lists.
struct and typedef.
Lecture 19
11/18/2009
Difference between typedef and #define, implementation of linked lists using {pointers, malloc, and struct},
how to add new node, how to delete a node.
Lecture 20
11/23/2009
Programming exercise 7 (move node), New topic: stacks and queues. What they are, where they're used.
Lecture 21
11/25/2009
Lab session at 407 Math.
Stack implementation using linked lists.
Implemented makeNewNode and push
Lecture 22
11/30/2009
printList function, New topic: File I/O. FILE*, fopen, fclose, getc, putc, fflush, fscanf, fprintf, fgets, fputs.
Examples: File open and close:file.c, file copy fcopy.c
Lecture 23
12/2/2009
File I/O continued: example of fscanf and fprintf (calories.c and calories.txt), linecount program linecount.c, stdin, stdout, stderr, remove, rename, New topic: command line arguments : cmd.c, linecount program with command line arguments:linecount_args.c
Lecture 24
12/7/2009
Review of array-based implementation of stack, char *argv[] is an array of char pointers, multi-dimensional arrays: matrix.c and how to pass them to functions: matrix2.c, double pointer(very brief doublepointer.c)
Lecture 25
12/9/2009
How to pass arbitrary-size multidimensional array to functions: matrix3.c, Initializing 3D matrix: 3dmatrix.c, New topic: Making a big program with multiple source files: source files, extern and static global variables
Lecture 26
12/14/2009
The make utility and
a little bit about object oriented programming
Final Exam
12/21/2009