[an error occurred while processing this directive]
[an error occurred while processing this directive]ASCED: 020103 Programming
Building on knowledge in imperative and object-oriented programming, FIT3082 provides a thorough understanding of the main programming alternative language paradigms: functional and logic programming. In doing this, it reviews different example languages and the kinds of applications each language is intended for, focusing on how the choices made during the design of a language affect the resulting ease of programming. Students will gain practical programming experience in languages that use these paradigms, such as SML and Prolog.
K1. Knowledge of the history of programming languages and the reasons for their introduction. Understanding of the fact that programming languages and programming language paradigms have evolved and will almost certainly change in the future.
K2. Knowledge and comprehension of programming language paradigms including imperative, functional and logical. Comprehension that the choice of programming language affects the ease of programming. Ability to evaluate whether a particular paradigm or programming language is well-suited for a particular problem.
K3. Appreciation of the importance of formal mathematical calculi as the basis for programming languages (in particular, Lambda Calculus and First Order Predicate Calculus). Understanding of how these calculi can provide the basis for programming language semantics and understanding of their limitations, in particular regarding interactive programs.
K4. Knowledge of the core aspects of modern functional programming languages: Functions as first class objects, type systems, higher-order functions, eager and lazy evaluation.
K5. Knowledge of a particular functional programming language, such as ML or Scheme, which exemplifies most of these aspects and the ability to use it for implementing non-trivial algorithms.
K6. Knowledge of the core aspects of logic programming: logical inference, deduction, resolution, negation as failure, logic variables and unification.
K7. Knowledge of a particular logic language, such as Prolog or CLP, which exemplifies most of these aspects and the ability to use it for implementing non-trivial algorithms.
K8. Knowledge of the main issues in programming language design and comprehension of the various design alternatives and of the possibility to create mixed-paradigm languages, as exemplified in Python.
Attitudes, Values and Beliefs
A1. Value the important role that theory (in this case logic, type theory and lambda-calculus) can play in the development of practical software applications (in this case compilers and program verification).
A2. Carefully consider the characteristics of the different programming languages available whenever developing a new application.
Practical SkillsP1. Become an informed user of programming languages, choosing the right programming language for a particular task.
P2. Be able to implement and debug non-trivial algorithms in both a functional and a logic language.
two 1-hour lectures, weekly
one 1-hour tutorial (combined with practical work at the computer), weekly
9 hours of personal study (incl reading, lecture preparation and assignment preparation)
FIT2004 or CSE2304, FIT2014 or CSE2303
or equivalent.
Students beginning FIT3082 are assumed to be competent programmers in at least one programming language based on a paradigm other than procedural Students are required to have a thorough understanding of datatypes and recursion and the fundamental concepts of formal languages and grammars. Knowledge of first order predicate calculus is required.
FIT3082 is an elective unit in the Bachelor of Computer Science and the Bachelor of Software Engineering.
Before attempting this unit you must have satisfactorily completed
FIT2004 or CSE2304, FIT2014 or CSE2303
or equivalent.You may not study this unit and
CSE3322
in your degree.Monash is committed to ‘Excellence in education’ (Monash Directions 2025 - http://www.monash.edu.au/about/monash-directions/directions.html) and strives for the highest possible quality in teaching and learning.
To monitor how successful we are in providing quality teaching and learning Monash regularly seeks feedback from students, employers and staff. One of the key formal ways students have to provide feedback is through Unit Evaluation Surveys. The University’s Unit Evaluation policy (http://www.policy.monash.edu/policy-bank/academic/education/quality/unit-evaluation-policy.html) requires that every unit offered is evaluated each year. Students are strongly encouraged to complete the surveys as they are an important avenue for students to “have their say”. The feedback is anonymous and provides the Faculty with evidence of aspects that students are satisfied and areas for improvement.
Faculties have the option of administering the Unit Evaluation survey online through the my.monash portal or in class. Lecturers will inform students of the method being used for this unit towards the end of the semester.
Some material has been removed from the syllabus (advanced material from meta programming and CLP) in favour of treating the remaining material in more depth.
Lectures will be used to present new concepts, introduce the fundamental approaches to problem solving with particular paradigms, compare different approaches, analyse their advantages and disadvantages, and propose general questions. The aim is to give students an overview of the concepts and to challenge them to think further. Tutorials and practicals will be used to link the theory with practice and deepen the students understanding and practical abilities. To this end, tutorials and practicals are tightly integrated into sessions where theoretical discussion and practical programming work complement each other.
Monash aims to provide a learning environment in which students receive a range of ongoing feedback throughout their studies. You will receive feedback on your work and progress in this unit. This may take the form of group feedback, individual feedback, peer feedback, self-comparison, verbal and written feedback, discussions (on line and in class) as well as more formal feedback related to assignment marks and grades. You are encouraged to draw on a variety of feedback to enhance your learning.
It is essential that you take action immediately if you realise that you have a problem that is affecting your study. Semesters are short, so we can help you best if you let us know as soon as problems arise. Regardless of whether the problem is related directly to your progress in the unit, if it is likely to interfere with your progress you should discuss it with your lecturer or a Community Service counsellor as soon as possible.
Week | Topic | Key dates |
---|---|---|
1 | Overview, History of Programming Languages | |
2 | ML I: Expressions, Functions, Basic Datatypes, Lists, Pattern Matching | |
3 | ML II: Type Definitions, Polymorphism | Hurdle Prac 1 |
4 | ML III: Higher order functions, Structures | |
5 | ML IV: Input/Output, Destructive Update, Binding Mechanisms, Scope and Extent | Hurdle Prac 2 |
6 | ML V: Type Inference, Overview of Abstraction Mechanisms | |
Mid semester break | ||
7 | LP I: Rule-based Programming, Deductive Databases, Basic LP Syntax, Logic Semantics | April 24, Assignment 1 due |
8 | LP II: Deduction, Search & Backtracking, Unification | |
9 | LP III: Basic Lists and Difference Lists, Cut, Negation by failure, Impure Features (I/O, Arithmetic) | Hurdle Prac 3 |
10 | LP IV: Metaprogramming | |
11 | LP V: CLP basics | Hurdle Prac 4 |
12 | LP VI: CLP | |
13 | Revision | June 5, Assignment 2 due |
Text books are available from the Monash University Book Shops. Availability from other suppliers cannot be assured. The Bookshop orders texts in specifically for this unit. You are advised to purchase your text book early.
Kenneth C. Louden "Programming Languages, Principles and Practice", Thomson.
David A. Watt "Programming Language Design Concepts", Wiley.
The following technical reports / journal articles may also be helpful and interesting:
(LP III) K. Knight: Unification: A Multidisciplinary Survey. ACM Computing Surveys 21(1)1989:93-124
(LP V) T. Fruwirth et al: Constraint Logic Programming - an informal introduction (ECRC Tech Report 93-5)
(LP V) P. van Hentenryck: Constraint logic programming, The Knowledge Engineering Review 6(3)1991:151-194
(Tutorial and Labs for LP) D.H.D. Warren: Logic Programming and Compiler Writing. Software - Practice and Experience 10, 1980:97-125
(Tutorials and Labs for LP) J. Cohen and T.J. Hickey: Parsing and Compiling Using Prolog. ACM Transactions on Programming Languages and Systems 9(2)1987:125-163
You will need access to
* SML/NJ (latest version)
* SICStus Prolog (latest version)
both are installed in the labs. For home use you can download SML/NJ from http://www.smlnj.org . Several free Prolog Systems are publicly available on the web (unfortunately, SICStus is not free).
Study resources we will provide for your study are:
The Monash University Library site contains details about borrowing rights and catalogue searching. To learn more about the library and the various resources available, please go to http://www.lib.monash.edu.au.
The Educational Library and Media Resources (LMR) is also a very resourceful place to visit at http://www.education.monash.edu.au/library/
All unit and lecture materials are available through MUSO (Monash University Studies Online). Blackboard is the primary application used to deliver your unit resources. Some units will be piloted in Moodle. If your unit is piloted in Moodle, you will see a link from your Blackboard unit to Moodle (http://moodle.monash.edu.au) and can bookmark this link to access directly. In Moodle, from the Faculty of Information Technology category, click on the link for your unit.
You can access MUSO and Blackboard via the portal: http://my.monash.edu.au
Click on the Study and enrolment tab, then Blackboard under the MUSO learning systems.
In order for your Blackboard unit(s) to function correctly, your computer needs to be correctly configured.
For example:
For more information, please visit: http://www.monash.edu.au/muso/support/students/downloadables-student.html
You can contact the MUSO Support by phone : (+61 3) 9903 1268
For further contact information including operational hours, please visit: http://www.monash.edu.au/muso/support/students/contact.html
Further information can be obtained from the MUSO support site: http://www.monash.edu.au/muso/support/index.html
The unit is assessed with two assignments (assessed in the pracs) and a three hour closed book examination. To pass the unit you must:
Note that there are also four "Hurdle Pracs" assessed as pass/fail. You will only be eligible to submit Assignment 1 if you pass at least one of the Hurdle Pracs 1, 2 and you will only be eligible to submit Assignment 2 if you pass at least one of the Hurdle Pracs 3, 4.
Title : Functional Programming
Description :
Weighting : 15%
Criteria for assessment :
Due date : April 24
Title : Logic Programming
Description :
Weighting : 15%
Criteria for assessment :
Due date : June 5
Weighting : 70%
Length : 3 hours
Type ( open/closed book ) : Closed book
Assignments will be submitted by mixed electronic and paper submission. On-campus Students Submit the assignment in the pracs, with the appropriate cover sheet correctly filled out and attached Off Campus (OCL) students [OCL only] Mail your assignment to the Off-Campus Learning Centre with the cover sheet attached. Do not email submissions. The due date is the date by which the submission must be received/the date by which the the submission is to be posted
All assignments must include an assignment coversheet. For the paper submission, the coversheet can be found in http://infotech.monash.edu.au/resources/students/assignments/ For the electronic submission, the coversheet can be found in MUSO (Moodle).
The due dates for the submission of assignments are given in the previous section. Please make every effort to submit work by the due dates. It is your responsibility to structure your study program around assignment deadlines, family, work and other commitments. Factors such as normal work pressures, vacations, etc. are seldom regarded as appropriate reasons for granting extensions. Students are advised to NOT assume that granting of an extension is a matter of course.
Requests for any other extension must be made to the unit lecturer or head tutor at your campus at least two days before the due date. You will be asked to forward original medical certificates in cases of illness, and may be asked to provide other forms of documentation where necessary. A copy of the email or other written communication of an extension must be attached to the assignment submission.
You are, however, generally allowed to submit your work in your allocated laboratory during the week of the due date even if you laboratory is after that due date.Students can expect assignments to be returned within two weeks of the submission date or after receipt, whichever is later.
Assessment for the unit as a whole is in accordance with the provisions of the Monash University Education Policy at http://www.policy.monash.edu/policy-bank/academic/education/assessment/
We will aim to have assignment results made available to you within two weeks after assignment receipt.Plagiarism and cheating are regarded as very serious offences. In cases where cheating has been confirmed, students have been severely penalised, from losing all marks for an assignment, to facing disciplinary action at the Faculty level. While we would wish that all our students adhere to sound ethical conduct and honesty, I will ask you to acquaint yourself with the University Plagiarism policy and procedure (http://www.policy.monash.edu/policy-bank/academic/education/conduct/plagiarism-procedures.html) which applies to students detected plagiarising.
In this University, cheating means seeking to obtain an unfair advantage in any examination or any other written or practical work to be submitted or completed by a student for assessment. It includes the use, or attempted use, of any means to gain an unfair advantage for any assessable work in the unit, where the means is contrary to the instructions for such work.
When you submit an individual assessment item, such as a program, a report, an essay, assignment or other piece of work, under your name you are understood to be stating that this is your own work. If a submission is identical with, or similar to, someone else's work, an assumption of cheating may arise. If you are planning on working with another student, it is acceptable to undertake research together, and discuss problems, but it is not acceptable to jointly develop or share solutions unless this is specified by your lecturer.
Intentionally providing students with your solutions to assignments is classified as "assisting to cheat" and students who do this may be subject to disciplinary action. You should take reasonable care that your solution is not accidentally or deliberately obtained by other students. For example, do not leave copies of your work in progress on the hard drives of shared computers, and do not show your work to other students. If you believe this may have happened, please be sure to contact your lecturer as soon as possible.
Cheating also includes taking into an examination any material contrary to the regulations, including any bilingual dictionary, whether or not with the intention of using it to obtain an advantage.
Plagiarism involves the false representation of another person's ideas, or findings, as your own by either copying material or paraphrasing without citing sources. It is both professional and ethical to reference clearly the ideas and information that you have used from another writer. If the source is not identified, then you have plagiarised work of the other author. Plagiarism is a form of dishonesty that is insulting to the reader and grossly unfair to your student colleagues.
The university requires faculties to keep a simple and confidential register to record counselling to students about plagiarism (e.g. warnings). The register is accessible to Associate Deans Teaching (or nominees) and, where requested, students concerned have access to their own details in the register. The register is to serve as a record of counselling about the nature of plagiarism, not as a record of allegations; and no provision of appeals in relation to the register is necessary or applicable.
The Faculty of Information Technology is committed to the use of non-discriminatory language in all forms of communication. Discriminatory language is that which refers in abusive terms to gender, race, age, sexual orientation, citizenship or nationality, ethnic or language background, physical or mental ability, or political or religious views, or which stereotypes groups in an adverse manner. This is not meant to preclude or inhibit legitimate academic debate on any issue; however, the language used in such debate should be non-discriminatory and sensitive to these matters. It is important to avoid the use of discriminatory language in your communications and written work. The most common form of discriminatory language in academic work tends to be in the area of gender inclusiveness. You are, therefore, requested to check for this and to ensure your work and communications are non-discriminatory in all respects.
Students with disabilities that may disadvantage them in assessment should seek advice from one of the following before completing assessment tasks and examinations:
Deferred assessment (not to be confused with an extension for submission of an assignment) may be granted in cases of extenuating personal circumstances such as serious personal illness or bereavement. Information and forms for Special Consideration and deferred assessment applications are available at http://www.monash.edu.au/exams/special-consideration.html. Contact the Faculty's Student Services staff at your campus for further information and advice.