CSE 220 Back to CSE Courses

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
Department of Computer Science • Stony Brook University, Stony Brook, NY 11794-4400 • 631-632-8470 or 631-632-8471