Digital Electronics and Computer Architecture – CS 1105
This course covers digital electronics, logic design, computer arithmetic, memory systems, programmable logic devices, and computer architecture. Students will be able to explain the principles of digital circuits and logic. We will use an online hardware simulator to actually “build” a computer and develop an assembler from the ground using concepts we will learn in class. Topics include number systems, Boolean logic, combinational and sequential circuits, computer arithmetic, memory hierarchies, and CPU (Central processing unit) design. By course completion, students will be equipped to contribute to the field of digital design, with skills in circuit design and microprocessor understanding.
Learning Objectives and Outcomes:
By the end of this course students will be able to:
1. Explain the principles of Digital Circuits Logic, Boolean Algebra, and concepts of number systems.
2. Analyze the principles of logic gate combinations and sequential logic design.
3. Describe the basic principles of memory and the ALU (Arithmetic and Logic Unit) within a computer system .
4. Recognize the relationship between machine language and the functioning of a computer system.
5. Examine basic assembler coding techniques .
6. Explain the concept of computer language hierarchy.
Course Schedule and Topics
This course will cover the following topics in eight learning sessions, with one Unit per week. The Final Exam will take place during Week/Unit 9 (UoPeople time).
Week 1: Unit 1 – Introduction to Digital Design
Week 2: Unit 2 – Combinational Logic Design
Week 3: Unit 3 – Sequential Logic Design
Week 4: Unit 4 – Computer Arithmetic
Week 5: Unit 5 – Memory and Programmable Logic
Week 6: Unit 6 – Computer Architecture
Week 7: Unit 7 – Assembler Language: Concepts and Techniques
Week 8: Unit 8 – Compiler Process Overview
Week 9: Unit 9 – Course Review and Final Exam
Learning Guide
The following outlines how this course will be conducted, with suggested best practices for students.
Week 1: Unit 1 – Introduction to Digital Design
- Explain about basic logic gates.
- Apply Boolean algebra and logic gates to construct digital circuits.
Week 2: Unit 2 – Combinational Logic Design
- Explain the concept of combinational circuits and their applications.
- Demonstrate the ability to design combinational circuits using logic gates.
Week 3: Unit 3 – Sequential Logic Design
- Compare and contrast the functionality and characteristics of flip-flops.
- Apply sequential circuit design with registers and counters.
Week 4: Unit 4 – Computer Arithmetic
- Identify different number systems and perform arithmetic operations.
- Demonstrate an understanding of principles of adders, subtractors, multipliers and dividers.
- Explain the implementation and design of adders, subtractors, multipliers, and dividers to perform mathematical operations.
Week 5: Unit 5 – Memory and Programmable Logic
- Explain memory hierarchy in computers.
- Discuss the memory type performance benefits and trade-offs.
- Compare and contrast programmable logic devices (PLDs) to design digital circuits.
Week 6: Unit 6 – Computer Architecture
- Determine computer architecture types for specific applications and understand real-world impacts.
- Examine machine languages for Z80 microprocessor.
- Summarize the importance of interrupt handling.
Week 7: Unit 7 – Assembler Language: Concepts and Techniques
- Develop high-level data structures using assembly language to solve complex programming problems.
- Identify differing coding practices and design principles in Python and Java.
- Explain program translation among different programming languages to illustrate semantic differences.
Week 8: Unit 8 – Compiler Process Overview
- Determine the significance of accurate symbol placement for the effective functioning of computing systems.
- Explain the symbol resolution methods in digital logic, microprocessor, and assembly programming.