Note: This unit version has not been officially published yet and is subject to change!

COMP3109: Programming Languages and Paradigms (2019 - Semester 2)

Download UoS Outline

Unit: COMP3109: Programming Languages and Paradigms (6 CP)
Mode: Normal-Day
On Offer: Yes
Level: Senior
Faculty/School: School of Computer Science
Unit Coordinator/s: A/Prof Scholz, Bernhard
Session options: Semester 2
Versions for this Unit:
Site(s) for this Unit: https://canvas.sydney.edu.au/courses/17639
Campus: Camperdown/Darlington
Pre-Requisites: COMP2022 OR COMP2007 OR COMP2907.
Brief Handbook Description: This unit provides an introduction to the foundations of programming languages and their implementation. The main aims are to teach what are: semantics, programming paradigms and implementation of programming languages.
Assumed Knowledge: None.
Lecturer/s: A/Prof Scholz, Bernhard
Timetable: COMP3109 Timetable
Time Commitment:
# Activity Name Hours per Week Sessions per Week Weeks per Semester
1 Lecture 2.00 1 13
2 Tutorial 2.00 1 13
3 Independent Study 1 13
T&L Activities: Tutorial: Tutorial

Independent Study: Independent Study

Learning outcomes are the key abilities and knowledge that will be assessed in this unit. They are listed according to the course goal supported by each. See Assessment Tab for details how each outcome is assessed.

Unassigned Outcomes
1. Ability to read, understand, analyze and modify semantics of a programming language. Ability to design a grammar and semantics for a given programming language.
2. Ability to write a program in various programming paradigms.
3. Knowledge of various programming paradigms, especially functional and logic-oriented programming. Knowledge of composition of programming languages, i.e, syntax and semantics.
4. Basic experience of implementing a programming language.
Assessment Methods:
# Name Group Weight Due Week Outcomes
1 Assignment 1 * No 10.00 Week 6 2,
2 Quiz * No 10.00 Week 9 2, 3,
3 Assignment 2 * No 20.00 Week 11 2,
4 Assignment 3* No 10.00 Week 13 1, 2, 3, 4,
5 Final Exam No 50.00 Exam Period 1, 2, 3, 4,
Assessment Description: * indicates an assessment tasks which must be repeated if a student misses it due to special considerations.

The penalty for lateness for assignments is 5% per day.

Assignment 1: covers functional programming

Quiz: covers introduction, functional programming, logic-oriented programming

Assignment 2: implements a language

Assignment 3: covers functional programming

Final Exam: Students must obtain 40% in the final exam to pass the unit, regardless of the sum of the individual marks.

There may be statistically defensible moderation when combining the marks from each component to ensure consistency of marking between markers, and alignment of final grades with unit outcomes.
Assessment Feedback: Each assessment is marked by tutors and the unit coordinator. Feedback is given in the form of comments on individual assessments and in the marks.
Grading:
Grade Type Description
Standards Based Assessment Final grades in this unit are awarded at levels of HD for High Distinction, DI (previously D) for Distinction, CR for Credit, PS (previously P) for Pass and FA (previously F) for Fail as defined by University of Sydney Assessment Policy. Details of the Assessment Policy are available on the Policies website at http://sydney.edu.au/policies . Standards for grades in individual assessment tasks and the summative method for obtaining a final mark in the unit will be set out in a marking guide supplied by the unit coordinator.
Minimum Pass Requirement It is a policy of the School of Computer Science that in order to pass this unit, a student must achieve at least 40% in the written examination. For subjects without a final exam, the 40% minimum requirement applies to the corresponding major assessment component specified by the lecturer. A student must also achieve an overall final mark of 50 or more. Any student not meeting these requirements may be given a maximum final mark of no more than 45 regardless of their average.
Policies & Procedures: IMPORTANT: School policy relating to Academic Dishonesty and Plagiarism.

In assessing a piece of submitted work, the School of Computer Science may reproduce it entirely, may provide a copy to another member of faculty, and/or to an external plagiarism checking service or in-house computer program and may also maintain a copy of the assignment for future checking purposes and/or allow an external service to do so.

Other policies

See the policies page of the faculty website at http://sydney.edu.au/engineering/student-policies/ for information regarding university policies and local provisions and procedures within the Faculty of Engineering and Information Technologies.
Recommended Reference/s: Note: References are provided for guidance purposes only. Students are advised to consult these books in the university library. Purchase is not required.
Online Course Content: https://canvas.sydney.edu.au/courses/17639

Note that the "Weeks" referred to in this Schedule are those of the official university semester calendar https://web.timetable.usyd.edu.au/calendar.jsp

Week Description
Week 1 Introduction
Week 2 Functional Programming I
Week 3 Functional Programming II
Week 4 Functional Programming III
Week 5 Lexical and Syntactical Analysis
Week 6 Semantic Analysis
Assessment Due: Assignment 1 *
Week 7 Names & Binding
Week 8 Types
Week 9 Code Generation
Assessment Due: Quiz *
Week 10 Logic Programming I
Week 11 Logic Programming II
Assessment Due: Assignment 2 *
Week 12 Logic Programming: Souffle
Week 13 Revision
Assessment Due: Assignment 3*
Exam Period Assessment Due: Final Exam

Course Relations

The following is a list of courses which have added this Unit to their structure.

Course Year(s) Offered
Bachelor of Advanced Computing (Computational Data Science) 2019, 2020
Bachelor of Advanced Computing (Software Development) 2019, 2020
Bachelor of Computer Science and Technology 2015, 2016
Bachelor of Computer Science and Technology (Advanced) 2015, 2016, 2017
Bachelor of Computer Science and Technology (Computer Science) 2014 and earlier 2009, 2010, 2011, 2012, 2013, 2014
Bachelor of Computer Science and Technology (Computer Science)(Advanced) 2014 and earlier 2013, 2014
Bachelor of Computer Science and Technology (Information Systems) 2014 and earlier 2010, 2011, 2012, 2013, 2014
Bachelor of Computer Science and Technology (Information Systems)(Advanced) 2014 and earlier 2013, 2014
Bachelor of Computer Science & Tech. Mid-Year 2016, 2017
Aeronautical Engineering / Science 2011, 2012, 2013, 2014
Aeronautical Engineering (Space) / Science 2011, 2012, 2013, 2014
Biomedical Engineering / Science 2013, 2014
Chemical & Biomolecular Engineering / Science 2011, 2012, 2013, 2014
Civil Engineering / Science 2011, 2012, 2013, 2014
Electrical Engineering (Bioelectronics) / Science 2011, 2012
Electrical Engineering / Science 2011, 2012, 2013, 2014
Electrical Engineering (Computer) / Science 2014
Electrical Engineering (Power) / Science 2011, 2012, 2013, 2014
Electrical Engineering (Telecommunications) / Science 2011, 2012, 2013, 2014
Aeronautical / Science 2015, 2016, 2017
Aeronautical (Space) / Science 2015
Biomedical Mid-Year 2016
Biomedical 2016
Biomedical /Science 2015, 2016, 2017
Chemical & Biomolecular / Science 2015
Civil / Science 2015
Electrical / Science 2015
Electrical (Computer) / Science 2015
Electrical (Power) / Science 2015
Electrical (Telecommunications) / Science 2015
Mechanical / Science 2015, 2016, 2017
Mechanical (Space) / Science 2015
Mechatronic / Science 2015, 2016, 2017
Mechatronic (Space) / Science 2015
Software Mid-Year 2016, 2017
Software 2015, 2016, 2017
Software / Arts 2016, 2017
Software / Commerce 2016, 2017, 2018, 2019, 2020
Software / Medical Science 2016, 2017
Software / Music Studies 2016, 2017
Software / Project Management 2016, 2017
Software / Science 2016, 2017, 2018, 2019, 2020
Software/Science (Health) 2018, 2019, 2020
Software / Law 2016, 2017, 2018, 2019, 2020
Mechanical Engineering (Biomedical) / Science 2011, 2012
Mechanical Engineering / Science 2011, 2012, 2013, 2014
Mechanical Engineering (Space) / Science 2011, 2012, 2013, 2014
Mechatronic Engineering / Science 2011, 2012, 2013, 2014
Mechatronic Engineering (Space) / Science 2011, 2012, 2013, 2014
Project Engineering and Management (Civil) / Science 2011
Software Engineering (till 2014) 2010, 2011, 2012, 2013, 2014
Software Engineering / Arts 2011, 2012, 2013, 2014
Software Engineering / Commerce 2010, 2011, 2012, 2013, 2014
Software Engineering / Medical Science 2011, 2012, 2013, 2014
Software Engineering / Project Management 2012, 2013, 2014
Software Engineering / Science 2011, 2012, 2013, 2014
Bachelor of Information Technology 2015, 2016
Bachelor of Information Technology/Bachelor of Arts 2015, 2016
Bachelor of Information Technology/Bachelor of Commerce 2015, 2016
Bachelor of Information Technology/Bachelor of Medical Science 2015, 2016
Bachelor of Information Technology/Bachelor of Science 2015, 2016
Bachelor of Information Technology (Computer Science) 2014 and earlier 2009, 2010, 2011, 2012, 2013, 2014
Information Technology (Computer Science)/Arts 2012, 2013, 2014
Information Technology (Computer Science) / Commerce 2012, 2013, 2014
Information Technology (Computer Science) / Medical Science 2012, 2013, 2014
Information Technology (Computer Science) / Science 2012, 2013, 2014
Information Technology (Computer Science) / Law 2012, 2013, 2014
Bachelor of Information Technology (Information Systems) 2014 and earlier 2010, 2011, 2012, 2013, 2014
Information Technology (Information Systems)/Arts 2012
Bachelor of Information Technology/Bachelor of Laws 2015, 2016
Software/Science (Medical Science Stream) 2018, 2019, 2020
Information Technology (Information Systems) / Science 2012
Flexible First Year (Stream A) / Science 2012

Course Goals

This unit contributes to the achievement of the following course goals:

Attribute Practiced Assessed
(6) Communication and Inquiry/ Research (Level 3) No 0%
(5) Interdisciplinary, Inclusiveness, Influence (Level 3) No 0%
(4) Design (Level 3) No 0%
(3) Problem Solving and Inventiveness (Level 3) No 0%
(2) Engineering/ IT Specialisation (Level 3) No 0%

These goals are selected from Engineering & IT Graduate Outcomes Table 2018 which defines overall goals for courses where this unit is primarily offered. See Engineering & IT Graduate Outcomes Table 2018 for details of the attributes and levels to be developed in the course as a whole. Percentage figures alongside each course goal provide a rough indication of their relative weighting in assessment for this unit. Note that not all goals are necessarily part of assessment. Some may be more about practice activity. See Learning outcomes for details of what is assessed in relation to each goal and Assessment for details of how the outcome is assessed. See Attributes for details of practice provided for each goal.