PROG24310
Programming Languages
Sheridan College Logo
 
  I: Administrative Information   II: Course Details   III: Topical Outline(s)  Printable Version
 
Section I: Administrative Information
  Total hours: 42.0
Credit Value: 3.0
Credit Value Notes: N/A
Effective: Fall 2018
Prerequisites: PROG10065
Corequisites: N/A
Equivalents: N/A

Pre/Co/Equiv Notes: N/A

Program(s): Hon Bach CompSci - Mobile Comp
Program Coordinator(s): Magdin Stoica
Course Leader or Contact: Edward Sykes
Version:
20180904_00
Status: Approved (APPR)

Section I Notes: N/A

 
 
Section II: Course Details

Detailed Description
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

Program Context

 
Hon Bach CompSci - Mobile Comp Program Coordinator(s): Magdin Stoica
This required second year course provides a comprehensive foundation to the principles and paradigms of modern programming languages. This course builds on the students skills and knowledge developed in the mathematics and software development courses. The course provides a foundation of programming language principles and paradigms (i.e., procedural, object-oriented, functional and hybrid programming languages). This course is fundamental to future application development courses in computer science.


Course Critical Performance and Learning Outcomes

  Critical Performance:
By the end of this course, students will have demonstrated the ability to evaluate the principles and paradigms of modern programming languages in terms of syntax, semantics, compile-time vs. runtime behaviour, facilities for modularity and data abstraction, and type system, inheritance, and polymorphism characteristics.
 
Learning Outcomes:

To achieve the critical performance, students will have demonstrated the ability to:

  1. Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system of functional programming languages.
  2. Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system of imperative programming languages.
  3. Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system, inheritance, and polymorphism of object-oriented programming languages.
  4. Analyze the principles of imperative programming languages using the C programming language.
  5. Design and implement object-oriented programs in C++
  6. Explore functional programming paradigms in a modern functional programming language (e.g., F#, Haskell, Swift).
  7. Apply knowledge of principles and paradigms of programming languages to implement solutions to problems in an appropriate programming language.
  8. Assess memory management paradigms associated with different program languages.
  9. Describe the design of programming languages in terms of syntax, semantics, compile-time vs. runtime behaviour, facilities for modularity and data abstraction, type system, inheritance, and polymorphism.

Evaluation Plan
Students demonstrate their learning in the following ways:

 Evaluation Plan: IN-CLASS
 Assignments (4@10%) approx. weeks 3,6,9,1240.0%
 Midterm Exam approx. week 730.0%
 Final Exam approx. week 1330.0%
Total100.0%

Evaluation Notes and Academic Missed Work Procedure:
To pass the course, students must achieve a 50% weighted average across the tests and the exams and at least 50% overall in the course.

Provincial Context
The course meets the following Ministry of Advanced Education and Skills Development requirements:

 

Prior Learning Assessment and Recognition
PLAR Contact (if course is PLAR-eligible) - Office of the Registrar

Students may apply to receive credit by demonstrating achievement of the course learning outcomes through previous relevant work/life experience, service, self-study and training on the job. This course is eligible for challenge through the following method(s):

  • Challenge Exam
    Notes:
  • Portfolio
    Notes:
  • Other
    Notes:Challenge exam, portfolio, and project are required for PLA.

 
 
Section III: Topical Outline
Some details of this outline may change as a result of circumstances such as weather cancellations, College and student activities, and class timetabling.
Instruction Mode: In-Class
Professor: Multiple Professors
Resource(s):
 TypeDescription
RequiredTextbookProgramming Languages: Principles and Paradigms, Tucker, A., Noonan, R., McGraw-Hill, 2nd ed., ISBN 9780071254397, 2008, or equivalent Course Pack available through McGraw-Hill.
OptionalTextbookEssentials of Programming Languages, Friedman, D. P., Wand, M., & Haynes, C.T., MIT Press, 3rd ed., ISBN 9780262062794, 2008
OptionalOtherA selection of other recommended reading including on-line resources and articles will be announced by the professor.

Applicable student group(s): Honours Bachelor of Applied Computer Science - Mobile Computing
Course Details:

    1.     Principles and Paradigms

  • Principles
  • Paradigms
  • Language design
  • Compilers and Virtual Machines 
  1. Syntax, Lexical and Syntactic Analysis
  • Grammars
  • Compilers and Interpreters
  • Lexical Analysis
  • Syntactic Analysis 
  1. Names, Types, and Type Systems
  • Variables, symbol tables
  • Static and dynamic typing
  • Recursive data types
  • Functions as types 
  1. Semantics, Semantic Interpretation
  • Expression semantics
  • Program state
  • Assignment, control flow, input/output and exception semantics 
  1. Functions, and Function implementation
  • Basic Terminology
  • Parameter Passing Mechanism
  • Function Declaration and Call
  • Semantics of Function Call and Return 
  1. Memory Management
  • The Heap
  • Garbage Collection Mechanisms
  • Memory management with C and C++ 
  1. Imperative Programming Language Principles and Paradigms
  • Overview of the characteristics of imperative languages
  • Procedural abstraction
  • Expressions and assignment
  • Programming in C 
  1. Object-Oriented Programming Language Principles and Paradigms
  • Overview of properties of object-oriented languages
  • The Object Model (Classes, encapsulation, inheritance, polymorphism, templates, abstract classes, interfaces) and its use in C++
  • Programming in C++ 
  1. Functional Programming Language Principles and Paradigms
  • Overview of the characteristics of functional languages
  • Expressions, Lists, Elementary Types and Values, Control flow, Defining and using functions


Sheridan Policies

All Sheridan policies can be viewed on the Sheridan policy website.

Academic Integrity: The principle of academic integrity requires that all work submitted for evaluation and course credit be the original, unassisted work of the student. Cheating or plagiarism including borrowing, copying, purchasing or collaborating on work, except for group projects arranged and approved by the professor, or otherwise submitting work that is not the student's own, violates this principle and will not be tolerated. Students who have any questions regarding whether or not specific circumstances involve a breach of academic integrity are advised to review the Academic Integrity Policy and procedure and/or discuss them with the professor.

Copyright: A majority of the course lectures and materials provided in class and posted in SLATE are protected by copyright. Use of these materials must comply with the Acceptable Use Policy, Use of Copyright Protected Work Policy and Student Code of Conduct. Students may use, copy and share these materials for learning and/or research purposes provided that the use complies with fair dealing or an exception in the Copyright Act. Permission from the rights holder would be necessary otherwise. Please note that it is prohibited to reproduce and/or post a work that is not your own on third-party commercial websites including but not limited to Course Hero or OneNote. It is also prohibited to reproduce and/or post a work that is not your own or your own work with the intent to assist others in cheating on third-party commercial websites including but not limited to Course Hero or OneNote.

Intellectual Property: Sheridan's Intellectual Property Policy generally applies such that students own their own work. Please be advised that students working with external research and/or industry collaborators may be asked to sign agreements that waive or modify their IP rights. Please refer to Sheridan's IP Policy and Procedure.

Respectful Behaviour: Sheridan is committed to provide a learning environment that supports academic achievement by respecting the dignity, self-esteem and fair treatment of every person engaged in the learning process. Behaviour which is inconsistent with this principle will not be tolerated. Details of Sheridan's policy on Harassment and Discrimination, Academic Integrity and other academic policies are available on the Sheridan policy website.

Accessible Learning: Accessible Learning coordinates academic accommodations for students with disabilities. For more information or to register, please see the Accessible Learning website (Statement added September 2016)

Course Outline Changes: The information contained in this Course Outline including but not limited to faculty and program information and course description is subject to change without notice. Any changes to course curriculum and/or assessment shall adhere to approved Sheridan protocol. Nothing in this Course Outline should be viewed as a representation, offer and/or warranty. Students are responsible for reading the Important Notice and Disclaimer which applies to Programs and Courses.


[ Printable Version ]

Copyright © Sheridan College. All rights reserved.