CSCI 330: Programming Languages, Spring 2021

Course Outline

CSCI 330 (3) Programming Languages
The fundamental concepts of imperative and applicative programming languages. Topics include the description of data types, variable assignment and sharing, sequencing, iteration and recursion, parameter passing mechanisms, and type checking. (3:0:1)

Pre-requisite: Min. "C" in each of CSCI 162, CSCI 260, CSCI 261 and CSCI 265

Course motivation and overview

This course is meant to give students a broader understanding of the nature of existing programming languages, and the benefits and drawbacks associated with features and implementations of these programming languages.

We will consider the fundamental concepts of programming languages - looking at potential language constructs, and the design decisions and implications associated with each.

The course will be a mix of theory and practical application - the former to be achieved through the lectures and readings, the latter through a series of labs/tutorials and detailed technical problems to be solved in a variety of programming languages.


Contact information


  • Textbook: none (see the note below on web material)

  • Web material: online material on the course site may include online books and language reference material, supplementary lecture notes, assignments, sample programs, practice problems, etc, accessible through



    The planned topic set for the course is shown below. The order will vary considerably, and some changes in topics may take place during the semester.

    Programming languages, labs, and assignments
    While we will discuss theoretical aspects of a range of languages, the applied portions of the course will focus heavily on gnu common lisp, C, and C++. Students will be expected to program heavily in each of these languages, applying and evaluating advanced features of each.

    The lab assessment will consist of a collection of programming exercises, some to be completed and submitted during the weekly lab sessions, some to be completed as take-home exercises. Labs start in week 1.

    VIU's Disability Access Services provides services to students with Learning Disabilities, mental health disabilities, Attention Deficit Hyperactivity Disorder, Autism, chronic medical conditions, and impairments in mobility, hearing, and vision.

    If you have a disability requiring academic accommodations in this course but are not yet registered with Disability Access Services, please contact them at or visit them in BLDG 200 (2nd floor). If you are already registered with DAS, please provide me with your accommodation letter, either in person during my office hours, or by email.

    Appeals of Grades:

    Any exercise or examination grade may be appealed. However, the appeal must be made to the instructor, in writing and attached to the work in question, and within 7 days of the grade being made available to the class. The instructor reserves the right to re-grade the entire piece of work submitted on appeal, not necessarily just the component that the student believes is in error.

    Grade Conversion:

    The standard VIU grading scale will be in use.

    90-100 85-<90 80-<85 76-<80 72-<76 68-<72 64-<68 60-<64 55-<60 50-<55 < 50
    A+ A A- B+ B B- C+ C C- D F

    Lab and Computer Usage Rules:


    Student Academic Code of Conduct (VIU policy 96.01)
    All VIU students are required to familiarize themselves with, and adhere to, the Student Academic Code of Conduct.