COMPX307-21B (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)

: rachael.foote@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
Edit Paper Description Content

Paper Structure

Edit Paper Structure Content

The paper will be taught via workshops in the relevant lecture theatres and streamed live (and all of which will be Panopto-ed), via a series of courseworks and a couple of tests too. There will also be Panopto-ed lectures which work through the slides available from week to week. You should view these and send me questions for the workshops in that same week.

The workshops will repeat the examples from the lectures and go thorough things in more detail and also, I hope, respond to questions arising from the lectures.

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;
    Linked to the following assessments:
  • describe what functions are defined by a piece of code in this language;
    Linked to the following assessments:
  • explain what those functions do;
    Linked to the following assessments:
  • write a parser for a simple imperative language;
    Linked to the following assessments:
  • compare and evaluate different solutions to problems written in different languages;
    Linked to the following assessments:
  • express the standard semantics for common imperative language constructs
    Linked to the following assessments:
  • write a simple interpreter for an imperative language in a functional language.
    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.

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
30 Jul 2021
10:00 AM
10
2. Coursework Two
20 Aug 2021
10:00 AM
15
3. Test One
6 Sep 2021
2:00 PM
20
4. Coursework Three
24 Sep 2021
10:00 AM
15
5. Coursework Four
15 Oct 2021
10:00 AM
20
6. Test Two
14 Oct 2021
2:00 PM
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