Introduction to Algorithms and Programming

Learning outcomes

  1. Ability to apply fundamental knowledge of the software development life cycle and tools to build C software programs and Matlab programs.
  2. Ability to describe, analyze and evaluate system requirements, software designs and quality metrics.
  3. Use creative problem solving to develop software programs which reflect considerations for usability and hardware portability.
  4. Ability to apply boolean algebra, iterative algorithms and recursive algorithms for software programs.
  5. Ability to find and use information provided with software development tools and libraries.


  1. Coursework 1 was due January 10, 2018 and contributed 30% to the unit mark
  2. Coursework 2 was due April 24, 2018 and contributed 40% to the unit mark
  3. 60 minutes end of unit examination that contributed 30% to the unit mark
    • There was a practice exam on March 20, 2018

Lecture topics and notes

Suggested study resources

C programming notes by Steve Summit

More notes by Steve Summit about intermediate C programming topics

C programming notes by Mark Burgess

Complete reference of the standard C libraries

Brief reference of C language syntax and standard libraries

Alphabetical index of functions in the standard C libraries

Drawing functions in GD graphics library

Text functions in GD graphics library

List of colors to use with GD graphics library functions

Complete reference of GD graphics library functions

Recommended textbook
Hanly, J., Koffman, E. (2012). Problem solving and program design in c. Boston, MA, USA: Pearson Education, Inc. (ISBN 0273774190)


Please contact Chi Nguyen with questions or suggestions.