BS Computer Science – Systems & Architecture Thread

The systems and 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 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. We emphasize different system properties such as performance, power consumption, reliability, security, and availability. The 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 this thread with Theory to form the basis of a traditional CS degree or with Information to broaden their system knowledge of web technologies or with Media to devise media-centric platforms or with Devices to build embedded platforms, or...

Systems & Architecture

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

 

If you are following one of the BSCS Threads study plans implemented before Summer 2012 or one of the BSCS study plans that were in place prior to Threads, click here.

Required Courses (For Students in the Program of Study that begins Summer 2012)

View the course prerequisites for the Systems & Architecture Thread.

  • CS1301 Introduction to Computing and Programming, 3
  • CS1331 Introduction to Object-Oriented Programming, 3
  • CS1332 Data structures and Algorithms, 3
  • CS2050 or CS2051 Introduction to Discrete Math for CS, 3
  • CS2110 Computing Organization and Programming, 4
  • CS2200 Computer Systems and Networks, 4
  • CS2340 Objects and Design, 3
  • CS3210 Design of Operating Systems, 3
  • CS3240 Languages and Computation, 3
  • CS3510 or CS 3511 Design and analysis of algorithms, 3

Pick 1 of Computer Architectures:

  • CS3220 Computer Structures: HW/SW Codesign of a Processor, 3
  • CS4290 Advanced Computer Organization, 3

Pick 1 of Platform Interfaces:

  • CS3251 Computer Networking 1, 3
  • CS3300 Introduction to Software Engineering, 3
  • CS4240 Compilers, Interpreters, and Program Analyzers, 3

Elective Courses (pick and choose whatever courses you wish) 

Free Electives (6 hours)

  • FREE-PLAT1 Free Elective-Platforms, 3
  • FREE-PLAT2 Free Elective-Platforms, 3

Parallel Platforms

  • CS4210 Advanced Operating Systems, 3
  • CS4233 Parallel Computer Architecture, 3
  • CS4290 Advanced Computer Organization, 3
  • CS4xxx Design of Gaming Consoles, 3
  • CS4xxx Scalable Information Systems and Technologies, 3

Distributed Platforms

  • CS4210 Advanced Operating Systems, 3
  • CS4675 Internet Computing Systems, 3
  • CS4685 Pervasive Systems and Networking, 3
  • CS4xxx Scalable Information Systems and Technologies, 3

Embedded and Ubiquitous Platforms

  • CS4220 Programming Embedded Systems, 3
  • CS4685 Pervasive Systems and Networking, 3
  • CS4xxx Design of Gaming Consoles, 3

Domain Specific Platforms

  • CS4220 Programming Embedded Systems, 3
  • CS4xxx Design of Gaming Consoles, 3
  • CS4xxx Scalable Information Systems and Technologies, 3

Platform Technologies

  • CS4210 Advanced Operating Systems, 3
  • CS4220 Programming Embedded Systems, 3
  • CS4235 Introduction to Information Security, 3
  • CS4237 Computer and network security, 3
  • CS4560 Verification of Systems, 3

Software Interfaces, Tools and Technologies

  • CS4220 Programming Embedded Systems, 3
  • CS4240 Compilers, Interpreters, and Program Analyzers, 3
  • CS4392 Programming Language Design, 3
  • CS6241 Design and Implementation of Compilers, 3 (Prereq CS4240)
  • CS6246 Object-oriented Systems and Languages, 3 (Prereq CS2340)