Apr 24, 2024  
2017-2018 Course Catalog 
    
2017-2018 Course Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CSCI 2016 - Introduction to the Organization of Computer Systems

Credits: 4
Hours/Week: Lecture 4Lab None
Course Description: This course is an introduction to hardware/software components of a computer system. Topics covered will include data representation, computer arithmetic, basic logic design, machine-level programs, instruction set architectures, processor and memory organization, storage hierarchy, optimization techniques and future trends. Students will write programs in a low-level language, such as assembly language.
MnTC Goals
None

Prerequisite(s): CSCI 1082  with a grade of C or higher or instructor consent.
Corequisite(s): None
Recommendation: CSCI 1020 .

Major Content
  1. Classification of instructions, addressing modes, assembly languages
  2. Computer peripherals: Hard disks, CD-ROM, DVD, audio CD, video displays, printers, scanners
  3. Data representation for text, graphic, audio, video etc. data
  4. Description and comparison of different processor architectures including CISC & RISC
  5. Different metrics to measure computer performance
  6. Input-output, interrupts, DMA, buses
  7. Introduction to Boolean algebra and basic logic design
  8. Introduction to basic combinational and sequential circuits
  9. Micro Programming, Micro-instructions formats, symbolic and binary micro-program
  10. Numeric representation and arithmetic in different bases including conversions, counting, integer and floating point formats
  11. Overview of current computer organization and architectures
  12. Processor strategies including pipelining, cache, parallelism, multicore, etc
  13. Programming in assembler, data transfers
  14. Structure and operation of internal memory
  15. Structure and operation of the CPU
  16. Von Neumann Architecture: basic functional blocks and their interaction, the instruction set and the instruction cycle

Learning Outcomes
At the end of this course students will be able to:

  1. evaluate a given organization and architecture.
  2. use principles of basic logic design to create simple combinatorial and sequential circuits.
  3. use computer arithmetic to convert numbers between bases, perform arithmetic in different bases and use floating point and integer formats for numeric representation.
  4. use an assembler to create, execute, test and document an assembly language program of moderate complexity.
  5. describe basic optimization strategies (e.g. pipelining, parallelism, cache, etc) and indicate future trends.
  6. describe the basic organization, operation and architecture of computer systems.
  7. use basic understanding of caching and virtual memory to quantify system optimizations.


Courses and Registration



Add to Portfolio (opens a new window)