CMPT 370 DS Fall 2009 Syllabus (Directed Study)


Dr. Sean Ho
(604) 513-2121 x3209


This course is designed to provide already experienced students with some of the advanced tools that they need to take their places as competent professional programmers. In this offering of CMPT 370, the topics we will be exploring include graphical user interfaces, parallel programming, and 3D graphics.


By the end of the course students should be able to
  • understand the concepts of event-driven programming for GUIs and demonstrate this understanding by programming in FLTK,
  • understand the concepts of parallel programming and demonstrate this understanding by programming in OpenMP, and
  • understand the concepts of 3D computer graphics and demonstrate this understanding by programming in OpenGL.


The first-year CMPT sequence (145/141/143 and 160+165/167), plus either CMPT 231 or CMPT 285, or second-year transfer status from another school with the instructor's permission.

Required Text

There is no required text. All our readings will be online. Recommended references:
  • "Parallel Programming in C with MPI and OpenMP", Quinn, McGraw-Hill, 2004.
  • "Computer Graphics: Principles and Practice", Foley, van Dam et al., Addison Wesley.
  • "Interactive Computer Graphics: A Top-Down Approach with OpenGL", 4th edition, Edward Angel, Addison Wesley.
  • "OpenGL Programming Guide", 5th Edition, Shreiner et al., Addison Wesley. (the "redbook")


This semester we will cover three major topics; the approximate number of weeks spent on each topic is shown in parentheses:
  • Graphical User Interfaces and Event Programming (2)
  • Parallel Programming (2)
  • Computer Graphics (6)


As this course is programming-heavy, there is a strong emphasis on the programming labs, in which the student will design and implement a significant software program for each assignment. Proficiency in C++ is expected. The tentative topics for each programming lab are as follows:
  • Lab 0: FLTK orientation tutorial
  • Lab 1: FLTK application, GUI design
  • Lab 2: OpenMP parallel program on Carmel
  • Lab 3: Animated 3D model in OpenGL
  • Lab 4: Texture maps and trackball rotation
  • Lab 5: Vertex and fragment shaders in GLSL


Letter grade assignment follows the TWU percentage to grade equivalents except that >=85% and <95% is an A; 95% and above is an A+.
Labs (5) 50% About every other week
Midterm 1 10% Mon 5 Oct (tentative)
Midterm 2 10% Mon 16 Nov (tentative)
Final Exam 30% TBA during finals week


  1. Since this is a directed study, regular face-to-face meetings will only be needed approximately once every two weeks. The student is expected to be in regular email contact at least once a week to update on progress. The lecture material will be posted online, and the student is expected to learn independently through the lecture notes, the additional reading resources, the programming assignments, and email/office hours as needed. The student will schedule with the instructor appointments to take the two midterms and the final exam.
  2. All labs must be completed -- if you do not turn in something for each lab, you will automatically fail the course.
  3. The good news is the late policy is fairly lenient: penalty of 5% per calendar day, up to a week late. More than a week late is 50% penalty. More than two weeks late and it will not be accepted unless there are extenuating circumstances. We will use the timestamp on myCourses. It is your responsibility to make sure all parts of your lab are uploaded to the right place in myCourses by the deadline.
  4. During exams, all of the following are not permitted and should be left in your closed/zipped bag and put on the floor:
    • Textbooks, notes, cell phones (turn off), laptops, PDAs, electronic dictionaries, calculators.
    Scratch paper will be provided. Your desk should be clear except for your pencil/pen.
  5. Academic integrity is a core value of the entire TWU community. This includes, but is not limited to, avoiding all forms of plagiarism and cheating. Plagiarism is using someone else's work without attribution. In this course, if you do it once you will get a zero, if you do it again you will automatically fail the course. Any such cases also go into the University's files for future reference; TWU has a strict policy concerning plagiarism. A tutorial describing plagiarism and how to avoid it has been prepared by TWU Librarian William Badke: (PPT file), (14 min flash), (8 min flash)