ADV C PROGRAMMING
EECS 22, Course Codes: 18022-18029
Quarter: Fall Quarter 2017


Home | Syllabus | Assignments | Schedule MWF | Schedule TT | MessageBoard | Resources | TA Infos | Videos

Reference: Introduction to Programming in ANSI-C

Course EECS 10 video-taped in Summer 2013

Lecture Video and Slides
1
Video 1.1: Overview
  • Introduction, course overview
  • Introduction to computers and programming
  • Course administration, set up
Video 1.2: Introduction to Linux
  • Getting started
  • Logging into EECS servers
  • Linux system environment
  • Linux system commands, text editing
Video 1.3: Introduction to C
  • Introduction to programming in C
  • History of C
  • Our first C program
  • Example HelloWorld.c
  • Structure of a C program (keywords int, void, return)
  • Compilation (gcc) and execution
  • String constants, escape sequences
2
Video 2.1: General program structure
  • Review quiz
  • Program structure
  • Input, computation, output
  • Example Addition.c
Video 2.2: Arithmetic in C
  • Basic types in C
  • Integer types (char, short, int, long, signed, unsigned)
  • Floating point types (float, double)
  • Arithmetic operations
  • Operators, evaluation order
  • Arithmetic example, cosine approximation
  • Example Cosine.c
Video 2.3: Types in C
  • Review quiz
  • Type conversion, explicit, implicit
  • Types in expressions
  • Arithmetic computation
  • Example Arithmetic.c
3
Video 3.1: Conditional execution
  • Review quiz
  • Comparison of values
  • Relational, logical, and conditional operators
  • Conditional statements, if statement
  • Conditional programming
  • Example Comparison.c
Video 3.2: Counting and repetition
  • Keywords in C
  • Counters, augmented assignment operators
  • Counting by increment and decrement operators
  • Repetion statements, while loop
  • Counter-controlled repetition, example Average.c
  • Sentinel-controlled repetition, example Average2.c
Video 3.3: Review
  • Review quiz: Introduction to C
  • Basic types, operators
  • Expressions, statements
4
Video 4.1: Formatted input and output
  • Formatted input
  • Format specifiers for scanf()
  • Formatted ouput
  • Format specifiers for printf()
  • Example Formatting.c
Video 4.2: Structured programming
  • Programming principles, algorithm and control flow
  • Structured programming, control flow chart
  • Sequential execution
  • Conditional execution, if-else statement
  • Conditional execution, switch statement (case, default)
  • Structured program composition
  • Examples Grade.c and Grade2.c
5
Video 5.1: Structured programming
  • Think before you program!
  • Structured programming, control flow charts
  • Repetition statements, while loop
  • Repetition statements, do-while loop
  • Repetition statements, for loop
  • Program development
  • Example Interest.c
Video 5.2: Structured programming, Debugging
  • Structured jump statements
  • break statement in switch statement
  • break and continue statement in while loop
  • break and continue statement in do-while loop
  • break and continue statement in for loop
  • Arbitrary jump statements, goto statement
  • Debugging
  • Source level debugger gdb
  • Example Interest2.c
Video 5.3: Introduction to functions
  • Function concepts and terms
  • Function declaration, definition, and call
  • Simple functions, example Square.c
  • Hierarchy of functions, example Cylinder.c
6
Video 6.1: Function hierarchy
  • Hierarchy of functions, example Cylinder.c
  • Function call graph
  • Function call trace
  • Function call stack
  • Stack frames, debugging
Video 6.2: Functions and scope
  • Function terms and concepts
  • Scopes and scope rules
  • Local vs. global variables
  • Debugging scopes
  • Example Scope.c
Video 6.3: Library functions
  • Math library functions
  • Example Function.c
  • Standard library functions
  • Pseudo random number generation
  • Example Dice.c
7
Video 7.1: Data structures, arrays
  • Data structure introduction
  • Introduction of arrays
  • Array indexing and initialization
  • Multi-dimensional arrays
  • Operator associativity and precedence
  • Example 1 Histogram.c
  • Example 2 Dice2.c
Video 7.2: Character arrays: Strings
  • Passing arguments to functions
  • Pass by value, pass by reference
  • Character arrays: strings
  • String input and output
  • ASCII table
  • Sorting strings alphabetically: Bubble sort algorithm
  • Example BubbleSort.c
Video 7.3: Review
  • Review quiz: Structured programming
  • Functions
  • Arrays
8
Video 8.1: Recursion
Video 8.2: Data structures
  • Structures, struct type
  • Structure declaration and definition
  • Structure instantiation and initialization
  • Structure member access operator
  • Unions, union type
  • Union declaration and definition
  • Union instantiation and initialization
  • Union member access operator
  • Enumerators, enum type
  • Enumerator declaration and definition
  • Type definitions, typedef type
  • Example student records Students.c
9
Video 9.1: Computer organization
  • Basic computer architecture, components
  • Binary data representation
  • Bits, bytes, and words
  • Data in memory, memory size (sizeof) and format
  • Number systems: binary, octal, decimal, and hexadecimal numbers
  • Memory organization, segmentation
  • Objects in main memory
  • Example Objects.c
Video 9.2: Pointers
  • Introduction to pointers
  • Pointer definition, initialization, and assignment
  • Pointer dereferencing operators
  • Pointer arithmetic, increment and decrement
  • Pointer comparison
Video 9.3: Pointers and string operations
  • String operations using pointers
  • Pointer and array type equivalence
  • Passing pointers to functions
  • Type qualifier const
  • Standard library functions for strings
  • Standard string manipulation functions
  • Example bubble sort revisted, BubbleSort2.c
10
Video 10.1: File processing
  • Introduction to file processing
  • Standard input and output streams
  • File streams, input and output
  • Standard library functions for file processing
  • Program example PhotoLab.c
  • Image example UCI_Firetrucks.ppm
Video 10.2: Translation units
  • Introduction to translation units
  • Compilation phases and compiler components
  • Preprocessor, compiler, and linker
  • Multiple translation units: modules
  • Program example PhotoLab2: Constants.h and Main.c
  • File processing module: FileIO.h and FileIO.c
  • Image manipulation module: Age.h and Age.c
  • Image example: UCI_Firetrucks.ppm
Video 10.3: Review
  • Review quiz: Data structures and pointers
  • Data structures, pointers
  • File processing, translation units

The Electronic Educational Environment
University of California, Irvine
http://eee.uci.edu/17f/18022/
(viewed times since 8/24/17).