Attachments
  
  
Description
  
  
Lexical analysis, regular expressions, deterministic and non-deterministic finite automa, context-free grammers, top-down parsing, syntax trees, scopes and symbol tables, type checking, intermedite-representation generation, machine-code generation, register allocation, code scheduling, data-flow analysis, Scalar Optimization, Peephole optimizations, dependence analysis.
Fifth year
  
Shared-memory and Distributed-memory parallel architectures. Cache Coherence protocols. Interconnection Networks and Topologies. Parallel Programming. Problem Decomposition Techniques. Synchronization Methods (Barriers, Critical Sections, Locks, Atomic operations). OpenMPI Programming. MPI Programming. Performance Measurement and Analysis of Parallel Programs. Numerical and Non-Numerical Algorithms.
Fifth year
  
Pipelining: Data and Control Hazards, Exceptions and Interrupts, Instruction Level Parallelism (ILP): Software and Hardware approaches for speculative execution, Case Studies of Modern Processors. Memory Hierarchy: Cache Design and Evaluation, Virtual Memory, Advanced Cache Technology, Input/Output Devices and Interface, Multiprocessors and Vector Processing, Shared and Distributed Memory Architectures. Graphics Processing.
Fourth year
  
Using CAD tools, the student designs and simulates the main parts of a computer: the ALU, registers, control unit, cache memory, system bus, memory, and I/O devices. Integration and simulation of computer design.
Fourth year
  
Number Systems and digital waveforms. Basic gates and logic functions. Boolean algebra, Boolean expressions. Logic minimization techniques. VHDL basics. Design, simulation and synthesis tools for programmable logic devices. Combinational logic building blocks including decoders, encoders, multiplexers, demultiplexers, magnitude comparators. VHDL for combinational circuits. Digital arithmetic, adders, subtractors. VHDL for arithmetic circuits. Basics of sequential circuits. Basic latches and flip-flops. Timing parameters and diagrams. Counters, shift registers. Basic PLDs, CPLDs and FPGAs architectures. VHDL for binary counters and shift registers. State machines. System design with state machines using VHDL. Memory devices and systems including RAM, ROM, FIFO, LIFO and dynamic RAM.
Second year
  
Experiments on basic TTL and CMOS logic gates, including simulations to explore functionality and timing parameters. Experiments using both simulation and practical hardware implementation on CPLDs or FPGAs, using VHDL for combinational and sequential circuits including multiplexers, demultiplexers, decoders, encoders, shift registers, counters, latches and memory. Experiments in logic design using state machines.
Second year
  
Elementary programming, primitive data types, assignments and expressions, control flow statements, loops, functions, arrays, pointers, strings, libraries, objects, classes, and problem-solving.
First year