CS355 Syllabus & Progress

CS355 Syllabus & Progress


Material covered are displayed in blue.

You can run the circuit examples by first saving the file in your own directory and then use logic-sim to run the circuit. To save an example from a webpage, do the following in Netscape:

     Click File -> Save As
     Complete the file name in the "Selection" box
       (Make sure you specify the right directory name and file name !)
     Click OK when the file name is right


The entire cs355 syllabus in a zip file: click here



    Search the syllabus:

  1. Logic elements and Boolean Algebra
  2. Switching Circuits... how the CPU transports values from one place to another...
    • Comment: you may have heard that a computer is one big switch... you will soon find out why.....

    • Many-to-one digital switching circuit - multiplexor: click here
    • Defining your own components in EDiSim: click here
    • Example use of a (many-to-one) multiplexor: switching registers to ALU - click here

    • One-to-many digital switching circuit - decoder/demultiplexor: click here
    • Example use of a decoder: select a register for writing: click here

    • Register → ALU → Register transfer: click here


    • Little detour, the real one-to-many switching circuit: click here

  3. Arithmetic (and Logic) Circuits.... see what the ALU look like
  4. Sequential Circuits
  5. Finite State Machines
    • Constructing FSA with digital circuitry: click here
    • Side note:
      • A computer is a FSA, with a huge number of states
      • The number of states is equal to 2N where N is the number of bits of memory in the main memory and other storage (disks, tapes, CD-roms, etc)


  6. Bi-directional Transfer
  7. Memory Organization
  8. CPU Micro Architecture


  9. Micro-programming:

  10. The system bus:

  11. IO Communication


    You should now know how the entire computer works. The only things left to discuss are the bells and whistles that make the computer runs faster (and safer)...
  12. Pipeline design
  13. Cache memory:




  14. Parallel Computers

  15. SIMD - Single Instruction (stream) and Multiple Data (stream) computers:


  16. GPU-programming using the CUDA programming language:



  17. MIMD (general multi-processors) computers

  18. Programming Shared Memory MIMD using Posix threads:

  19. Programming Shared Memory MIMD using the OpenMP API:


  20. Message-Passing MIMD computers:



The END...