Skip to content

hosseinfani/digital_odyssey

Repository files navigation

2022: A Digital Odyssey

Materials for the Computer Science Course "Computer Architecture I: Digital Design (Logic Circuits)"

Digital Design (Logic Circuits): Course Banner
Inspired by Spinning Numbers (Willy McAllister) and Stitching Logic (Kendall Price)

Digital systems are indispensable and the foremost means of technology in today's everyday life that we refer to the present period as the digital age. Digital systems are used in communication, traffic control, spacecraft guidance, medical treatment, and many other enterprises. Today, a myriad of digital devices surrounds us, including digital telephones (Smart Phones), digital televisions (Smart TVs), digital cameras, and, of course, digital computers. Although these devices enable us to execute commands easily, they involve precise execution of a sequence of complex internal instructions underneath at the hardware level indeed.

This course, COMP-2650: Computer Architecture I: Digital Design, provides a first introduction to the design of digital circuits and computer architecture following a bottom-up approach, from basic logic gates to circuits like adders, decoders, flip-flops, registers to be then combined into more complex units such as memory and processors as well as a whole computer system. Topics covered include number systems, logic gates, circuit minimization, combinational circuit, read-only memory (ROM), random-access memory (RAM), programmable logic, synchronous and asynchronous sequential circuits, latches, flip-flops, registers, counters, register transfer language, and CPU architecture overview. This course is followed by complementary course COMP-2660: Computer Architecture II: Microprocessor Programming, where more in-depth topics such as memory segmentation are covered.

It is essential to understand how a modern computer works underneath, from the bottom up, to develop efficient programs by knowing the followings:

  • Physical memory layout when using data types, e.g., (un)signed numbers and floating-point, and data structures like arrays, linked lists, and hash tables,
  • Boolean algebra and applying logical operation,
  • How CPU oscillates the program statements and commands.

And at the end of the day, everything runs on hardware!

Digital Design (Logic Circuits): Instructor
Digital Design (Logic Circuits): Book
Digital Design (Logic Circuits): Gratudate and Teaching Assistants

License

©2021. All materials available here are licensed under a CC BY-NC-SA 4.0 license.