Handbook home
Declarative Programming (COMP30020)
Undergraduate level 3Points: 12.5On Campus (Parkville)
About this subject
- Overview
- Eligibility and requirements
- Assessment
- Dates and times
- Further information
- Timetable (login required)(opens in new window)
Contact information
Semester 2
Overview
Availability | Semester 2 |
---|---|
Fees | Look up fees |
AIMS
Declarative programming languages provide elegant and powerful programming paradigms and techniques that every programmer should know. This subject presents declarative programming languages and techniques.
INDICATIVE CONTENT
- The dangers of destructive update
- Functional programming
- Recursion
- Strong type systems
- Parametric polymorphism
- Algebraic types
- Type classes
- Defensive programming practice
- Higher order programming
- Currying and partial application
- Lazy evaluation
- Monads
- Logic programming
- Unification and resolution
- Nondeterminism, search, and backtracking.
Intended learning outcomes
INTENDED LEARNING OUTCOMES (ILO)
On completion of this subject the student is expected to:
- Apply declarative programming techniques
- Write medium size programs in a declarative language
- Write programs in which different components use different languages
- Select appropriate languages for each component task in a project
Generic skills
On completion of this subject students should have developed the following skills:
- Ability to undertake problem identification, formulation and solution
- Ability to utilise a systems approach to design and operational performance
- Intellectual curiosity and creativity, including understanding of the philosophical and methodological bases of research activity
- Openess to new ideas and unconventional critiques of received wisdom
- Capacity for independent critical thought, rational inquiry and self-directed learning.
Last updated: 22 March 2024
Eligibility and requirements
Prerequisites
Prerequisites
One of
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP20003 | Algorithms and Data Structures | Semester 2 (On Campus - Parkville) |
12.5 |
COMP20007 | Design of Algorithms | Semester 1 (On Campus - Parkville) |
12.5 |
COMP90038 | Algorithms and Complexity |
Semester 1 (On Campus - Parkville)
Semester 2 (On Campus - Parkville)
|
12.5 |
OR
Admission into the GC-CS Graduate Certificate in Computer Science
Corequisites
None
Non-allowed subjects
Code | Name | Teaching period | Credit Points |
---|---|---|---|
COMP90048 | Declarative Programming | Semester 1 (On Campus - Parkville) |
12.5 |
Recommended background knowledge
Code | Name | Teaching period | Credit Points |
---|---|---|---|
SWEN20003 | Object Oriented Software Development |
Semester 2 (On Campus - Parkville)
Semester 1 (On Campus - Parkville)
|
12.5 |
Inherent requirements (core participation requirements)
The University of Melbourne is committed to providing students with reasonable adjustments to assessment and participation under the Disability Standards for Education (2005), and the Assessment and Results Policy (MPF1326). Students are expected to meet the core participation requirements for their course. These can be viewed under Entry and Participation Requirements for the course outlines in the Handbook.
Further details on how to seek academic adjustments can be found on the Student Equity and Disability Support website: http://services.unimelb.edu.au/student-equity/home
Last updated: 22 March 2024
Assessment
Description | Timing | Percentage |
---|---|---|
Project work due in approximately weeks 6 and 11
| From Week 6 to Week 11 | 30% |
One examination.
| End of semester | 70% |
Additional details
Hurdle requirement: To pass the subject, students must obtain at least:
- 50% overall
- 15/30 in project work
- And 35/70 in end-of-semester written examination.
Intended Learning Outcome (ILO) 1 is covered by both assessment components, and ILO 2 is covered by the project work. ILO 3 and 4 are substantially less important, and are covered in lecture, but not explicitly assessed
Last updated: 22 March 2024
Dates & times
- Semester 2
Coordinator Peter Schachte Mode of delivery On Campus (Parkville) Contact hours 36 hours, comprising of two 1-hour lectures and one 1-hour tutorial per week Total time commitment 170 hours Teaching period 22 July 2024 to 20 October 2024 Last self-enrol date 2 August 2024 Census date 2 September 2024 Last date to withdraw without fail 20 September 2024 Assessment period ends 15 November 2024 Semester 2 contact information
Time commitment details
170 hours
What do these dates mean
Visit this webpage to find out about these key dates, including how they impact on:
- Your tuition fees, academic transcript and statements.
- And for Commonwealth Supported students, your:
- Student Learning Entitlement. This applies to all students enrolled in a Commonwealth Supported Place (CSP).
Subjects withdrawn after the census date (including up to the ‘last day to withdraw without fail’) count toward the Student Learning Entitlement.
Last updated: 22 March 2024
Further information
- Texts
Prescribed texts
TBA
- Subject notes
LEARNING AND TEACHING METHODS
This subject comprises 24 one-hour lectures plus 11 one-hour workshops combining group discussion and individual and small group programming work. Additionally, students develop two medium-size declarative programs for assessment.
INDICATIVE KEY LEARNING RESOURCES
At the beginning of the semester, the coordinator will propose a textbook on declarative programming, which will be made available through University Book Shop and library. The current suggested textbook is Bryan O'Sullivan, John Goerzen & Don Stewart: Real World Haskell, O’Reilly Media. This textbook can also be read online gratis. Lecture notes for the subject are also available online.
CAREERS / INDUSTRY LINKS
Over the last few years, the mainstream software industry has become quite interest in functional programming, as it promises more robust software by altogether avoiding many classes of problems common in non-declarative languages. Skills developed in this subject complement skills taught in other subjects, better equipping students for work in software design and implementation.
- Related Handbook entries
This subject contributes to the following:
Type Name Major Computer Science Specialisation (formal) Software Specialisation (formal) Software with Business Informal specialisation Science Discipline subjects - new generation B-SCI - Breadth options
This subject is available as breadth in the following courses:
- Bachelor of Arts
- Bachelor of Commerce
- Bachelor of Design
- Bachelor of Environments
- Bachelor of Fine Arts (Acting)
- Bachelor of Fine Arts (Animation)
- Bachelor of Fine Arts (Dance)
- Bachelor of Fine Arts (Film and Television)
- Bachelor of Fine Arts (Music Theatre)
- Bachelor of Fine Arts (Production)
- Bachelor of Fine Arts (Screenwriting)
- Bachelor of Fine Arts (Theatre)
- Bachelor of Fine Arts (Visual Art)
- Bachelor of Music
- Available through the Community Access Program
About the Community Access Program (CAP)
This subject is available through the Community Access Program (also called Single Subject Studies) which allows you to enrol in single subjects offered by the University of Melbourne, without the commitment required to complete a whole degree.
Entry requirements including prerequisites may apply. Please refer to the CAP applications page for further information.
Additional information for this subject
Subject coordinator approval required
- Available to Study Abroad and/or Study Exchange Students
This subject is available to students studying at the University from eligible overseas institutions on exchange and study abroad. Students are required to satisfy any listed requirements, such as pre- and co-requisites, for enrolment in the subject.
Last updated: 22 March 2024