Teaching

Teaching

EEE2007: Computer Systems and Microprocessors (Stage 2)

This is an *important* part of the module in that it will go through the fundamental aspects of computing systems design, including both hardware and software. The teaching contents are carefully organised to strike a good balance between theoretical and practical aspects. The theoretical aspects are based on system-level topics, such as CPU, Memories, Interconnects, IOs and Interrupts, while practical aspects will delve mostly on the software and programming aspects (C/C++). Students are highly encouraged to research further for acquiring greater knowledge.

 

To enable a great learning experience -- please

  1. ATTEND EACH AND EVERY LECTURE AND LAB SESSION
  2. GO THROUGH THE SLIDES BEFORE THE LECTURE (FLIPPED CLASSROOM) FOR BETTER UNDERSTANDING DURING LECTURE
  3. DO NOT PLAGIARISE ASSIGNMENT REPORTS, EVEN IF YOU CANNOT COMPLETE THE REPORT/TASK

 

Introduction to EEE2007 [RS part]

Download notes: Notes 

 

Computer Programming: C++


Where do I run my C/C++ codes: Tutorials-Point | cppShell


Session 1 (Introduction to C++)

Introduction to C++, data types, programming constructs, introduction to pointers 

Download notes:  Session-1-notes | Example programs: Hello-World.cpp | Count.cpp | data_types.cpp | pointer_example.cpp

Using/Installing GCC in: Linux | Windows | Mac | Computing-Lab

Session 1 exercises: Session-1-exercises | Session-1-Sample-Solutions

 

Session 2 (Functions and Modular Programming)

Introduction to functions, ways of writing and calling  functions, modular programming

Download notes:  Session-2-notes | Example solutions: Working with pointers and arrays   |   Recursive function excample

Session 2 exercises: Session-2-exercises | Session-2-Sample-Solutions


Session 3 (Dynamic Memory Management, Structures and  Object-Oriented Programming)

Introduction to Dynamic Memory Management, C++ Structures, Classses and Objects

Download notes:  Session-3-notes | Example solutions: tbc

Session 3 exercises: Session-3-exercises | Session-3-Sample-Solutions

 

** Lab Notes and Examples **

Lab-1: Lab-1 notes | check_prime.cppmatrix_mult.cppexample3.cpp | gprof_example.cpp

Lab-2: Lab-2 notes | pointer_example.cpp | arrayreference.cppdynamic_array.cpppointer_example2.cpp | arrayreference.cpp | dynamic_array.cpp | file_operations.cpp

Lab-3: Test

Lab-4: Lab-4 notes | Lab4ex1.cpp | Lab4ex2.cpparrayreference.cpp

Lab-5: Lab-5 notes | Lab5ex1.cpp 
Lab-6: Lab-6 notes | example1 | example2

Lab-7: Lab-7 example1example2

Lab-8: Test

Lab-9: notes


C/C++ Project (due by 10 Jan 2020): Project description | codes


Computer Systems:

Background Review

A brief overview of  this sub-module

Download notes: Notes 

 

Introduction to Computer and Memory Systems

Review of basics and fundamentals; overview of memory systems hierarchy, registers, cache memories (SRAMs), main memories (DRAMs) and Other memory systems -

Download notes: Notes | More on flash memories: PDF | The missing element paper: PDF | Paper on new flash memories: PDF 

 

Introduction to Computer Interconnects

Types of interconnects, access, protocol and management of interconnects with examples

Download notes: Notes  


In-Class Tutorial #1: Notes


Processors and Data Flow

Types of processors, pipelined systems, and processor components

Download notes: Notes  | Processor Execution Flow: Simple Demonstration


In-Class Tutorial #2: Notes


Example Questions and Answers

Download notes [NEW]: EXAM PREP NOTESEXAMPLE QUESTIONS AND ANSWERS

  

The following are not included this year:


Parallel Computing Systems

Types of parallel processors and their programming models

Download notes: PDF  |  PDF-COLOURED   

 PDF-COLOURED   

 

System software and Operating Systems (with Live Demo)

Systems software and their main function in modern computing systems.

Download notes: PDF | PDF-COLOURED



Copyright 2018 - RA Shafik