Systems & Architecture

Create computer architectures, systems, and languages.

The Systems & Architecture thread is where many of the practical skills of computing are learned. This thread teaches you about the organization of computer systems, how they are built using different hardware and software layers and how they are programmed.

The Systems & Architecture thread deals with a complete vertical slice of system building from processor design, memory organization to virtualization and operating system layers all the way up to the programming interfaces, languages and the tool chains such as compilers, debuggers and profilers. It emphasizes different system properties such as performance, power consumption, reliability, security, and availability. This thread spans a vast spectrum of systems ranging from parallel and distributed systems to emerging multi-core systems, as well as domain specific systems (such as gaming consoles, healthcare information systems, real-time embedded controllers used in avionics, and so on).

Students can combine Systems & Architecture with Theory to form the basis of a traditional CS degree, with Information Internetworks to broaden their system knowledge of web technologies, with Media to devise media-centric platforms, with Devices to build embedded platforms, or a number of other practical combinations.

Remote video URL

Early Preparation

  • Programming and Design
  • Basic Discrete structures: set theory, graph theory
  • Algorithms and Data Structures
  • Basic Computer System Organization: Hardware and Software Layers
  • Basic Communication networks

Knowledge Goals

  • Programming Abstractions/Paradigms
  • Programming Language Design
  • Compiler Construction and Language Implementation
  • Architecture Components and Design Techniques (e.g., pipelining, memory hierarchies)
  • Architecture Performance Measurement and Evaluation
  • Operating Systems and Resource Management Concepts
  • Concepts of Concurrency, Parallelism and Distribution
  • Modeling and Design of Complex Software Systems
  • Understanding and Controlling System Properties (such as reliability, performance, correctness)

Skill Outcomes

  • Ability to write simple tools based on lexer/parser technology
  • Ability to write simple code generator/assembler
  • Ability to design simple pipelined machines based on Von Neumann architecture
  • Ability to implement simple operating system kernels that deal with memory management, process scheduling, synchronization, thread management, etc.
  • Ability to quantitatively analyze systems with respect to different characteristics such as performance, power, reliability etc.
  • Design and implement small languages/language extension in different paradigms
  • Ability to design and evaluate software systems that rely on parallelism, concurrency or distribution
  • Ability to design ubiquitous systems that rely on distributed embedded devices
  • Ability to verify system properties based on specification

View the course prerequisites for the Systems & Architecture Thread.

Required Courses:

  • CS 1301 Introduction to Computing and Programming, 3
  • CS 1331 Introduction to Object-Oriented Programming, 3
  • CS 1332 Data structures and Algorithms, 3
  • CS 2050 or CS 2051 Introduction to Discrete Math for CS, 3
  • CS 2110 Computing Organization and Programming, 4
  • CS 2200 Computer Systems and Networks, 4
  • CS 2340 Objects and Design, 3
  • CS 3210 Design of Operating Systems, 3
  • CS 3220 Computer Structures: HW/SW Codesign of a Processor, 3
  • CS 3510 or CS 3511 Design and analysis of algorithms, 3
  • ECE 2031 Digital Design Laboratory, 2
Pick 1 of Advanced Systems & Architecture
  • CS 4210 Advanced Operating Systems, 3
  • CS 4220 Programming Embedded Systems, 3
  • CS 4290 Advanced Computer Organization, 3
Pick 1 of Systems Software Tools
  • CS 3300 Introduction to Software Engineering, 3
  • CS 4240 Compilers, Interpreters, and Program Analyzers, 3

 

Elective Courses:

Free Electives, 4 hours

 

Parallel Platforms
  • CS 4210 Advanced Operating Systems, 3
  • CS 4233 Parallel Computer Architecture, 3
  • CS 4290 Advanced Computer Organization, 3
  • CS Special Topics Design of Gaming Consoles, 3
  • CS Special Topics Scalable Information Systems and Technologies, 3
Distributed Platforms
  • CS 4210 Advanced Operating Systems, 3
  • CS 4675 Internet Computing Systems, 3
  • CS 4685 Pervasive Systems and Networking, 3
  • CS Special Topics Scalable Information Systems and Technologies, 3
Embedded and Ubiquitous Platforms
  • CS 4220 Programming Embedded Systems, 3
  • CS 4685 Pervasive Systems and Networking, 3
  • CS Special Topics Design of Gaming Consoles, 3
Domain Specific Platforms
  • CS 4220 Programming Embedded Systems, 3
  • CS Special Topics Design of Gaming Consoles, 3
  • CS Special Topics Scalable Information Systems and Technologies, 3
Platform Technologies
  • CS 4210 Advanced Operating Systems, 3
  • CS 4220 Programming Embedded Systems, 3
  • CS 4235 Introduction to Information Security, 3
  • CS 4237 Computer and network security, 3
  • CS 4238 Computer Systems Security, 3
  • CS 4560 Verification of Systems, 3
Software Interfaces, Tools and Technologies
  • CS 4220 Programming Embedded Systems, 3
  • CS 4240 Compilers, Interpreters, and Program Analyzers, 3
  • CS 4392 Programming Language Design, 3
  • CS 6241 Design and Implementation of Compilers, 3 (Prereq CS4240)
  • CS 6246 Object-oriented Systems and Languages, 3 (Prereq CS2340)

Contact - Undergraduate Advisors

Contact:

advising@cc.gatech.edu