CSC 236 - Computer Organization and Assembly Language for Computer Scientists

Catalog Description:
Computer architecture topics required by professional software developers, including binary and hexadecimal numbers, hardware component organization, machine instruction sets, assembler language programming, linking assembler language with high-level languages, program testing, computer hardware design issues, computer software design issues, and trends in current computer design.
Contact Hours: Prerequisites: CSC230 or ECE209
Co-requisites: None
Restrictions: None
Coordinator: Dr. Alexandros Kapravelos
Textbook:

Course Outcomes:

At the end of the course, students will be able to:
  1. Add and subtract and convert, signed and unsigned integers, using bases 2, 10 and 16.
  2. Enumerate the functional components of a computer; explain trade-offs in computer design as they relate to cost and function and performance; outline computer architectural enhancements beyond the von Neumann model.
  3. Explain the basic operation of interrupts and microcode.
  4. Program in x86 assembly language and ARM assembly language 
  5. Link assembler subroutines with a High Level Language. 
  6. Convert symbolic assembler code into machine code and convert machine code into symbolic assembler code.
  7. Explain Floating-Point architecture and program the Floating-Point co-processor
  8. Explain the basic operation of the Java Virtual Machine and Java Bytecode.


Topics:

See Course Listings

See Course Coordinators