===== EEC120 Teaching/Evaluation Plan ===== ^ Week ^ Lecture ^ Laboratory ^ Notes ^ ^ Week 01 | * Introduction to EEC120 Computer Programming I * Introduction to Computer Systems - Hardware (CPU, input, output) - Software (Kernel, OS, userspace) - Numbers & Logic * Introduction to Computer Programming - Algorithms: instruction sequencing - Flow-charts: visual representation - Interpreters => scripts - Compiler and Linkers => binary executables | * Tools (compiler/IDE) Installation/Setup | * **[VIDEO GUIDE]**??? | ^ Week 02 | * Introduction to C language - Basic code structure (syntax) - Function and code-block - Simple text display * Creating first executable binary - Syntax (language) and semantic (decision logic) errors - Simple debugging | * Explore building binary from c source code * Explore creating text decorations using symbols | * **[VIDEO GUIDE]**??? | ^ Week 03 | * C Variables (data storage) - data types and sizes * C Operators - arithmetic and logic - boolean vs bitwise * Data processing - equations and tasks - (optional) math.h library functions | * Understanding storage types and practical use * Exploring code that does equations/calculations | **Assignment 1 Queue** | ^ Week 04 | * Flow control: Branches (selection) - ''if-else'' structure - ''switch-case'' structure - (otional) the ''?:'' combo | * Understanding decision making process in code * Exploring code that control program flow | | ^ Week 05 | * Flow control: Loops (repetition) - ''for'' structure - ''while'' structure - ''do-while'' structure | * Understanding iterative flow in code * Exploring code that repeats itself | **Assignment 1 Due (5%)** | ^ Week 06 | * C (Data) Array - storage in groups - accessing array items (content) | * Understanding array as group-storage * Exploring code that process on arrays (read/write) | **Lab Assessment 1 (10%)** | ^ Week 07 | * C String - array of chars (null terminated) - (optional) string.h library functions | * Understanding string as char array * Exploring code that process on strings (read/write) | **Mid-term Examination (20%)** | ^ Week 08 | * C Pointers - indirect data access (data that holds address to other data) - array name as address - pointers in loops - pointer arithmetic | * Understanding pointers as method for indirect access * Exploring code that deals with (or use) pointers | **Assignment 2 Queue** | ^ Week 09 | * C Functions - function return value - function parameters - (extra) data/variable scope and lifetime | * Understanding functions as building block for modular programming * Exploring code that has multiple functions | | ^ Week 10 | * File access (permanent storage) - accessing file on secondary memory (i.e. disks) - text vs binary file | * Understanding pros/cons of secondary storage * Exploring code that read/write from/to files | **Assignment 2 Due (5%)** | ^ Week 11 | * Practical Applications * requirements and considerations * C struct - data group - accessing data in struct | * Lab Project * (extra) use struct to create abstract data type * (extra) creating functions to process struct (towards oop?) | **Lab Assessment 2 (10%)** | ^ Week 12 | * Practical Applications (cont.) * requirements and considerations | * Lab Project (cont.) | ^ Week 13 | * Practical Applications (cont.) * requirements and considerations | * Lab Project (cont.) | | ^ Week 14 | * Practical Applications (cont.) * requirements and considerations | * Lab Project (cont.) | **Lab Project Due (10%)** |