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: Spring/Summer 2019
Pre/Co/Equiv Notes: N/A
Hon Bach CompSci - Mobile Comp
Course Leader or Contact: Edward Sykes
Status: Approved (APPR)
Section I Notes:
| Section II: Course Details
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
Course Critical Performance and Learning Outcomes
|Hon Bach CompSci - Mobile Comp
|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.
|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.
To achieve the critical performance, students will have demonstrated the ability to:
- Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system of functional programming languages.
- Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system of imperative programming languages.
- Evaluate the syntax, semantics, facilities for modularity and data abstraction, type system, inheritance, and polymorphism of object-oriented programming languages.
- Analyze the principles of imperative programming languages using the C programming language.
- Design and implement object-oriented programs in C++
- Explore functional programming paradigms in a modern functional programming language (e.g., F#, Haskell, Swift).
- Apply knowledge of principles and paradigms of programming languages to implement solutions to problems in an appropriate programming language.
- Assess memory management paradigms associated with different program languages.
- 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.
Students demonstrate their learning in the following ways:
| ||Evaluation Plan: IN-CLASS|
| ||Assignments (4@10%) approx. weeks 3,6,9,12||40.0%|
| ||Midterm Exam approx. week 7||30.0%|
| ||Final Exam approx. week 13||30.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.
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 will only be made under extraordinary circumstances.
Refer to the School of Applied Computing's Academic Procedures for Evaluations for more details regarding missed work: Procedures for Evaluations
The course meets the following Ministry of Training, Colleges and Universities 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: 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
|Optional||Textbook||Essentials of Programming Languages, Friedman, D. P., Wand, M., & Haynes, C.T., MIT Press, 3rd ed., ISBN 9780262062794, 2008|
Applicable student group(s): Honours Bachelor of Applied Computer Science - Mobile Computing
1. Principles and Paradigms
- Language design
- Compilers and Virtual Machines
- Syntax, Lexical and Syntactic Analysis
- Compilers and Interpreters
- Lexical Analysis
- Syntactic Analysis
- Names, Types, and Type Systems
- Variables, symbol tables
- Static and dynamic typing
- Recursive data types
- Functions as types
- Semantics, Semantic Interpretation
- Expression semantics
- Program state
- Assignment, control flow, input/output and exception semantics
- Functions, and Function implementation
- Basic Terminology
- Parameter Passing Mechanism
- Function Declaration and Call
- Semantics of Function Call and Return
- Memory Management
- The Heap
- Garbage Collection Mechanisms
- Memory management with C and C++
- Imperative Programming Language Principles and Paradigms
- Overview of the characteristics of imperative languages
- Procedural abstraction
- Expressions and assignment
- Programming in C
- 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++
- 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
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.