State University of New York at Oswego

  1. COURSE NUMBER AND CREDIT
  2. CSC 222 - 3 Semester Hours

  3. COURSE TITLE
  4. Computer Organization and Programming

  5. COURSE DESCRIPTION
  6. Introduction to the structure and organization of computers, the nature of machine representation of data and programs, programming concepts using machine and assembly language, and programming techniques to interact with computer devices.

  7. PREREQUISITES
  8. CSC 212

  9. COURSE JUSTIFICATION
  10. This is the first course that provides details on the organization of computer hardware/software systems. It is also the first course to introduce classes of programming languages and programming techniques that are specific to a given machine architecture. The multi-level abstraction of computer organization presented in this course introduces a paradigm used in the analysis of complex systems of all types, software systems in particular.
    Frequency: every Spring

  11. COURSE OBJECTIVES
  12. Upon successful completion of this course, students will be able to:

    1. describe how modern computer systems are constructed.
    2. explain why computers are made the way(s) they are.
    3. demonstrate an understanding of how common primitive data types are represented and processed at the machine level, such as integer arithmetic.
    4. program a particular type of CPU in a lower-level language
    5. demonstrate an understanding of digital logic and Boolean algebra, and of the relationships between them.
    6. construct digital circuits from basic logic elements.
    7. demonstrate the mapping between high-level language programming constructs and their equivalent representations at the machine level.
    8. use machine-level operations (e.g. masking, bit manipulation) to solve problems using high-level languages
    9. use high-level language APIs to interact with computer devices

  13. COURSE OUTLINE
    1. Overview: Inside a Computer
    2. Virtual Machines/Real Machines: The Multi-Level Abstraction
    3. Internal Representations of Machine Instructions and Data
    4. Computer Arithmetic
    5. Machine Instruction Types
    6. Assembly Language Programming
    7. Inside the CPU: Arithmetic-Logic Unit (ALU), Control Unit (CU), Microprogramming
    8. Digital Logic
    9. Performance: Measuring, Comparing, CISC vs. RISC
    10. Enhancing Performance

  14. METHODS OF INSTRUCTION
    1. Lectures

  15. COURSE REQUIREMENTS
    1. Attendance
    2. Reading from computer organization and assembly language texts

  16. MEANS OF EVALUATION
    1. Homework assignments
    2. Quizzes
    3. Final Examination

  17. RESOURCES
  18. The Computer Science Department provides computing resources for the students, which is the main resource required. Penfield library provides access to the ACM Digital Library.

  19. BIBLIOGRAPHY
  20. ARCHITECTURE TEXTS

    C. Hamacher, Z. Vranesic, S. Zaky. Computer Organization, 5th ed., McGraw-Hill, 2001.

    D. Patterson and J. Hennessy. Computer Organization & Design: The Hardware/Software Interface, 3rd ed., Morgan Kaufman, 2004.

    S. G. Shiva. Computer Design and Architecture, 3rd ed., Marcel Dekker, 2000.

    W. Stallings. Computer Organization and Architecture, 6th ed., Prentice Hall, 2002.

    A. Tanenbaum. Structured Computer Organization, 5th ed., Prentice Hall, 2005.

    ASSEMBLER PROGRAMMING TEXTS

    K.R. Irvine. Assembly Language for Intel-Based Computers, 4th ed., Prentice Hall, 2002.

    R.P. Paul. SPARC Architecture, Assembly Language Programming, and C, 2nd ed., Prentice Hall, 1999

    J. Waldron. Introduction to RISC Assembly Language Programming, Addison-Wesley, 1998.

    Document:
    URL:
    Last Update: