본문 바로가기 사이드메뉴 바로가기 대메뉴 바로가기

Computer Science

Courses

Systems Fundamentals II
Text code : CSE320 / Credit : 3
  • Prerequisites C or higher: CSE 220 and CSE major
  • Textbook information Bryant and O'Hallaron, Computer Systems: A Programmer's Perspective, third edition, Pearson, 2016

Credits 3
Course Coordinator

Yoon-Seok Yang

Description

This course introduces C programming and essential concepts of operating systems, compilers, concurrency, and performance analysis, focused around several cross-cutting examples, such as memory management, error handling, and threaded programming. In this course, operating systems concepts are considered from the point of view of the application programmer, and the focus is on APIs for interacting with an operating system. A companion course, CSE 306, considers operating systems from the point of view of the OS kernel implementer. 

Prerequisite C or higher: CSE 220 and CSE major
Course Outcomes
  • Develop an understanding of the layers of software that lie between an application program and the underlying hardware and how they inter-operate.
  • Develop an ability to program with operating system APIs.
  • Develop an ability to write and analyze multi-threaded programs.
Textbook

Bryant and O'Hallaron, Computer Systems: A Programmer's Perspective, third edition, Pearson, 2016

Major Topics Covered in Course

      Contents

  • C Programming
  • Memory Hierarchy, Caches, Virtual Memory
  • Operating System Processes and POSIX abstractions
  • Operating System Scheduling and I/O
  • Basic Networking and Socket Programming
  • Multi-threading and Parallel Programming

       Laboratory Projects

  • Dynamic Memory *Allocator*
  • Shell Environment Implementation
  • Client/Server Networking Implementation
  • Thread-based Programming
Laboratory Projects

N/A

Course Webpage

CSE320