COMPX307-22B (HAM)

Principles of Programming Languages

15 Points

Edit Header Content
Division of Health Engineering Computing & Science
School of Computing and Mathematical Sciences
Department of Computer Science

Staff

Edit Staff Content

Convenor(s)

Lecturer(s)

Administrator(s)

: buddhika.subasinghe@waikato.ac.nz

Placement/WIL Coordinator(s)

Tutor(s)

Student Representative(s)

Lab Technician(s)

Librarian(s)

: alistair.lamb@waikato.ac.nz

You can contact staff by:

  • Calling +64 7 838 4466 select option 1, then enter the extension.
  • Extensions starting with 4, 5, 9 or 3 can also be direct dialled:
    • For extensions starting with 4: dial +64 7 838 extension.
    • For extensions starting with 5: dial +64 7 858 extension.
    • For extensions starting with 9: dial +64 7 837 extension.
    • For extensions starting with 3: dial +64 7 2620 + the last 3 digits of the extension e.g. 3123 = +64 7 262 0123.
Edit Staff Content

Paper Description

Edit Paper Description Content

This paper deals with the design, implementation and use of programming languages, and expands your knowledge and expertise beyond imperative languages. Topics will be selected from the following:

  • the history and future of programming languages
  • grammars and parsing techniques
  • language implementation issues (interpreters, compilers)
  • programming language semantics
  • declarative programming languages

The learning outcomes for this paper are linked to Washington Accord graduate attributes WA1-WA11. Explanation of the graduate attributes can be found at: https://www.ieagreements.org/assets/Uploads/Documents/IEA-Graduate-Attributes-and-Professional-Competencies-2021.1-Sept-2021.pdf

Edit Paper Description Content

Paper Structure

Edit Paper Structure Content

The paper will be taught via a mixture of streamed online and also live lectures (and all of which will be Panopto-ed), via a series of courseworks and a couple of tests too.

Please keep up to date with Moodle as that will have details of whether lectures for a week will be online only or in lecture theatres.

Edit Paper Structure Content

Learning Outcomes

Edit Learning Outcomes Content

Students who successfully complete the paper should be able to:

  • write programs in at least one functional language, which will mean solving computational problems and using such a language to define functions and modules which express those solutions (WA1, WA3);
    Linked to the following assessments:
  • write a parser for a simple imperative language in a functional language (WA1, WA3, WA11);
    Linked to the following assessments:
  • compare and evaluate different solutions to problems written in different languages (WA1, WA3, WA5);
    Linked to the following assessments:
  • express the standard semantics for common imperative language constructs (WA1, WA3);
    Linked to the following assessments:
  • write a simple interpreter for an imperative language in a functional language (WA1, WA3, WA11).
    Linked to the following assessments:
Edit Learning Outcomes Content
Edit Learning Outcomes Content

Assessment

Edit Assessments Content

Assignments must be submitted, via Moodle, by the due date. All assignments must be submitted as as plain text since we will want to run your programs etc. We will not mark submissions in any other format. We will try to get assignments marked within two weeks.

Samples of your work may be required as part of the Engineering New Zealand accreditation process for BE(Hons) degrees. Any samples taken will have the student name and ID redacted. If you do not want samples of your work collected then please email the engineering administrator, Natalie Shaw (natalie.shaw@waikato.ac.nz), to opt out.

Edit Additional Assessment Information Content

Assessment Components

Edit Assessments Content

The internal assessment/exam ratio (as stated in the University Calendar) is 100:0. There is no final exam. The final exam makes up 0% of the overall mark.

The internal assessment/exam ratio (as stated in the University Calendar) is 100:0 or 0:0, whichever is more favourable for the student. The final exam makes up either 0% or 0% of the overall mark.

Component DescriptionDue Date TimePercentage of overall markSubmission MethodCompulsory
1. Coursework One
5 Aug 2022
10:00 AM
10
2. Coursework Two
26 Aug 2022
10:00 AM
15
3. Test One
15 Sep 2022
12:00 AM
20
4. Coursework Three
30 Sep 2022
10:00 AM
15
5. Coursework Four
25 Oct 2022
11:30 PM
20
6. Test Two
21 Oct 2022
12:00 AM
20
Assessment Total:     100    
Failing to complete a compulsory assessment component of a paper will result in an IC grade
Edit Assessments Content

Required and Recommended Readings

Edit Required Readings Content

Required Readings

Edit Required Readings Content

Required Reading
http://en.wikibooks.org/wiki/Haskell

This is an open-source textbook---we will be working through some of it during the course.

Edit Required Readings Content

Recommended Readings

Edit Recommended Readings Content

Recommended Reading
"The Haskell School of Expression", Paul Hudak, Cambridge University Press.

"Programming in Haskell", Graham Hutton, Cambridge University Press.

Other Reading Material
"The Denotational Description of Programming Languages", Michael Gordon, Springer-Verlag

Edit Recommended Readings Content

Online Support

Edit Online Support Content
The paper will be supported in Moodle.
Edit Online Support Content

Workload

Edit Workload Content
On average you should expect to spend 12-14 hours per week on this course, in the following proportions: Lectures:3, Reading:2, Practicals:7-9.
Edit Workload Content

Linkages to Other Papers

Edit Linkages Content

Prerequisite(s)

Prerequisite papers: COMP200 or COMPX203 and one of COMP203, COMP241, COMPX201, COMPX241

Corequisite(s)

Equivalent(s)

Restriction(s)

Edit Linkages Content