Ashoka University’s undergraduate course curriculum is taught across three semesters: Spring, Summer and Monsoon (Fall). Courses are broadly divided into three categories – Foundation Courses (core curriculum), Major & Minor Courses and Co-Curricular Courses.
You may search courses offered at Ashoka here. Please use the drop down menu to choose the specific semester and subject to see the full list of courses under each department. Foundation courses are offered in all semesters and do not have prerequisites. Offerings in other categories differ in each semester. Some higher level major/minor courses may have prerequisites.
To view Summer Semester Courses-2024: Click here
Computer Organization and Systems (CS-2710), Spring 2025
Understanding the principles of computer organization and systems lies at the foundation of computer design. The aim of this course is two-fold: to introduce (i) the basics of computer organization and architecture (COA), and (ii) the fundamentals of operating systems (OS). In the COA-part, students will learn how programs written in a high-level programming language are executed on a physical machine. What is the hardware-software interface? Does the underlying “organization” of physical resources define the “architecture” of a machine, or vice-versa? Which factors need to be considered for designing the Instruction Set Architecture (ISA) so that the performance of the machine is optimized? We will highlight techniques for designing instruction set, and pipelining mechanism for the best utilization of hardware. Special emphasis will be given on RISC (Reduced Instruction Set Computer). In the latter part, students will learn how OS acts as an intermediary between computer hardware and the user for running applications. How the computer's resources, such as the CPU, memory, storage, and input/output devices are managed to ensure that everything runs smoothly and efficiently. How multiple processes run on the same CPU without conflict?
During the course we will walk through a selection from the following topics:
Introduction: Evolution of computers, hierarchical design of computer systems, hardware/software interface. Models of computation, overall system organization: Basic functional blocks of a computer - CPU, memory, I/O subsystems, control unit. Instruction set architecture (ISA): registers, execution cycle, addressing modes. CPU Performance Equation, Amdahl’s Law. RISC versus CISC machines.
Instruction sets: Introduction to MIPS: operations, operands, and op-codes; MIPS assembly language.
Computer arithmetic: Number systems – Fixed and floating-point binary number representation; Integer addition and subtraction, design of arithmetic logic unit (ALU):
Processor design and Pipelining: Data path and control unit design, simple pipeline, hazards.
Operating systems: Elementary concepts of an OS, process management, inter-process communication, threads and concurrency, CPU scheduling, the critical-section problem, semaphores.
Memory management: Memory hierarchy; Cache architecture; Main memory; Virtual memory.
Multi-Core and Multi-Processing (if time permits): Vector processing; Multithreading, Shared-memory multiprocessors; Graphics processing units; Clusters and cloud.