Course Description

Course Name

Computer Systems and Organization

Session: VVLF3124

Hours & Credits

4 Credits

Prerequisites & Language Level

Taught In English

  • There is no language prerequisite for courses at this language level.


Computer Systems and Organization l

3 Credits | 300 Level | 50 Contact hours


Digital Design (2nd Edition), Frank Vahid, Wiley, 2010. The C programming language, By Brian W Kernighan and Dennis Ritchie, Prentice Hall; 2nd Edition (04/88)



Students learn the basic concepts of computer systems. Students are introduced to the concepts of computer architecture abstraction hierarchy ranging from a step above silicon to a step below modern programming languages. Students in this course will learn to write code in C and Assembly, how data is stored in memory, memory organization, data representation, the logical design of computers, the basics of hardware design from gates and registers through general-purpose computers, and legal, ethical, and security issues related to these topics.

Engineering in all fields is progressing at a rapid rate; the ability to design and create digital systems is increasingly important. Logic Design is the process of designing complex digital systems using simple two way switches. In this course we begin with binary (yes/no) phenomena and build successively more complex components and systems.

You will discover how simple gates are built from switches, how components are built from gates, how systems are built from components, from which the concept of memory will emerge, which will greatly expand the devices that we can design and use to create more complex systems.

A great way to learn about digital systems is to play with example systems and see how they work; that’s what you’ll do in many classes. There may be a short orientation lecture before you begin exploration or a summary discussion after your discovery. After that, you may be asked to extend the behavior of the given circuit or to use it as part of another system.



1. Introduction. Combinational Logic Design. Boolean Logic Gates. Boolean Algebra.
2. Representation of Boolean functions.
3. Representation of Boolean functions.
4. Decoders and Muxes.
5. Sequential Logic Design.
6. Reverse engineering of sequential circuits.
7. C introduction.
8. C programming. Procedures. Arrays. C std library conventions.
9. C programming: Input. Lookup tables LUT. memory errors.
10. Computer Architecture and Processor Technology
11. Datapath Components: Arithmetic Logic Units
12. C programming: interrupts and timers



In this course you will:
• Better understand how digital systems impact people’s lives.
• Experience how computer scientists and engineers build digital systems to solve a wide range of real problems in all fields.
• Improve your problem-solving skills, including design and debugging skills.
• Analyze and design in multiple levels of abstraction, that is, be able to move from detailed component-level design to system design (where components are treated as building blocks) and vice-versa.
• Learn the logical design of computers and the basic practical aspects about computer
programming using C, using modern ARM processors, as key piece of the Internet of Things (IoT).
• Understand how C become assembly and how assembly is run by a computer. Describe how
data is stored in memory.
• better understand the need for precision in technical communications, particularly with
respect to interface design.



Your final course average will be calculated using the following method:
• Labs and Exercises – 30% • Assignments – 20% The exercises will be a combination of design problems as well as paper-and pencil activities that address the topics studied.
• Exam 1 – 15% Covering the first third of the course.
• Exam 2 – 15% Covering the second third of the course.
• Final Exam – 20% Covering mainly the remainder of the course, with some material from the first two-thirds.

*Course content subject to change