Description:
An introduction to the design and operation of digital computers. 2505: Works up from the logic gate level to combinational and sequential circuits, information representation, computer arithmetic, arithmetic/logic units, control unit design, basic computer organization, relationships between high level programming languages and instruction set architectures.
Having successfully completed this course, the student will be able to:
- design combinational and sequential circuits that realize different aspects of a digital computer, particularly the control unit;
- represent and manipulate information in arbitrary number systems, including binary;
- design and analyze finite state automata;
- explain the different layers of abstraction in a computing system, i.e., logic design, computer architecture, machine language, assembly language, high level language;
- write simple programs in machine language, assembly language and C;
- describe the characteristics of an instruction set and how it maps to underlying hardware;
- explain the basics of instruction execution on a computer, i.e., the instruction cycle;
- define the relationship between hardware and software.
Together with CS2506, this course replaces CS2204 and CS2504.
Prerequisites: C or better in CS 1114, C or better in CS 1124
Corequisites: Math 2534
Recent Offerings: