Students

COMP796 – Research Topic in Computing 6

2014 – S1 Day

General Information

Download as PDF
Unit convenor and teaching staff Unit convenor and teaching staff Unit Convenor
Anthony Sloane
Contact via anthony.sloane@mq.edu.au
E6A315
Monday 11-12, Friday 11-12, or by appointment
Credit points Credit points
4
Prerequisites Prerequisites
Admission to MRes
Corequisites Corequisites
Co-badged status Co-badged status
This unit is cross-badged with ITEC812 to enable Masters of Information Technology students to undertake it.
Unit description Unit description
This unit comprises study of an advanced topic in the areas of computing and information systems. The area studied each year is tailored to the current student cohort. Emphasis is on both the understanding of analytical/theoretical concepts and problem-solving applications.

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:

  • Understand how to use mathematical techniques to specify the meaning of programming languages and programs.
  • Ability to use a practical tool or system to specify and prove formal properties of programming languages and programs.
  • Ability to investigate a topic in advanced computer science and report findings in written and oral form.

Assessment Tasks

Name Weighting Due
Weekly Homework 40% Weeks 2 to 13
Research Report 20% Week 13
Presentation 10% Week 13
Examination 30% Exam period

Weekly Homework

Due: Weeks 2 to 13
Weighting: 40%

Each week students will be asked to complete some Coq exercises based on the class material of that week.


On successful completion you will be able to:
  • Understand how to use mathematical techniques to specify the meaning of programming languages and programs.
  • Ability to use a practical tool or system to specify and prove formal properties of programming languages and programs.
  • Ability to investigate a topic in advanced computer science and report findings in written and oral form.

Research Report

Due: Week 13
Weighting: 20%

Students will be asked to investigate a theorem prover, proof assistant, software verification system or model checker other than Coq. A short report must be written that describes the system that has been investigated, illustrates an example verification or proof with that system, and compares the strengths and weaknesses of the system to Coq.


On successful completion you will be able to:
  • Understand how to use mathematical techniques to specify the meaning of programming languages and programs.
  • Ability to investigate a topic in advanced computer science and report findings in written and oral form.

Presentation

Due: Week 13
Weighting: 10%

A presentation on the topic of the research report. Presentations will be thirty minutes long, including five minutes for questions, and will be held in class in Week 13.


On successful completion you will be able to:
  • Understand how to use mathematical techniques to specify the meaning of programming languages and programs.
  • Ability to investigate a topic in advanced computer science and report findings in written and oral form.

Examination

Due: Exam period
Weighting: 30%

In the exam period, students will be given a week to undertake a non-trivial software formalisation and proof task using Coq.


On successful completion you will be able to:
  • Understand how to use mathematical techniques to specify the meaning of programming languages and programs.
  • Ability to use a practical tool or system to specify and prove formal properties of programming languages and programs.
  • Ability to investigate a topic in advanced computer science and report findings in written and oral form.

Delivery and Resources

CLASSES

Each week of COMP796 has three hours of face-to-face class. Classes will be a mixture of lecture-style presentation and hands-on practical work. 

REQUIRED AND RECOMMENDED TEXTS AND/OR MATERIALS

COMP796 will follow the book Software Foundations by Benjamin Pierce et al. (http://www.cis.upenn.edu/~bcpierce/sf/). The book is freely available from the web site and consists of annotated programs, proofs and exercises. It can be read in HTML form or the full distribution can be downloaded for formatting as PDF. This book is updated from time to time. We will use the most recent version which is dated 18 July 2013.

Students should read the relevant sections of the book and attempt the basic exercises on their own. Class time will be devoted to the main ideas of each chapter and working through a number of more advanced exercises. Some basic and more advanced exercises will be set as homework exercises.

UNIT WEBPAGE AND TECHNOLOGY USED AND REQUIRED

COMP796 Web Home Page: http://www.comp.mq.edu.au/units/comp796/

COMP796 uses iLearn for delivery of class materials, discussion boards, online selftests, submission of assessment tasks and access to marks and comments. Students should check the iLearn site regularly for unit updates.

Questions regarding the content of this unit, its tutorials or practicals should be posted to the appropriate discussion board on iLearn. In particular, any questions which are of interest to all students in this unit should be posted to one of these discussion boards, so that everyone can benefit from the answers.

Coq Proof Assistant 

The practical work in this unit involves functional programming and proof construction using the Coq proof assistant (http://coq.inria.fr). Ideally, students should install Coq on a laptop and bring it to class so they can follow along with in-class exercises.

WHAT HAS CHANGED?

This unit will be taught in the same way as the first offering which was held in Session 2, 2013.

Unit Schedule

This unit is "Advanced Topics in Theory and Practice of Software". 

The unit introduces the formal study of software systems. It is intended to provide a general basis for further study or research in software-focused areas of Computer Science such as Programming Languages and Formal Methods.

The unit is organised around two main themes:

a) The meaning of programs. To study software systems it is necessary to have a proper understanding of the programming languages in which those systems are written. Formal semantic descriptions of languages assign mathematical meanings to programs. Typical kinds of meaning that will be studied include types that specify the operations that programs will perform, and operational aspects that capture how a program behaves as it executes.

b) Techniques for verifying that languages and programs have desired properties. We will see how to analyse a language semantics to prove that all programs written in that language have desirable properties. E.g., a desirable property of a type system is type safety: that an executing program cannot execute an illegal operation. We will also study the properties of particular programs. E.g., it is often desirable to be able to prove that a program produces a desired result.

The practical work in the unit will include implementation of formal language semantics and development of verification proofs. We emphasise the use of frameworks and tools to assist with both of these activities. Examples include the use of software language engineering tools and libraries to assist with language implementation, and the use of proof assistants, program verification systems or model checkers to help us specify properties and to find proofs.

Students entering this unit should have reasonable programming experience and should have studied discrete mathematics. Relevant Macquarie University units for programming maturity are COMP225 Algorithms and Data Structures, COMP229 Object-Oriented Programming Practices and any 300-level unit that applies programming skills to particular problem domains (e.g., COMP330 Computer Graphics, COMP333 Algorithm Theory and Design, and ISYS302 Advanced Application Development). DMTH237 Discrete Mathematics II is good background in that area. Previous courses in areas such as programming language concepts or implementation, such as COMP332 Programming Languages, will be helpful, but are not required.

The class material will be structured according to the following schedule. The rightmost column refers to the relevant chapters of the "Software Foundations" required text. 

Week Topic Chapter of Text
1 Introduction Preface
1 Functional Programming Basics
2 Proof by Induction, Structured Data Induction, Lists
3-4  Polymorphism and Higher-Order Functions, More about Coq Poly, MoreCoq
5-7 Propositions and Evidence, Logic, Working with Explicit Evidence Prop, MoreProp, Logic, ProofObjects
 8-12 Applications: from Imperative Programs, Program Equivalence, Small-step Operational Semantics, Type Systems, Simple-typed Lambda Calculus from Imp, Equiv, Hoare, Hoare2, Smallstep, Types, Stlc, StlcProp
 13 Presentations, Review  

Policies and Procedures

Macquarie University policies and procedures are accessible from Policy Central. Students should be aware of the following policies in particular with regard to Learning and Teaching:

Academic Honesty Policy http://mq.edu.au/policy/docs/academic_honesty/policy.html

Assessment Policy  http://mq.edu.au/policy/docs/assessment/policy.html

Grading Policy http://mq.edu.au/policy/docs/grading/policy.html

Grade Appeal Policy http://mq.edu.au/policy/docs/gradeappeal/policy.html

Grievance Management Policy http://mq.edu.au/policy/docs/grievance_management/policy.html

Disruption to Studies Policy http://www.mq.edu.au/policy/docs/disruption_studies/policy.html The Disruption to Studies Policy is effective from March 3 2014 and replaces the Special Consideration Policy.

In addition, a number of other policies can be found in the Learning and Teaching Category of Policy Central.

Student Code of Conduct

Macquarie University students have a responsibility to be familiar with the Student Code of Conduct: https://students.mq.edu.au/support/student_conduct/

Department of Computing Special Consideration Policy

If you apply for Special Consideration and it is judged by the Department of Computing that your performance on an examination has been affected adversely by the circumstances documented in the consideration request, you will be required to sit a Supplementary Examination. The Supplementary Examination will normally be scheduled after the official examination period, but may be earlier in the case of a mid-semester examination. For details see the Special Consideration policy specific to the Department of Computing.

Student Support

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

Learning Skills

Learning Skills (mq.edu.au/learningskills) provides academic writing resources and study strategies to improve your marks and take control of your study.

Student Services and Support

Students with a disability are encouraged to contact the Disability Service who can provide appropriate help with any issues that arise during their studies.

Student Enquiries

For all student enquiries, visit Student Connect at ask.mq.edu.au

IT Help

For help with University computer systems and technology, visit http://informatics.mq.edu.au/help/

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

Assessment Standards

COMP796 will be assessed and graded according to the University assessment and grading policies.

Submission Deadlines

Assessment deadlines are strict, unless an application for special consideration is received (preferably in advance) accompanied by appropriate documentary evidence. Late submissions will be penalised at the rate of 20% of the full marks for the assessment per day or part thereof late.

Standards

The following general standards of achievement will be used to assess each of the assessment tasks with respect to the letter grades. 

Pass: Has a basic undestanding of language and program semantics as discussed in class. Can use a verification tool or proof system to specify and prove simple language and program properties similar to those discussed in class. Can perform a basic research investigation in the area and present the results of that research in rudimentary written and oral forms.

Credit: As for Pass plus: Is able to apply the techniques we have discussed to specify and prove new properties that are not direct analogues of ones discussed in class. Shows more than basic insights into the results of a research investgiation and is able to communicate those insights.

Distinction/High Distinction: As for Credit plus: Is able to generalise from the language and program properties discussed explicity to new ones for problem domains not explicitly discussed in class and can apply verification tools and systems to proofs about them. Can critically evaluate the limits of the techniques and tools we have discussed.

Assessment Process

These assessment standards will be used to give a numeric mark out of 100 to each assessment submission during marking. The mark will correspond to a letter grade for that task according to the University guidelines. The final raw mark for the unit will be calculated by combining the marks for all assessment tasks according to the percentage weightings shown in the assessment summary.

We will look at your overall performance on all assessments when determining your final grade. A total raw mark of at least 50% and a mark of at least 50% on each of the four assessment categories will be sufficient to pass the unit. Students who do not meet this cut-off will be examined on a case-by-case basis.

On occasion your raw mark for the unit may not be the same as the Standardised Numeric Grade (SNG) which you receive as the result. Under the Senate guidelines, raw marks may be scaled to ensure that there is a degree of comparability across the university, so that units with the same past performances of their students should achieve similar results.