Each week of COMP332 has three hours of lecture and a two-hour mixed class. The mixed classes will require a mixture of tutorial-style and practical work. Mixed classes start in Week 1.
REQUIRED AND RECOMMENDED TEXTS AND/OR MATERIALS
There is no required text. We will provide notes or references to freely available materials where relevant.
The free book Creative Scala (https://www.creativescala.org) is a clear introduction to functional programming in Scala and we will use the Doodle graphics library described in that book to illustrate Scala programming principles.
Students may find it useful to consult one of the many books that are available on the programming languages topic. The following books are among those that are available in the Macquarie University Library:
- Programming Language Pragmatics. Scott.
- Principles of programming languages: design, evaluation, and implementation. MacLennan.
- Programming languages: design and implementation. Pratt and Zelkowitz.
- Concepts of programming languages. Sebesta.
- Programming languages: concepts and constructs. Sethi.
- Introduction to compiler construction. Waite and Carter.
- Compilers: principles, techniques and tools. Aho, Sethi, and Ullman.
- Modern compiler implementation in Java. Appel.
UNIT WEBPAGE AND TECHNOLOGY USED AND REQUIRED
COMP332 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.
The practical work in this unit involves programming in the Scala language (http://www.scala-lang.org) which will give students experience with modern programming language features that we expect to see in mainstream languages in the future.
We will also use the Kiama language processing library (https://bitbucket.org/inkytonik/kiama) that is being developed by our Programming Languages and Verification Research Group. Kiama provides high-level facilities for writing processors such as compilers in Scala and makes it possible for students to implement of a language from scratch within the semester.
Instructions will be provided on how to use Scala and Kiama on the laboratory machines and how to download it for use on your own machines