The Military College of South Carolina Dare to Lead

Info Academics Admissions Alumni Cadet Life Graduate College Athletics Connect Giving
Close this window

Giving to The Citadel

  • The Citadel Foundation
  • Blueprint
  • The Citadel Brigadier Foundation

CSCI 305: Computer Organization and Programming

Course Description:

CSCI 305 Computer Organization and Programming Three Credit Hours
Prerequisites: CSCI 202 and MATH 206
Required for a B.S. degree in computer science.
An introduction to computer architecture and assembly language programming. Relationship of the conventional machine level of a modern computer system with its other levels. Topics are chosen from addressing; machine instructions; I/O; subroutines; parameters; recursion; stacks; interrupts; number systems and arithmetic; and the physical, digital, and the microprogramming levels.

Major Topics:

  • Data representation
  • IA-32 processor architecture
  • Data transfer and addressing
  • Integer arithmetic
  • Procedures and the runtime stack
  • Conditional processing
  • Macros
  • Computer architecture overview and history
  • Computer systems organization
  • Digital logic and circuits
  • Microarchitecture
  • Instruction set architecture

Course Outcomes:

Upon successful completion of this course, a student will be able to

  • Explain the basic concepts and functional components of computer organization (processor, input/output devices, memory hierarchy, system bus, etc.)
  • Discuss computer organization in terms of the various levels (digital logic level, microprogramming level, instruction set level, etc.)
  • Represent numbers in various bases (decimal, binary, hex, octal) and convert between bases
  • Explain the representation and storage of signed and unsigned numbers in a computer (two’s complement, big/little endian, etc.)
  • Identify and explain the opcodes, addressing techniques, and calling conventions of an assembly language
  • Write macros and understand the role of macros versus procedures
  • Create, assemble, debug, test, and execute assembly language programs.

Textbooks:

  • Assembly Language for x86 Processors (Sixth Edition) by Kip R. Irvine, Prentice Hall, 2010.
  • The Essentials of Computer Organization and Architecture (Third Edition) by Linda Null and Julia Lobur, Jones & Bartlett Learning, 2012.

Projected Schedule:

Every Fall

Recent Syllabi:

Fall 2012, Moore
Fall 2011, Verdicchio