Course Content and Outcomes Guide for CS 201 Effective Winter 2021
- Course Number:
- CS 201
- Course Title:
- Computer Systems
- Credit Hours:
- Lecture Hours:
- Lecture/Lab Hours:
- Lab Hours:
- Special Fee:
Addendum to Course Description
Students will complete several lab/programming exercises techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.
Intended Outcomes for the course
Upon completion of the course students should be able to:
- Describe and analyze computer systems architecture to enhance the correctness, performance, and utility of the application or system software.
- Describe, analyze, and resolve application and system software failures involving systems architecture.
Outcome Assessment Strategies
Students will demonstrate, on exams or lab assignments, the following:
- An understanding of internal data representation and manipulation.
- An ability to understand machine-level representation of programs.
- An understanding of linking, loading, and relocation.
- An understanding of exceptions and interrupts.
- An understanding of system calls.
- The issues involved in measuring performance and program execution time.
- Storage technology and memory hierarchies.
- Memory allocation.
Course Content (Themes, Concepts, Issues and Skills)
- Basic Machine Organization
- C Programming (I/O, command line arguments, pointers, arrays, structures)
- Intro to System Programming Tools (gcc, makefile, gdb)
- Data Representation (bits & bytes, characters, integers, floating point numbers)
- Introduction to Assembly Language (Encoding, Accessing Information, Operations, Embedded Assembly)
- Control Flow at Machine Level
- Stack-based Procedure Calls at Machine Level
- Complex Data types at Machine Level and Alignment
- Linking and Loading
- Exceptions and Interrupts
- Processes, Process Control, Signals
- processes and process control
- System Calls and File I/O
- Performance Optimization
- Timing using System Calls and Cycle Counters
- Introduction to Memory Hierarchy and Dynamic Memory Allocation