| Course |
CSE220 |
| Title |
Systems-Level Programming |
| Credits |
3 |
| Course Coordinator |
Jennifer Wong |
| Current Catalog Description |
Introduces systems-level programming
concepts using the C language and assembly language and explores the relation of respective programs in these languages. Topics include internal data representation, basic instructions and control structures, arithmetic operations, pointers, function calls and parameter passing, memory allocation, logical and shift operations, linking and loading.
|
| Prerequisite |
CSE 160 or CSE 114
|
| Course Outcomes |
- An ability to understand and develop programs in C.
- An ability to program in assembly language and understand the relationship to C programming.
- Britton, MIPS Assembly Language Programming, Prentice Hall, 2004 (ISBN 0-13-14204405, 978-0131420441).
|
| Textbook |
- Kernighan and Ritchie, The C Programming Language, Second Edition (ANSI C), Prentice Hall, 1988 (ISBN 0-13-110362-8, 978-0131103627).
- Morgan Kaufmann , third edition, 2004. ISBN: 1558606041
|
| Major Topics Covered in Course |
- Internal Representation
- Bits, Bytes, Words, ASCII and Unicode
- Introduction to C: Variable declarations and basic data types, control statements (loops and if), scanf/printf.
- C: Arrays and loops, strings, simple string processing.
- C: Functions and passing parameters
- C: Dynamic memory allocation, malloc, structs.
- Overview of MIPS, Instruction cycle, processor registers.
- Assembly language: Loops, conditional branching, addressing modes
- Assembly language: Function calls, parameter passing.
- Assembly language: 2-pass assembly process, linking and loading
|
| Laboratory Projects |
- A C program that involves pointer manipulation, accessing strings, integer arrays, and function calls. (0.3 weeks)
- A simple assembly language program that deals with strings, arrays, ASCII code, and simple arithmetic. (0.2 weeks)
- A rather involved assembly language program with nested function calls and parameter passing. (0.5 weeks)
- Another simple assembly language program that deals with bit manipulations using logical and shift instructions. (0.2 weeks)
|
| Course Webpage |
/~cse220 |