CSCI 305: Computer Organization and Programming
CSCI 305 Computer Organization and Programming Three Credit Hours
Prerequisites: CSCI 201 with a grade of "C" or higher; prerequisite or corequisite: 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.
- Data representation
- IA-32 processor architecture
- Data transfer and addressing
- Integer arithmetic
- Procedures and the runtime stack
- Conditional processing
- Computer architecture overview and history
- Computer systems organization
- Digital logic and circuits
- Instruction set architecture
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, 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.
- Assembly Language for x86 Processors (Sixth Edition) by Kip R. Irvine, Prentice Hall, 2010.
- The Essentials of Computer Organization and Architecture (Fourth Edition) by Linda Null and Julia Lobur, Jones & Bartlett Learning, 2014.