Dr. Vincent Freeh

Dr. Vincent Freeh

Computer Science

Phone: 919-513-7196
Fax: 919-515-7925
Instructor Website
Research Website

CSC 236 Computer Organization and Assembly Language for Computer Scientists

3 Credit Hours

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.


CSC 230 C and Software Tools or ECE 209 Computer Systems Programming

Course Objectives

By the end of the course, students will be able to:

  • Add and subtract and convert, signed and unsigned integers, using bases 2, 10 and 16.
  • 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.
  • Explain the basic operation of interrupts and microcode.
  • Program in x86 assembly language and ARM assembly language
  • Link assembler subroutines with a High Level Language.
  • Convert symbolic assembler code into machine code and convert machine code into symbolic assembler code.
  • Explain Floating-Point architecture and program the Floating-Point co-processor.
  • Explain the basic operation of the Java Virtual Machine and Java Bytecode.

Course Requirements

Two open book tests and an open book final.
Ten homework assignments.
Seven programming assignments.


The CSC236 Class Notes course package is the primary text.
It is online on the class WEB site and at the NCSU bookstore.

It contains a detailed set of lecture notes and reference information for programming the Intel 8086 processor.


Updated 4/2/2020