===== 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%)**
|