First Semester AY 2019-2020
| Course Number | CMSC 131 |
| Course Title | Introduction to Computer Organization and Machine Level Programming |
| Description | An introduction to computer organization and interfaces between hardware and software. Microcomputer systems: basic computer organization, memory addressing, CPU-memory-I/O relationships, interfacing interrupt mechanisms. Assembly Language Programming: Machine vs. Assembly language, data structure representations, program control implementations, subroutines, parameter passing, recursion, direct-video graphics, serial port communications. |
| Prerequisites | CMSC 21 or COI |
| Credit | 3 units |
The aim of this course is to introduce students to computer organization, assembly language and systems programming.
| (A) 3 Long Exams | 45% |
| (B) Quizzes/Homeworks | 10% |
| (C) Laboratory | 45% |
| (D) Prefinal | A+B+C |
| (E) Final Exam | 100% |
| (F) Final Grade | 20%xE+80%xD |
| 0.00 | 54.99 | 5.0 |
| 55.00 | 59.99 | 3.0 |
| 60.00 | 64.99 | 2.75 |
| 65.00 | 69.99 | 2.5 |
| 70.00 | 74.99 | 2.25 |
| 75.00 | 79.99 | 2.0 |
| 80.00 | 84.99 | 1.75 |
| 85.00 | 89.99 | 1.5 |
| 90.00 | 94.99 | 1.25 |
| 95.00 | 100 | 1.0 |
Attendance will be checked every meeting. Students with seven(7) or more absences will be automatically dropped from the class.
| Name | Role | |
|---|---|---|
| Joseph Anthony C. Hermocilla | Lecture/Laboratory | jchermocilla@up.edu.ph |
| Meeting | Date | Topic | Readings | Homework |
|---|---|---|---|---|
| 1 | 8/7/19 W | Introduction (by Prof. R. Mercado) | ||
| 2 | 8/9/19 F | (no meeting) | ||
| 3 | 8/14/19 W | Basic Computer Organization (by Prof. R. Mercado) | ||
| 4 | 8/16/19 F | Introduction to x86 Assembly Language Programming | ||
| 5 | 8/21/19 W | Information Representation | [CS:APP2e] Ch. 2a | |
| 6 | 8/23/19 F | Representing integral types and strings | ||
| 7 | 8/28/19 W | Boolean Algebra | ||
| 8 | 8/30/19 F | Signed and Unsigned Integers; Addition and Subtraction | ||
| 9 | 9/4/19 W | IEEE 754 floating point, x86 processors | [CS:APP2e] Ch. 2b, [CS:APP2e] Ch. 3a | |
| 10 | 9/6/19 F | Disassembly of machine code | ||
| 11 | 9/11/19 W | Memory Addressing Modes | [CS:APP2e] Ch. 3b | |
| 12 | 9/13/19 F | (no meeting due to power outage) | ||
| 13 | 9/18/19 W | EXAM 1 | ||
| 14 | 9/20/19 F | Condition Codes | ||
| 15 | 9/25/19 W | Conditional MOVs | ||
| 16 | 9/27/19 F | Implementing Loops | ||
| 17 | 10/2/19 W | Switch and Jump Tables | [CS:APP2e] Ch. 3c | |
| 18 | 10/4/19 F | Introduction to the stack and procedures | ||
| 19 | 10/9/19 W | Demonstration of stack frames in linux (32-bit) | ||
| 20 | 10/11/19 F | Implementing Recursion and 64-bit procedures | [CS:APP2e] Ch. 3d | |
| 21 | 10/16/19 W | Implementing Arrays | ||
| 22 | 10/18/19 F | Implementing Structures | ||
| 23 | 10/23/19 W | EXAM 2 | ||
| 24 | 10/25/19 F | Alignment and Unions | [CS:APP2e] Ch. 3e | |
| 25 | 10/30/19 W | Memory Hierarchy | [CS:APP2e] Ch. 6a | |
| 26 | 11/6/19 W | SSD | ||
| 27 | 11/8/19 F | Cache Memories | [CS:APP2e] Ch. 6b | |
| 28 | 11/13/19 W | E-way associative cache | ||
| 29 | 11/15/19 F | Case study: Matrix Multiplication | ||
| 30 | 11/20/19 W | Linking | [CS:APP2e] Ch. 7 | |
| 31 | 11/22/19 F | Relocation | ||
| 32 | 11/27/19 W | Shared libraries | ||
| 33 | 11/29/19 F | (no meeting) | ||
| 34 | 12/4/19 W | EXAM 3 |
| Meeting | Date | Topic | Readings | Homework |
|---|---|---|---|---|
| 1 | 8/9/19 F | |||
| 2 | 8/16/19 F | |||
| 3 | 8/23/19 F | |||
| 4 | 8/30/19 F | |||
| 5 | 9/6/19 F | |||
| 6 | 9/13/19 F | |||
| 7 | 9/20/19 F | |||
| 8 | 9/27/19 F | |||
| 9 | 10/4/19 F | |||
| 10 | 10/11/19 F | |||
| 11 | 10/18/19 F | |||
| 12 | 10/25/19 F | |||
| 13 | 11/8/19 F | |||
| 14 | 11/15/19 F | |||
| 15 | 11/22/19 F | |||
| 16 | 11/29/19 F |