Syllabus
Unit I
Abstraction, Implementation Paradigm – HDL Overview – Implementing Gates in HDL – Combinational Logic: Design and Implement Binary Adders – Simple ALU Construction – Sequential Logic: Design and Implementation of Memory Hierarchy – Implementing Flip Flop Gates, Registers and RAM units of Arbitrary Sizes – Machine Language: Instruction Set (Binary and Assembly Versions) – Writing Low-level Assembly Programs – Running on CPU Emulator
Unit II
Computer Architecture: Integrating Chip-sets – Building an Assembler – Virtual Machine I: Implementing a VM to translate from VM language into assembly language – Virtual Machine II: Complete VM implementation as the back-end component of Compiler.
Unit III
High Level Language: Introduction to Jack a high-level object-based language – Compiler I: Building a Syntax analyzer for Jack – Compiler II: Morphing syntax analyzer into a full-scale compiler – Operating System: Design and Implementation of some classical arithmetic and geometric algorithms needed for OS implementation.
Objectives and Outcomes
Course Objectives
- The course will expose the students to the basics of Boolean algebra and further help them to understand the workings of a modern computer.
- Students will be trained to build a computing system using elementary logic gates such as NAND, AND, OR through simulation software.
- The course exposes students to a significant body of computer science knowledge, gained through a series of hardware and software construction tasks.
Course Outcomes
CO1: To introduce the implementation of digital logic systems.
CO2: To develop an understanding of the working of a modern computing system.
CO3: Implement and execute low-level programming on the hardware platform.
CO4: Develop and test programs in the object-based language ‘Jack’.
CO5: Practice experiments related to basic concepts and functions of operating systems and compilers.
CO-PO Mapping
PO/PSO
|
PO1
|
PO2
|
PO3
|
PO4
|
PO5
|
PO6
|
PO7
|
PO8
|
PO9
|
PO10
|
PO11
|
PO12
|
PSO1
|
PSO2
|
CO
|
CO1
|
3
|
3
|
3
|
3
|
3
|
2
|
–
|
–
|
–
|
–
|
–
|
2
|
2
|
2
|
CO2
|
3
|
2
|
3
|
3
|
3
|
–
|
–
|
–
|
–
|
–
|
–
|
2
|
2
|
2
|
CO 3
|
3
|
3
|
3
|
3
|
3
|
2
|
–
|
–
|
–
|
–
|
3
|
2
|
2
|
2
|
CO4
|
3
|
2
|
3
|
3
|
3
|
–
|
–
|
–
|
–
|
–
|
3
|
2
|
2
|
–
|
CO5
|
3
|
2
|
3
|
3
|
3
|
–
|
–
|
–
|
–
|
–
|
3
|
2
|
2
|
2
|
Evaluation Pattern
Evaluation Pattern: 70:30
Assessment
|
Internal
|
End Semester
|
MidTerm Exam
|
20
|
|
Continuous Assessment – Theory (*CAT)
|
10
|
|
Continuous Assessment – Lab (*CAL)
|
40
|
|
**End Semester
|
|
30 (50 Marks; 2 hours exam)
|
*CAT – Can be Quizzes, Assignments, and Reports
*CAL – Can be Lab Assessments, Project, and Report
**End Semester can be theory examination/ lab-based examination/ project presentation
Text Books / References
Textbook(s)
Noam Nisan and Shimon Schocken, “The Elements of Computing Systems – Building Modern Computers from First Principles”, MIT Press, 2008.
Reference(s)
Edward G. Amoroso and Matthew E. Amoroso, “From Gates to Apps”, Silicon Press, 2013.
Roger Young, “How Computers Work: Processor and Main Memory”, Create space Independent Publishing Platform, Second Edition, 2009.
Charles Petzold, “Code: The Hidden Language of Hardware and Software”, Microsoft Press, 2000.