Transcript title
Sys Prog and Architecture
Credits
4
Grading mode
Standard letter grades
Total contact hours
50
Lecture hours
30
Other hours
20
Prerequisites
CS 162.
Course Description
Answers the question "What really happens when software runs?” Provides an overview of C and assembly language programming and reading skills. Presents the fundamentals of computer architecture and how instructions and data are represented at the machine level. Students learn how fundamental parts of C programs map to assembly code and binary representations, and how this assembly is determined by the Instruction Set Architecture of a machine.
Course learning outcomes
1. Describe the major components of computer architecture; explain their purposes and interactions and the instruction execution cycle.
2. Describe a basic instruction set architecture, including the arithmetic, logic, and control instructions; user and control registers; and addressing modes.
3. Perform simple arithmetic in hexadecimal, decimal, and binary notation, and convert among these notations.
4. Explain how data types such as integers, characters, pointers, and floating point numbers are represented and used at the assembly level.
5. Write C language programs that use control structures, functions, IO, arrays, and dynamic memory.
6. Describe each step of the compilation process by which C language programs are transformed into machine code.
7. Explain how high-level programming constructs such as arrays, structures, loops, and stack-based function calls are implemented in machine code. Recognize and reverse engineer same.
Content outline
- Introduction to Systems
- C Development Fundamentals
- Compiling, Linking and Loading
- Data Representation
- Signed Arithmetic and Floating Point
- Bitwise Operations
- Control Structures
- Memory and Pointers
- Dynamic Memory
- Functions
- Arrays and C-Strings
- Structures
- Performance and Optimizations in C
Required materials
Textbook is required.