0% found this document useful (0 votes)
6 views2 pages

Foundations of Compupting Systems

Uploaded by

kdurgakalyani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views2 pages

Foundations of Compupting Systems

Uploaded by

kdurgakalyani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

Course Content:

Foundations of computing systems

Boolean logic and its implementation - binary digits (bits), transistors and
switching circuits, basic gates and boolean operations using gates, composability
of gates
and building blocks of digital circuits such as multi-bit gates, and
multiplexers/demultiplexers. (3 lectures)

Combinational circuits - Binary number system, signed numbers (two’s complement),


adder and multiplier circuits (3 lectures)

Sequential circuits - latches and flip-flops, registers, SRAM and DRAM cells and
their characteristics, memory hierarchy (3 lectures)

Instruction Set Architecture - program counter, register set, basic operations -


arithmetic, branch, and I/O operations, instruction encodings (machine
instructions) (3 lectures)

CPU design - instruction and data memory, operations within a CPU such as fetch,
decode, execute, and writeback (6 lectures)

Assembler - Instruction mnemonics, instruction sequences, symbols, working of an


assembler - symbol table and two-pass assembler (6 lectures)

Stack machines - PUSH and POP instructions, procedures and subroutines, execution
stack and argument passing (6 lectures)

Compilation - Lexing and parsing, Abstract syntax tree, syntax-directed


translation, illustration of these concepts through an expression to postfix
conversion (6 lectures)

Operating systems - Program loading and execution, program isolation (processes,


virtual memory and threads) (6 lectures)

SYSTEMS PROGRAMMING:
Linux Fundamentals - linux file system, absolute and relative file paths, pseudo
files, Linux terminal, navigation and simple commands, version control (1 lecture +
3 hours lab)

Basic structure of a computer: processor, memory, secondary storage and I/O


peripherals; mapping of programming constructs to hardware elements - variables and
its
addresses, data types and its representation, ranges and overflow (1 lecture + 3
hours lab)

C/C++ programming: Arrays, Array indexing, memory view of (multi-dimensional)


arrays, functions, pointers, dereferencing and address operators, pass-by-value and
pass-by-reference
mechanisms in function calls, pointer arithmetic, array manipulation using
pointers, user-defined/abstract data types, file operations (5 lectures + 9 hours
lab)

Debugger, Coding across multiple files, Coding conventions, Stages of compilation


(preprocessor, compiler, assembler, linker, loader), Static and Dynamic libraries
(2 lectures + 6 hours lab)

Makefile, make variables, pattern substitutions and wildcards, Organizing code into
multiple folders, order-only prerequisites of Makefiles (2 lectures + 6 hours lab)
Shell scripting, I/O redirection, UNIX pipe ( | ) and command pipelines (2 lectures
+ 6 hours lab)

Multi-threaded programs (using libraries), multi-process programs and inter-process


communication (including sockets) (1 lecture + 3 hours lab)

You might also like