CS561 Syllabus & Progress


CS561 Syllabus & Progress

Progress: material covered are displayed in blue (I will be updating this webpage from time to time)

You can save examples from a webpage from your browser. 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


  1. Introduction to Computer Architecture

  2. How numerical information are stored inside a computer:

  3. CPU Architecture: (you need to know this for multi-threading)

  4. Instructing the computer to do something for you:



  5. Elementary Programming in C/C++


    Project 1: Bisection algorithm in C++ (passing functions as parameter) ----- click here

  6. Software Engineering Topics

    • Managing program complexity:

    • Errors in numerical computational programs:
      • DBX: a tool for locating errors in programs: click here
      • The different kinds of errors in a numerical computational programs: click here

    • Performance enhancement:

  7. Further C/C++ programming

    • Relationships between variables and functions:



  8. Elementary Programming in Fortran


    Project 5: Matrix inversion in Fortran (arrays and functions in Fortran) ----- click here

  9. Further Programming in Fortran



  10. Using Scientific libraries



  11. Parallel Computers

  12. Programming Shared Memory MIMD using posix threads:

  13. Programming Shared Memory MIMD using OpenMP:

  14. Programming Message-Passing MIMD using MPI: