Students

COMP3000 – Programming Languages

2024 – Session 2, In person-scheduled-weekday, North Ryde

General Information

Download as PDF
Unit convenor and teaching staff Unit convenor and teaching staff Convener, Lecturer, JVM tragic
Matthew Roberts
Lecturer, Esoteric Language Expert
Damian Jurd
Credit points Credit points
10
Prerequisites Prerequisites
130cp at 1000 level or above including COMP2010 or COMP225 or COMP2000 or COMP229
Corequisites Corequisites
Co-badged status Co-badged status
Unit description Unit description

Formal languages play a central role in modern software development. Programming languages such as Java and C++ allow developers to express their algorithms and data structures. Compilers and interpreters transform programs into running software. Data languages such as XML and JSON are widely used to transfer information between systems. This unit studies software languages by looking at how they are used in software development. Students will study how to formally understand the syntax, semantics and translation of software languages. Practical exercises involve writing software language processors of various kinds such as simple compilers or data transformation tools.

Important Academic Dates

Information about important academic dates including deadlines for withdrawing from units are available at https://www.mq.edu.au/study/calendar-of-dates

Learning Outcomes

On successful completion of this unit, you will be able to:

  • ULO1: evaluate the role that languages play in software development and describe a spectrum of software languages that are in current use
  • ULO2: express properties of software languages using formal notations
  • ULO3: translate formal notations of software language properties into implementations of language processors
  • ULO4: defend the correct operation of a language processor by construction and use of appropriate test cases

General Assessment Information

Requirements to Pass this Unit 

To pass this unit you must: 

  1. Participate in all workshop classes.  You will not be able to access exams unless you have participated in workshop classes or have special consideration for the classes.

  1. Achieve a total mark equal to or greater than 50%.

Late Assessment Submission Penalty 

Unless a Special Consideration request has been submitted and approved, a 5% penalty (of the total possible mark of the task) will be applied for each day a written report or presentation asselate 

ssment is not submitted, up until the 7th day (including weekends). After the 7th day, a grade of ‘0’ will be awarded even if the assessment is submitted. The submission time for all uploaded assessments is 11:55 pm. A 1-hour grace period will be provided to students who experience a technical concern. For any late submission of time-sensitive tasks, such as scheduled tests/exams, performance assessments/presentations, and/or scheduled practical assessments/labs, please apply for Special Consideration. For example, if the assignment is worth 8 marks (of the entire unit) and your submission is late by 19 hours (or 23 hours 59 minutes 59 seconds), 0.4 marks (5% of 8 marks) will be deducted. If your submission is late by 24 hours (or 47 hours 59 minutes 59 seconds), 0.8 marks (10% of 8 marks) will be deducted, and so on. 

Assessments where Late Submissions will be accepted 

  • Advanced Programming, Syntax, Translation – YES, Standard Late Penalty applies 

  • Examinations - NO, unless Special Consideration is Granted 

Special Consideration

The Special Consideration Policy aims to support students who have been impacted by short-term circumstances or events that are serious, unavoidable and significantly disruptive, and which may affect their performance in assessment. If you experience circumstances or events that affect your ability to complete the assessments in this unit on time, please inform the convenor and submit a Special Consideration request through ask.mq.edu.au. 

Assessment Tasks

Name Weighting Hurdle Due
Advanced programming language features 10% No 11th Aug 11:55pm
Examinations 60% No choice of times weeks 8, 13, midsem and exam period
Syntax Analysis 15% No 8th Sep 11:55pm
Translation 15% No 20th Oct 11:55pm

Advanced programming language features

Assessment Type 1: Programming Task
Indicative Time on Task 2: 15 hours
Due: 11th Aug 11:55pm
Weighting: 10%

 

The first assignment focuses on using advanced programming language features (particularly its functional features) to develop a small-medium-sized program. The aim is to consolidate and assess programming skills in preparation for the other two assignments.

 


On successful completion you will be able to:
  • express properties of software languages using formal notations
  • translate formal notations of software language properties into implementations of language processors
  • defend the correct operation of a language processor by construction and use of appropriate test cases

Examinations

Assessment Type 1: Examination
Indicative Time on Task 2: 30 hours
Due: choice of times weeks 8, 13, midsem and exam period
Weighting: 60%

A number of exams spread through the semester.


On successful completion you will be able to:
  • evaluate the role that languages play in software development and describe a spectrum of software languages that are in current use
  • express properties of software languages using formal notations

Syntax Analysis

Assessment Type 1: Programming Task
Indicative Time on Task 2: 15 hours
Due: 8th Sep 11:55pm
Weighting: 15%

The second assignment focuses on processing the syntax of a language to obtain a representation that the rest of the implementation can use.


On successful completion you will be able to:
  • express properties of software languages using formal notations
  • translate formal notations of software language properties into implementations of language processors
  • defend the correct operation of a language processor by construction and use of appropriate test cases

Translation

Assessment Type 1: Programming Task
Indicative Time on Task 2: 15 hours
Due: 20th Oct 11:55pm
Weighting: 15%

The third assignment focuses on translating a language into some other form, such as another structured language (e.g., translating a programming language into a lower-level form such as bytecode or assembly language).


On successful completion you will be able to:
  • express properties of software languages using formal notations
  • translate formal notations of software language properties into implementations of language processors
  • defend the correct operation of a language processor by construction and use of appropriate test cases

1 If you need help with your assignment, please contact:

  • the academic teaching staff in your unit for guidance in understanding or completing this type of assessment
  • the Writing Centre for academic skills support.

2 Indicative time-on-task is an estimate of the time required for completion of the assessment task and is subject to individual variation

Delivery and Resources

Classes begin in week 1 for both lectures and workshops.

CLASSES

Each week of COMP3000 has a two hour lecture and a two-hour practical class. For details of days, times and rooms, consult the University timetables webpage (http://www.timetables.mq.edu.au). Practical classes commence in Week 1 and are held in the 4RPD Computer Laboratories computer laboratories for on-campus classes and in zoom rooms for online classes (links published in iLearn).

In all cases students are expected to do significant preparatory work, readings and exercises before attending classes.

REQUIRED AND RECOMMENDED TEXTS AND/OR MATERIALS

The required texts for the unit is (available online via the Macquarie University Library, see below):

  • Crafting Interpreters by Robert Nystrom
  • Seven Languages in Seven Weeks by Bruce A. Tate

There will be no lecture notes provided, all examinable material is given in course readings and the textbook.  Students are required to study this material and answer preparatory questions before class.

Methods of Communication

We will communicate with you via your university email and through announcements on iLearn. Queries to convenors can either be placed on the iLearn discussion board or sent to the unit convenor via the contact email on iLearn. 

COVID Information

For the latest information on the University’s response to COVID-19, please refer to the Coronavirus infection page on the Macquarie website: https://www.mq.edu.au/about/coronavirus-faqs. Remember to check this page regularly in case the information and requirements change during semester. If there are any changes to this unit in relation to COVID, these will be communicated via iLearn. 

Policies and Procedures

Macquarie University policies and procedures are accessible from Policy Central (https://policies.mq.edu.au). Students should be aware of the following policies in particular with regard to Learning and Teaching:

Students seeking more policy resources can visit Student Policies (https://students.mq.edu.au/support/study/policies). It is your one-stop-shop for the key policies you need to know about throughout your undergraduate student journey.

To find other policies relating to Teaching and Learning, visit Policy Central (https://policies.mq.edu.au) and use the search tool.

Student Code of Conduct

Macquarie University students have a responsibility to be familiar with the Student Code of Conduct: https://students.mq.edu.au/admin/other-resources/student-conduct

Results

Results published on platform other than eStudent, (eg. iLearn, Coursera etc.) or released directly by your Unit Convenor, are not confirmed as they are subject to final approval by the University. Once approved, final results will be sent to your student email address and will be made available in eStudent. For more information visit connect.mq.edu.au or if you are a Global MBA student contact globalmba.support@mq.edu.au

Academic Integrity

At Macquarie, we believe academic integrity – honesty, respect, trust, responsibility, fairness and courage – is at the core of learning, teaching and research. We recognise that meeting the expectations required to complete your assessments can be challenging. So, we offer you a range of resources and services to help you reach your potential, including free online writing and maths support, academic skills development and wellbeing consultations.

Student Support

Macquarie University provides a range of support services for students. For details, visit http://students.mq.edu.au/support/

The Writing Centre

The Writing Centre provides resources to develop your English language proficiency, academic writing, and communication skills.

The Library provides online and face to face support to help you find and use relevant information resources. 

Student Services and Support

Macquarie University offers a range of Student Support Services including:

Student Enquiries

Got a question? Ask us via the Service Connect Portal, or contact Service Connect.

IT Help

For help with University computer systems and technology, visit http://www.mq.edu.au/about_us/offices_and_units/information_technology/help/

When using the University's IT, you must adhere to the Acceptable Use of IT Resources Policy. The policy applies to all who connect to the MQ network including students.

Changes from Previous Offering

COMP3000 will be significantly different to previous offerings.  We are no longer using the "Programming Pragmatics" text, no longer teaching Scala or Kiama, term rewriting or attribute grammers.  We are using two new textbooks which are more modern approaches to the same material.  We are also moving from weekly exams to two exams.  Each exam will be done in two parts: a take-home part which can be attemted multiple times over a week, and an in person part which can only be attempted once at the scheduled time.


Unit information based on version 2024.03 of the Handbook