System Programming (Fall, 2017)

Course Description
In this course, we will study the lower concepts of computer systems through assembly programming. Especially, from the perspective of programmer, we will focus on assembly programming language and how a computer launches applications and stores information.

Course Texts
Randal E. Bryant and David R. O'Hallaron. Computer Systems: A Programmer's Perspective. Prentice Hall Inc., 2010.

Course Grading
Exam: 60%
Project, homework and etc.: 40%
* Subject to change
* Person who is absent more than 3 times will get F.

Prof. Jo, Heeseung (For more details... refer here)


Topics Materials / Homework
Course introduction (Syllabus)
Computer science is ...
Course Overview
Digital Systems
Representing and Manipulating Integers
Representing and Manipulating Floating Points
Byte Ordering
Machine-level Representation of Programs
Introduction to IA-32
Assembly I Basic Operations
Assembly II Control Flow
10/26, Exam.1 (14:00, Room 6-b15)
Assembly III Procedures
Assembly IV Complex Data Types
Buffer Overflow
Term Project
Project guide
Skeleton code
Progress presentation: 12/5 16:00
Submission due date: 12/13 23:59
Final presentation: 12/14 14:00
Test app. code
(library의 정상작동을 확인해 보기 위한 코드임)
11/28, Exam.2 (16:00, Room 6-b15)
* Credit: Most of slides for this lecture are based on materials provided by the textbook publisher and Prof. Jinsoo Kim.