Computer Hardware Design - Syllabus
Embark on a profound academic exploration as you delve into the Computer Hardware Design course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC373) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.
This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.
Course Description:
This course provides the detailed idea about the design of computer hardware.
Course Objective:
The main objective is to provide information on various computer hardware and their design. It focuses on various concepts regarding processor, memory and arithmetic operations. It also emphasizes on multicores, multiprocessors and clusters. It also deals with non-functional requirements that play vital role in the design.
Units
Introduction, Performance, The Power Wall, The Sea Change: The Switch from Uniprocessors to Multiprocessors, Manufacturing and Benchmarking the AMD Opteron X4
Introduction, Operations of the Computer Hardware, Operands of the Computer Hardware, Signed and Unsigned Numbers, Representing Instructions in the Computer, Logical Operations,Instructions for Making Decisions, Supporting Procedures in Computer Hardware, MIPS Addressing for 32-Bit Immediates and Addresses, Parallelism and Instructions, Translating and Starting a Program, Arrays versus Pointers, Advanced Material: Compiling C and Interpreting Java, ARM Instructions, x86 Instructions.
Introduction, Addition and Subtraction, Multiplication, Division, Floating Point, Parallelism and Computer Arithmetic: Associativity, Real Stuff: Floating Point in the x86.
Key Topics
-
Relational Model Concepts
TH-1This topic covers the fundamental concepts of the relational model, including domains, attributes, tuples, and relations, as well as the characteristics of relations.
-
Relational Model Constraints
TH-2This topic explores the different types of constraints in the relational model, including domain constraints, key constraints, and constraints on null values.
-
Relational Database Schemas
TH-3This topic discusses the concept of relational database schemas, including relational database state, entity integrity, referential integrity, and foreign keys.
-
Update Operations and Transactions
TH-4This topic covers update operations, transactions, and how to deal with constraint violations, including insert, delete, and update operations, as well as restrict, cascade, set null, and set default.
-
Basic Relational Algebra Operations
TH-5This topic introduces basic relational algebra operations, including unary operations (select, project, rename) and binary operations (set theory, Cartesian product, join, and outer join).
-
XML Schema
TH-6Defining the structure and constraints of XML documents using XML Schema.
-
Simple and Complex Types
TH-7Understanding simple and complex data types in XML Schema.
-
XSD Attributes
TH-8Using attributes in XML Schema to provide additional information.
-
Default and Fixed Values
TH-9Specifying default and fixed values for elements and attributes in XML Schema.
-
Facets
TH-10Restricting data types using facets in XML Schema.
-
Patterns and Order Indicators
TH-11Using patterns and order indicators (all, choice, sequence) to define element relationships.
-
Occurrence Indicators
TH-12Specifying the occurrence of elements using maxOccurs and minOccurs indicators.
Key Topics
-
Interfaces and Delegates
LA-10Understanding interfaces and delegates in C#, including their syntax, uses, and benefits in creating flexible and reusable code.
-
Planning Online Businesses
LA-1This topic covers the essential steps in planning an online business, including creating a business plan, evaluating cost-benefit and risk elements, funding options, and selecting an e-commerce model.
-
Building a Website
LA-2This topic explores the process of building a website, including basic hierarchical website structure, website hosting, and obtaining a domain name.
-
Web Content Creation and Management
LA-3This topic covers the creation and management of web content, including categories and types of content, content management and maintenance, and catalog content management.
-
Website Design Criteria
LA-4This topic discusses the key design criteria for a website, including site map and navigation, web page layout grid, colors and graphics, and website usability and performance.
-
Website Promotion and SEO
LA-5This topic covers the strategies for promoting a website, including implementation of payment systems, website promotion, and search engine optimization (SEO).
-
Virtual Machines
LA-6The role of virtual machines in memory hierarchies and their impact on system performance.
-
Finite-State Machine Cache Control
LA-7Using finite-state machines to control and optimize cache behavior.
-
Cache Coherence and Parallelism
LA-8The challenges of cache coherence in parallel systems and techniques for ensuring coherence.
-
Implementing Cache Controllers
LA-9Advanced topics in cache controller implementation, including design and optimization techniques.
Key Topics
-
State Management on Stateless HTTP
ST-1Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.
-
Server-side Strategies
ST-2Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.
-
Session State
ST-3Using Session State to store and manage user data in ASP.NET Core applications.
-
TempData
ST-4Using TempData to store and manage temporary data in ASP.NET Core applications.
-
Using HttpContext
ST-5Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.
-
Cache
ST-6Using Cache to store and manage frequently accessed data in ASP.NET Core applications.
-
Client-side Strategies
ST-7Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.
-
Cookies
ST-8Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.
-
Query Strings
ST-9Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.
-
Hidden Fields
ST-10Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.
Introduction, The Difficulty of Creating Parallel Processing Programs, Shared Memory Multiprocessors, Clusters and Other Message-Passing Multiprocessors, Hardware Multithreading, SISD, MIMD, SIMD, SPMD, and Vector, Introduction to Graphics Processing Units, Introduction to Multiprocessor Network Topologies, Multiprocessor Benchmarks, Roofline: A Simple Performance Model, Real Stuff: Benchmarking Four Multicores Using theRoofline Model.
Lab works
Laboratory Works:
The practical work should focus on use of hardware design language and programming. It should also focus on x86 instructions. There should also be practical related to processor, memory, clusters, multithreading, Interfaces, pipelining.