You are here

Computer Science 295

Computer Science 295

Introduction to Computer Systems 

Credits: 3

Classroom Hours per Week: 4 hours of lecture and 1 lab hour

Prerequisites: Computer Science 125, Math 120 and 12 credits

Preclusions: Students who have credit for either Csci 150 or Csci 250 cannot take Csci 295 for additional credit.

Text: a) Computer Systems: A Programmer’s Perspective plus Mastering Engineering with Pearson eText – Access Card Package, 3/e. Bryant and O’Halloran. Pearson, 2016. b) Logic Works 5, Capilano Computing Systems Ltd, Addison-Wesley: manual and software used for digital hardware simulation.

additional lecture materials will be provided to supplement the texts

Course Description:

The basic concepts of digital logic design, and the function and use of typical digital components belonging primarily to the small and medium scale integration (SSI, MSI) families will be introduced in this course. In addition, students will be introduced to digital logic & digital systems, machine level representation of data, computer organization, memory system organization & architecture, and interfacing & communication. The assembly language of a particular CPU will be used to illustrate machine language programming concepts. An interactive logic simulation environment for designing and testing logic circuit design will be used for the assignments.

Course Outline:

Representation of data Character encoding (ASCII, Unicode)
Signed integer representation
Floating point representation
Representation of instructions (Instruction Set Architecture) Components of an instruction (operation, operands)
Role of instructions (data transfer, computation, testing, branching)
Encoding instructions (machine language, instruction length)
Instruction design (von Neumann bottleneck, instruction format)
Assembly language programs Implementing control structures
Implementing arrays (pointers, static arrays, dynamic arrays)
Implementing subprograms (procedures, stack frames)
Basic Digital and Sequential Systems Implementing Boolean functions with gates
Digital switching (multiplexers and decoders)
Storage (registers, RAM memory, ROM, register files)
Functional units (Adder, ALU, Comparator
Sequential circuits (Flip-flops, Sequential Circuits)
CPU organization Instruction execution (fetch/execute cycle)
One-cycle machine
Multi-cycle machine
Pipelining (organization, hazards)
Memory organization Ram technologies (SRAM, DRAM)
Block structured memory
Locality of reference
Hierarchical memory systems
Threads and synchronization Processes and threads
Synchronization using semaphores
Introduction to deadlock


Labs 10%
Assignments 20%
Quizzes 10%
Midterm 20%
Final Exam 40%


Ken Chan, B.Sc. (Simon Fraser), M.S.E.E. (Wayne)

William Cheng, B.Sc., M.Sc. (Cal. State)

Yvonne Yang, B.Sc. (Hunan), Ph.D. (Paris)

Transferability: see