Computer Science 231 - Introduction to Computer Organization

[Catalog Description]  ·  [Who Should Take This Course]  ·  [Expected Outcomes]
[Course Outline   {Topics}  ·  {Lab Component}  ·  {Additional Components}]

Catalog Description

Study of the machine architectures on which algorithms are implemented; requirements of architectures that support high-level languages, programming environments and applications.

Credits: 4 (3 hour lecture and 2 hour lab)

Prerequisite: C or better in CpSc 102 or 210.

Who Should Take This Course

Required for: Majors and minors in Computer Science and Computer Information Systems
Elective for: Other technical majors who have a strong background in programming and want an additional understanding of basic computer operation.

Expected Outcomes

The student who completes this course:
  • Will be able to program in an assembly language,
  • Will be able to trace the execution of a program expressed in either assembly or machine language,
  • Will be able to describe standard internal representations of common data types, and architectural support for common programming structures such as conditional statements, loops and procedure calls,
  • Will understand the basic machine model and will be able to relate this model to programs written in high level languages.
  • Course Outline

    Topics

    Topic Percent
    The Data Model
    Basic representation of data, such as integers, logic values and characters, homogeneous data structures, such as arrays and strings, heterogeneous data structures, such as floating point numbers and records, data access, involving pointers and values, data extraction.
    20%
    The Machine Model
    Processor, memory and I/O, processor data paths and register transfers, instruction cycle of fetch/execute and interrupts, bus interconnections, relative speeds and capacities of components, performance metrics, such as storage space, memory traffic and execution time
    25%
    The Programming Language Translation Model
    Compilation versus interpretation, compilation, conditional assembly, macro processing, assembly, link, load and execute, code generation issues demonstrating the relationship between HLL and machine code.
    20%
    The System Model
    Run-time environment, including stack frame and heap support, procedure call support, including such issues as parameter passing and register conventions, I/O support, such as level of intelligence in controllers, operating system support, including memory protection and interrupts, sharing and reentrancy, virtual memory support.
    20%
    Additional topics, quizzes and exams. 15%

    Lab Component

    Lab sessions will normally reinforce the concepts being taught in the corresponding week's lecture sections.

    Lab topics include:

    1. Basic tools for creating, assembling and debugging and testing assembler language programs.
    2. Assembly language programming including the implementation of control structures, stacks, pointers, procedures and functions.
    3. Tracing program execution.
    4. Relation between compiler and machine code.
    5. Optimizing code.

    Additional Components

    In addition to programs developed during lab sessions, assignments will include:
    1. Homework assignments.
    2. Several large programming assignments that will be developed outside of lab periods. These assignments will challenge students to further develop their problem solving and programming skills for significant problems and will provide practical practice.

    Return to top

    separator separator separator separator separator separator separator separator separator

    Last Updated:
    © Department of Computer Science. All rights reserved.
    Renovation, mistakes, and maintenance by the Webmaster.