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