메뉴 닫기

SWE2001-42 : System Programming (Spring 2019)

Class Time : 10:30 – 11:45 (Tue.)
                       9:00 – 10:15 (Thu.)

Room Number : #400126

Official Language : English

Instructor : Prof. Euiseong Seo

Course Description : This course is an introduction to concepts underlying all computer systems. More specifically, this course provides a programmer’s view of how computer systems execute application programs, store information, and communicate with each other. This course also serves as a foundation for courses on operating systems, computer architectures, compilers, programming languages, computer networks, and embedded systems, where a deeper understanding of systems-level issues is required. Topics covered include data representations, assembly languages, processor architectures, the memory hierarchy, operating systems, compilers, linkers and loaders, and high-level application programming interfaces.

Textbook : Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd Ed., Prentice Hall, Inc., 2016.

References :

Prerequisites :

  • C programming skills
  • Basic knowledge of Unix/Linux systems
  • ICE2001: Logic circuits
  • ICE2002: Data structures

Grading : Class Participation 10%, Projects 30%, Exams 60%

TA : Hyeonsu  Lee (hyeonsu.lee@csl.skku.edu)

Week Topic Reading Projects
Week1 Course outline Chap. 1  
  Bits, Bytes and Integer Representation, Part 1

Chap. 2.1

 
 Week2 Bits, Bytes and Integer Representation, Part 2 Chap. 2.2  
  Bits, Bytes and Integer Representation, Part 3 Chap. 2.2-2.3  
 Week3 Bits, Bytes and Integer Representation, Part 4 Chap. 2.2-2.3  
  Floating Point, Part I Chap. 2.4  
 Week4 No class due to Conference    
  Floating Point, Part II Chap. 2.4  
 Week5 Assembly – Basics, Part I Chap. 3.1-3.4  
  Assembly – Basics, Part II Chap. 3.1-3.4  
 Week6 Assembly – Basics, Part III Chap. 3.1-3.4  
  Assembly – Arithmetic Ops. Chap. 3.5-3.6 PA #1
(Due: 4/27)
 Week7 Assembly – Control, Part I Chap. 3.6  
  Assembly – Control, Part II Chap. 3.6  
 Week8 Midterm exam week    
  Midterm exam week    
 Week9 Assembly – Control, Part III Chap. 3.6  
  Assembly – Procedures, Part I Chap. 3.7  
Week10 Assembly – Procedures, Part II Chap. 3.7 PA #2
(Due: 5/31)
  Assembly – Data Structures, Part I Chap. 3.8-3.9  
Week11 Assembly – Data Structures, Part II Chap. 3.8-3.9  
  Assembly – Advanced Topics I Chap. 3.10  
Week12 Assembly – Advanced Topics II Chap. 3.11  
  Linking, Part I Chap. 7.1-7.12  
Week13 Linking, Part II Chap. 7.1-7.12  
  Linking, Part III Chap. 7.1-7.12 PA #3
(Due: 6/14)
Week14 Optimization, Part I Chap. 5.1-5.12  
  Memorial Day    
Week15 Optimization, Part II Chap. 5.1-5.12  
  Optimization, Part III Chap. 5.1-5.12  
Week16 Wrap up and review    
  Final Exam    

Introduction to the Vi editor

GNU Tools

Assembly programming