This course is closed. The accuracy of this page's content is not guaranteed. [Return to]

You really should consider upgrading your browser to a more recent version. You'll still be able to view everything on this site, but it'll be an ugly experience.

COMP118: Procedural Programming (F'05)
Course Outline

Instructor: Dave Rogers

Course Website:

Course Description

The goal of COMP 118 is to give the student practical programming skills they can put to use in everyday work with computer systems.

Programming in one form or another permeates work with computers. Automating a word processing task using VBA, creating a dynamic web page using Javascript and DOM, composing a database query using SQL, designing a spreadsheet, creating a Flash-based animation using ActionScript, converting data from one format to another using Perl, and making a web site interactive using CGI scripting are all programming tasks. COMP 118 is an introductory course in computer programming that covers the fundamental principles of structured procedural programming in such practical settings.

While a number of languages in several environments will be examined in COMP 118 the core language used will be Python. Python is an untyped scripting language that encourages object oriented programming. Free high-quality implementations of it are available for all common (and several uncommon!) platforms. In addition there is a wealth of free online resources (including numerous tutorials and some complete texts) on programming in Python.

Through its use to solve practical everyday problems by writing programs the elements of programming--problem analysis, algorithm design and program implementation--will be introduced. The bulk of the course is spent practicing program design as new elements are added to the student's knowledge of Python. Topics covered include simple data types, sequential operations, selection statements, iterative statements, functions, and data aggregations. Where appropriate Python's object oriented facilities will be introduced. Good programming practices are emphasized throughout, including: top-down design, modularization, code re-use, debugging techniques, and creating useful documentation.

Learning Outcomes

A student who successfully fulfills the course requirements will have demonstrated an ability to:

  • analyze common information processing problems to determine whether they can be solved programmatically;
  • create simple Python programs to solve common information processing problems;
  • apply testing techniques to assess the reliability and correctness of their programs;
  • read and make minor modifications to programs in several common scripting languages; and
  • produce clearly written and well-documented code.

Delivery Methods/Format


Monday classes will be lecture-labs, i.e. each session will be held in a lab and consist of both the formal presentation of material by the instructor, and practical hands-on activities by the students. It is designed so that students are able to follow examples during the mini-lectures, undertake additional examples and ask questions during the lab activities, and develop and hone their skills by completing the assignment exercises. Students will be expected to take notes during classes to study from and to use in completing the course assignments.

Wednesday classes will be devoted to hands-on programming practice through various exercises with the instructor present for assistance.

Class time alone will not be enough to learn the material. To develop the necessary programming skill you should plan on spending between one and three hours in preparation, study and practice outside class for every hour of direct instruction, i.e. 4.5 to 13 hours per week.


Grade 12 Academic with acceptable scores in English 12 and Applications or Principles of Math 11 with a grade of 75% or higher;


Mature Student Status with acceptable scores in Algebra 11 (Math 050) with a grade of B+ or greater, and the College Placement Test;

Admission to the course may also be granted at the instructor's discretion.


Attendance and Conduct

Attendance is mandatory. A student may be dismissed from a course if more than ten per cent (10%) of the scheduled contact hours are missed in any one course (Yukon College Academic Regulations, §4.01). Dismissal from a course may result in loss of full-time status and loss of sponsorship funding.

Missing a quiz or examination (either by absence or arriving too late to write) will normally mean forfeiture of the mark. An opportunity to write a missed quiz will be granted only for documented medical illness or similar emergency. Vacation scheduling is not an acceptable excuse for missing or re-scheduling a quiz or examination.

In the interest of minimizing distractions during class, students are asked not to perform the following activities during a scheduled class:

  • Sending or receiving e-mail
  • Surfing the Internet
  • Downloading or transferring files from the Internet
  • Playing computer games

There are instances where your instructor may ask you to do the above during class, in which case these activities would be acceptable. Students will be given a verbal warning the first time they are caught doing the above. The second time, a written warning will be given. A third offence will result in being compelled to leave the class.

Dishonesty and Plagiarism

The assignments are individual assignments and group submissions are not permitted. All submissions should be original work prepared for that specific assignment. To copy another person's work or present it as your own will result in penalties. Note that plagiarism is defined not only as submitting someone else's work as yours, but also includes submitting the same assignment for more than one course without the explicit permission of the instructor. The penalties for plagiarism include receiving a mark of 0 for the assignment, a mark of F for the course, and expulsion from the College.



Approximately six assignments will be given out during the term. The marks associated with each assignment will vary depending on the degree of difficulty. The content of assignments will serve to reinforce the exercises performed during the lab sessions. Assignments are due at the beginning of class on the specified due date. Assignments submitted during or after class on the due date are considered one day late. Late submissions will be penalized 20% per working day, and due dates may not be rescheduled, except in exceptional circumstances and only where prior arrangements have been made with the instructor.


Six quizzes will be held on specific dates throughout the term. The one quiz with the lowest mark will be discarded from the term evaluation. Quizzes are normally held at the beginning of class. Quizzes may not be rescheduled, except in exceptional circumstances and only where prior arrangements have been made with the instructor.

Final Examination

The Final Exam will cover all aspects of the course.


Component Weight
Assignments 50%
Quizzes (best 5 of 6) 25%
Final Examination 25%
Total 100%

Letter grading will follow the College's standard, which can be found in the Letter Grading section of Academic Regulations in the College Calendar.

Recommended Textbooks

There is no required textbook for this course. Regular readings will be assigned from various Internet sites to supplement the lecture material. All course notes, handouts, readings, and links to online resources will be posted on the course website.

However, the following text is recommended:

Python Pocket Reference Python Pocket Reference, Third Edition
by Mark Lutz
O'Reilly Books
ISBN 0-596-00940-2

And for those that plan to enrol in CPSC128 and CPSC129, the following text is highly recommended:

Learning Python Learning Python, Second Edition
by Mark Lutz & David Ascher
O'Reilly Books
ISBN 0-596-00281-5


Other Canadian colleges may accept COMP118 as equivalent to one of their own courses. For more information about transferability contact the Professional Studies Division office.