PROG24310: Programming Languages

Instructor:Alex Babanski, Ph.D.
Office Hours:By Appointment
Via WebEx
Contact E-mail:

Course Description

See the Course Outline for more detailed information.

Students focus on various concepts and principles underlying the design and use of modern programming languages. Students learn about programming languages in the context of procedural, object-oriented, functional and hybrid programming languages. Topics include data and control structuring constructs, facilities for modularity and data abstraction, polymorphism, syntax, and formal semantics. Students learn about these programming language paradigms through lectures, hands-on exercises and assignments.

Topics covered:

  • Principles and Paradigms
  • Syntax, Lexical and Syntactic Analysis
  • Names, Types, and Type Systems
  • Semantics, Semantic Interpretation
  • Functions, and Function implementation
  • Memory Management
  • Imperative Programming Language Principles and Paradigms
  • Object-Oriented Programming Language Principles and Paradigms
  • Functional Programming Language Principles and Paradigms
  • Logic/Declarative Programming Language Principles and Paradigms

SLATE will be used heavily in this course. Check SLATE frequently for any important announcements or changes to the class plan, materials, due dates, etc. Lecture notes/links, assignments, and all the other info will be posted in SLATE as well. Students are responsible for reading and following this information.

Course Evaluation

  • Assignments: 40%
  • Midterm Exam: 30%
  • Final Exam: 30%
  • Please see the Weekly calendar for more information.
  • To pass the course you must achieve a 50% weighted average across the tests and the exams and at least 50% overall in the course.

Students participating in the in-class activities can also receive 0.25% bonus mark, up to 0.5% per week, and up to 5% per course.

Assignments are assignments or homework that you can take away to complete and then submit on a specified due date. Assignments allow you to demonstrate your knowledge of some of the topics covered in the course.

Quizzes/Exercises/Labs refers to in-class lab work, quizzes, or "spot-checks" of assignment work. You must be in class for these, no exceptions. See assignment policies regarding missed in-class assignments.

All assignments/exams/quizzes/exercises are individual efforts and academic integrity policies apply. You may only discuss approaches to problems among yourselves. Unauthorized collaboration will be treated as academic dishonesty under the College's Academic Dishonesty Policy. Assignments/Exercises/Labs/Exams that are judged to be the result of academic dishonesty will, for the student's first offence, be given a mark of zero. Please see the Academic Integrity section for more information.


Programming Languages: Principles and Paradigms, Tucker A., Noonan R., McGraw-Hill, 2nd ed., ISBN 9780071254397, 2008.

Recommended books

  • Programming Language Pragmatics, Scott M., Morgan Kaufmann, 4th ed., 2015
  • Programming Languages: Principles and Practices, Louden K. and Lambert K., Course Technology, 3rd ed., 2012.
  • Essentials of Programming Languages, Friedman D., Wand M., and Haynes C., MIT Press, 3rd ed., 2008
  • Programming Languages: An Active Learning Approach, Lee K., Springer, 1st ed., 2010
  • Principles of Programming Languages, Dowek G., Springer, 1st ed., 2010
  • Learn to Program with C, Kalicharan N., Apress, 2015
  • Advanced topics in C: core concepts in data Structures, Kalicharan N., Apress, 2015
  • The C Programming Language, Kernighan B. and Ritchie D., 2nd ed., 1988.

Required Software

All Software you will need for this course can be downloaded from the Internet. Details will be discussed in-class in a timely manner.

In-class activity: Exams/Quizzes/Labs

  • All in-class activity (exams, quizzes, labs, etc) must be written on the date specified at the time specified. Any student who has previously self-identified as needing special accommodations for exams/quizzes must contact me to make special arrangements one week prior to the in-class activity. Otherwise it is assumed that you are writing your exam/quiz at the normal date/time/location within the standard allotted time.
  • If you are late for an in-class activity, you will not be given extra time or a make-up.
  • If you are going to miss an in-class activity and aware of that ahead of time (e.g. court date), you must notify me one week before the scheduled date of the in-class activity.
  • If you missed an in-class activity due to valid "unforeseen" circumstances, you need to notify me by e-mail within 48 hours. Valid reasons for missing an in-class activity are:
    • Illness, medical emergency.
    • Death in the family, family emergency.
    • Legal proceedings.
  • In cases of extenuating circumstances, where suitable supporting documentation can be provided, you might make special arrangements to take the exam/quiz at the Assessment Centre on a different date/time.

Exam Procedures

  • All electronic devices (cell phones, tablets, etc) must be turned OFF/SILENT and put in the bag/backpack.
  • All belongings (backpacks, bags, books, papers, hats, coats, jackets, etc) must be put under the table/chair or left at the front of the room.
  • No laptops or calculators are permitted unless indicated by the professor.
  • Students will not be allowed to begin an examination after it has been in progress for 30 minutes or more.
  • You are not permitted to leave an exam during the exam period. Please go to the washroom before the exam, as you will not be allowed to leave until you submit a completed exam.
  • No cheating will be tolerated. This includes talking during the exam, using notes/textbook/etc, looking up answers on an electronic device or hard copy resource, taking photos of exam materials, writing exam questions or answers on anything other than the exam paper, etc.
  • Your student photo I.D. is required at exams to verify your identity.

School of Applied Computing Academic Procedures for Evaluations

Please review the full policy: Academic Procedures for Evaluations.

In general, students must submit/complete all assignments, in-class activities and projects by the scheduled due date and write all tests on the specified date/time. Exceptions to this procedure will only be made under extraordinary circumstances. Students requesting an exception must provide supporting documentation or discuss their specific situation with their Professor prior to the scheduled evaluation due date. This includes any on-going accommodations such as long-term medical issues.

Assignments and projects are due at the time, date, and place indicated in the Course Plan as posted in SLATE. A penalty of 10% of the value of the deliverable will be immediately deducted for late submissions. An additional 10% of the value of the deliverable will be deducted for each subsequent day (includes weekends and holidays) to a maximum of 3 days at which point the assignment or project will be assigned a mark of "zero". Professors will normally not return assignments and/or post solutions until after the 3 day period has lapsed. Any change to a due date will be clearly communicated through SLATE in advance.

Exceptions to this procedure will be made under unforeseeable and extraordinary circumstances. Evidence of such circumstances must be provided to the Professor via Sheridan email, in the form of supporting documentation from an appropriate source (e.g. doctor’s medical note, copy of obituary, police report) no later than 24 hours after any missed assignment or project. Students without acceptable documentation or who contact the Professor after the 24 hour deadline will be assigned a mark of “zero” for the assignment or project.

In the event that the Professor deems the circumstances appropriate for a student, he/she may waive the daily late penalty for one or more of the 3 days at their discretion. Such a waiver should be documented in an email using Sheridan email. Regardless of the number of days for which the late penalty has been waived, a mark of "zero" will still normally be assigned after 3 days.

Assignment Submission and Grading Policies

  • Assignment details will be posted in SLATE. Any changes, updates, and clarifications to assignments will also be posted in SLATE.
  • Assignments will involve coding
  • Unless otherwise specified, all assignments must be submitted electronically into Dropbox in SLATE. E-mails with assignments won't be accepted (no exceptions!).
  • Submission requirements will be clearly stated for each assignment.
  • All assignments must be submitted by the day and time specified.
  • Unless you have a valid reason, a mark of "zero" will still normally be assigned after 3 days. You need to notify me ahead of time if you are going to miss the deadline for any assignment!
  • A request for adjustment in an assignment mark must be made within 2 weeks of the date on which the grade was released. Any requests for mark adjustments after those 2 weeks will not be granted and the mark will be considered final. Any requests for mark adjustments must be submitted via email or during Office Hours and must include specific reasons why you believe you deserve more marks. Even if you request a remark because you disagree with one portion of the mark, your ENTIRE assignment will be remarked again and you may end up with a lower mark that you were given initially (if more problems are found). If this occurs, the new lower mark will be final and you will have no recourse to go back to the original mark.
  • A small portion of the mark may be subjective, for example: names of classes, complexity of the code, unnecessary variables, etc. This part of the mark will not be adjusted after the mark is given.
  • It is your responsibility to keep up-to-date backups of assignment disk files in case of system crashes or inadvertently erased files. Keep disk copies of all material handed in, as well as the actual graded assignment, to guard against the possibility of lost assignments or errors in recording marks.
  • The marks for all assignments will be posted in SLATE. It is your responsibility to ensure that the marks posted are correct.

Please see In-class activity: Exams/Quizzes/Labs for more information.

Equal Opportunity and Evaluation Policy

The college is committed to academic integrity and has high ethical and moral standards. All students will be treated equally and evaluated using the criteria presented in this course outline and their respective weights. The evaluation criteria are based strictly on actual achievement, not on effort or how hard the student tried.

Claims of an excellent academic history, of attendance in the course components, or of personal issues (family, relationship, financial, etc.) cannot be used to justify a higher grade in the course because they are not criteria for evaluation. There is no extra work available for extra credit or to "make up" another grade. The program does not offer any extra assignments, essays, experiments, or other work of any kind to any student.

The requirement for a higher grade in order to, for example, maintain a scholarship, enter a program, or obtain a higher GPA for various reasons, is not a justifiable reason for increasing your grade. If we increased or "bumped" your grade (i.e. gave you a grade that you did not legitimately earn), it would be unfair to the other students and also a great disservice to the scholarships and programs who are evaluating all students on the basis of their grades.

In case student can't write midterm or final exam for a legitimate reason, the decision of how to re‐weight/assess the missed marks is solely at the discretion of the course instructor. For example, the marks from the missed midterm may be added to the next midterm or final exam, another examination or assignment may be arranged, or other means to replace the missed examination may be found.

It is the College policy that students who choose to write a test or exam deem themselves fit enough to do so, and must accept the mark obtained. Claims of medical, physical, or emotional distress after the fact will not be considered. There is no opportunity for a re-weight of the other course components after the test or exam has been written. The reason of "I did not want to write a heavily weighted test" is not a valid reason for writing the test while ill.

The final grade is rounded up as follows: 79.01 - 79.44 is rounded to 79 and 79.45-79.99 is rounder to 80.
The final grade won't be "bumped up", i.e. 79 (B+) won't be bumped to 80 (A).

Sheridan Acceptable Use Policy

Sheridan's Acceptable Use Policy governs the use of computer networks, all computers and other devices connected to those networks, and the resources made available thereby at Sheridan. It applies to all employees, students, alumni and any other users of the information resources at Sheridan.

Use of Laptops

Laptops will be needed for most classes, whether you're writing programs trying in-class activities, or checking notes and documents that are part of the course material. However, it is often tempting to use the laptop for things that have nothing to do with the course, such as social media, watching videos or playing games.

Acceptable Use of Laptop in Class:

  • Typing up notes from the professor's lecture.
  • Working on programming problems demonstrated or assigned by the professor during class.
  • Researching topics being discussed in the current class.

Unacceptable Use of Laptop (or other devices) in Class:

  • Social networking/media (e.g. Facebook, Twitter, Flickr, Pinterest).
  • Chatting with friends/family.
  • Reading news/sports/entertainment/etc. that is not related to the current class.
  • Playing games.
  • Watching videos, listening to music.
  • Texting friends/family/classmates/etc.
  • Anything else not pertaining to the course.


  • Attendance is not mandatory, but is highly recommended. The only way to get comfortable with problem solving and programming is to practice! You will be given plenty of opportunities to practice in class.
  • There can be in-class assignments or quizzes that must be done in class and count towards your final grade. The dates are posted in the SLATE calendar and are also scheduled in the Weekly calendar, but these dates are subject to change. In-class assignment dates will always be finalized the week before.
  • If you do miss a class, it is your responsibility to catch up any missed material. All of this material is available online. Please do NOT email me and ask "Did I miss anything?" Please check the online material and see what you have missed, read the material, do the exercises, then email me if you have any questions about the material/exercises.
  • Although no direct marks are assigned for attendance, it may be used as criteria for border-line cases to determine your interest in the course and the effort you made to succeed in the course.

Reading lecture notes is not a substitute for attending lectures.


  • Please be polite and consider others.
  • If you distract or disturb others, you may be asked to leave the room. If you refuse, you will be escorted out by security.
  • No side conversations during lecture/theory portions of the class.
  • If there is something you want to discuss about the content/material currently on topic, let me know and let’s discuss it as a group! I encourage on-topic class discussions and questions.
  • There will be plenty of lab times during class where you can discuss material with your classmates.

If you arrive late to class:

  • Please take your seat quietly.
  • Wait until a break or lab time to turn on your computer.
  • It is your responsibility to catch up on any missed material.

E-mails / Questions via E-mail

You are encouraged to contact me via SLATE email, with brief, appropriate questions regarding lecture material or clarification of assignments. However, please check the course website for answers to frequently asked questions, or to see if the information is already there, before emailing me.

Your e-mails will be ignored if you don't follow these simple rules:

  • You must send emails only from your SLATE e-mail (i.e., your email address
  • E-mail subject must include the course/section number.
  • Your e-mail must include your first name, your last name and your student ID.

All emails will be answered in 72 hours. Please send emails only in the plain-text format.

Academic Honesty

Scholastic offences are taken seriously. You are responsible for reading and respecting the Sheridan's Student Code of Conduct and Academic Integrity policy. Unless otherwise specified, all assigned work is to be done individually. Specifically, this means that the following activities are classified as "cheating" and can result in a penalty:

  • Copying work (in whole or in part) from another person, even if that person is not in your class.
  • Submitting work (in whole or in part) that is not your own (work that you found online, work that was completed by someone else, any portion of work that you did not do yourself.
  • Allowing another student to copy your work (in whole or in part) or giving your work to another student with the purpose of allowing them to submit any part of that work as their own.

See the Sheridan's official Academic Honesty Policy for more detailed information about what is allowed and what is not allowed. Consult this document if you are ever unsure, or ask me! It is better to be sure than to be penalized for cheating!

Penalties for Academic Dishonesty

Note that, according to Sheridan's official Academic Honesty Policy, there are a 5 different "sanctions", or penalties for academic dishonesty, ranging from a grade of 0 on the evaluation item in question to expulsion from the college. In general, first-time offenses are the lesser penalties and multiple offenses result in the more severe penalties. The following are typical for a first-time offense:

  • Cheating on an assignment/exercise/project/test/exam/quiz/etc results in a 0 grade for the assigned work and a permanent note on your college record.
  • If another student was involved (e.g. you copied some/all of their work or you allowed another student to copy some/all of your work), the other student(s) also receive a 0 grade for the assigned work and a permanent note on their college record.

ALS Accommodations

Sheridan offers many services and accommodations for students with disabilities, including Learning Strategies Training and Assistive Technology. Students who are eligible to receive accommodations should meet with Accessible Learning Services (ALS) staff to determine the most appropriate accommodations and services available to meet individual needs.

Students with documented accommodations from Accessible Learning Services must self-identify in the first week of classes (please schedule a meeting with me to discuss your accommodation). Please also bring or e-mail me a copy of your accommodation form. We will go over your situation together and discuss the course policies that apply to you and your accommodations.

Students with an accommodation must request an extension on each assignment by email. The request must be made after assignment is posted and announced on SLATE and at least 48 hour in advance of the due date. The request must include a plan to complete the work and the anticipated submission date (within a few days to one week of the original due date).

For Quizzes/Tests/Exams ("Exams") students with an accommodation must provide Exam Request Form (ERF) via email for each exam. The request must be sent after the Exam is set and announced on SLATE. The ERF must have student name, ID, accommodation information and clearly state when/how the student wants to take the exam. In case you don't want to do the exam at the Assessment center, you must still send an email with accommodation information for each exam that requires extra time.

Students who do not self-identify and do not request an accommodation for each Exam or Assignment do not receive accommodations.

For further information please visit Accessible Learning Services.


This syllabus is subject to change based on the needs of the class. Any changes will be announced in class.

Thursday December 2nd, 2021.
© Alex Babanski