Announcements Term 3, 2019 Announcements Course Outline Course Schedule Glossary Haskell Resources Liam's Books Moodle - Recordings Piazza Forum Setting up Haskell Assignment 1 Code Spec Assignment 2 Code Resources Spec Final Exam Sample Exam Sample Solutions Midsession Exam Sample Exam Sample Solutions Week 1 Tute Monday Code Slides Condensed Slides Friday Board Slides Condensed Slides Week 2 Tute Monday Board Exercise Solutions Exercises M → L Proof Notes Slides Condensed Slides Friday Code Exercise Solutions Exercises Notes Slides Condensed Slides Week 3 Tute Monday Board Code Exercise Solutions Exercises Notes Proof Slides Condensed Slides Friday Slides Condensed Slides Week 4 Tute Week 5 Tute Monday Code Slides Condensed Slides Friday Notes Slides Condensed Slides Week 6 Tute Monday Code Exercise Solutions Exercises Notes Slides Condensed Slides Friday Slides Condensed Slides Week 7 Tute Friday Exercise Solutions Exercises Notes Slides Condensed Slides Week 8 Tute Monday Exercises Notes Slides Condensed Slides Friday Board Notes Polymorphism Notes TyInf Slides Condensed Slides Week 9 Tute Monday Code Slides Condensed Slides Type Inference Continued Friday Board Code Notes Overloading Notes Subtyping Slides Condensed Slides Week 10 Tute Monday Slides Condensed Slides Friday Slides Condensed Slides Announcements 1 MyExperience call to action [2019-11-25 Mon 15:13] Currently only 34 of you have filled out your myExperience surveys. As mentioned in the lecture, one of your participation marks is contingent on the response rate of this questionnaire. Unless the response rate of the survey is over 50%, you will not receive full participation marks. This is vitally important as the University uses these surveys to evaluate teaching staff. Even if you don't have any particular comments, just filling out the survey helps us a great deal. Student evaluations of teaching are often influenced by students' unconscious and unintentional biases, such as those regarding race or gender of the instructor. As you fill out the course evaluation please keep this in mind and make an effort to resist stereotypes about teaching staff. https://myexperience.unsw.edu.au In addition, I made a post on Piazza asking some more specific questions that you can answer if you like. We'll use this information to improve future iterations of the course. https://piazza.com/class/k0hip8qsu7g7nq?cid=142 2 Assignment 2 Submission enabled. [2019-11-11 Mon 16:00] Submission is now enabled. You are now able to submit just the file TyInfer.hs by typing:
give cs3161 TyInfer TyInfer.hs
on a CSE terminal. Dry-run tests should run. 3 Assignment 2 Released [2019-11-09 Sat 13:30] I have released assignment 2. It is due at 11am on Monday, 25th of November. You can find the spec and code on the sidebar. I haven't set up submission yet, but once it is available you will be able to submit just the file TyInfer.hs by typing:
give cs3161 TyInfer TyInfer.hs
4 Errata in Week 8 Monday Slides [2019-11-05 Tue 12:30] Hi all, the inference rules for sum type constructors (InL and InR) in the slides used in the monday lecture were incorrect (the constructors appeared on the wrong side of the rule). I've corrected the error. Sorry for any confusion! 5 Lecture Cancelled [2019-10-27 Sun 21:00] I am very sick with a sore throat that makes me unable to speak. For this reason, tomorrow's lecture (28th October) will be cancelled. We will cover tomorrow's topics on Friday instead, and catch up later on in the course schedule. 6 Assignment 1 Released [2019-10-17 Thu 17:00] I have released assignment 1. It is due at 11am on Monday, 4th of November. You can find the spec and code on the sidebar. Submit just the file Evaluator.hs by typing:
give cs3161 Eval Evaluator.hs
7 Midsession Marked [2019-10-12 Sat 20:31] I have marked your midsession exams just in time for the census date tomorrow. You can check your marks by running the same command from a CSE terminal:
3161 classrun -sturec
The mark Midsession, out of 40, should contain your mark. If your mark seems wildly different to your expectation, send me an email and I'll make sure no clerical error has taken place. 8 Midsession Exam [2019-09-29 Sun 15:00] The sample midsession has been released. The midsession exam is on the 11th of October, Friday, at 11am (the normal lecture time). Some of you are allocated to the normal lecture theatre (OMB 149) and others are allocated to another venue (Central Lecture Block 2). You can find out which by looking at the ExamVenue field visible from running:
3161 classrun -sturec
From a CSE terminal. Please check the venue before arriving at the exam. 9 What is COMP3161/9164 about? [2019-09-08 Sun 17:00] Some students have asked me to "sell" them on COMP3161. Here's a short description you can use to explain this course to your friends. COMP3161/9164 is a course that teaches you the theory and practice behind the design and implementation of programming languages and type systems. In this course, you will learn the mathematical models we use to define languages, both general purpose and domain specific, and how to understand and compare language features. You will also get to put these models into practice with assignments involving Haskell implementations of a simple functional programming language. We will describe and analyse many different type system features, ranging from overloading and subtyping (as found in OO languages like Java), to linear and substructural types (as found in languages like Rust), to algebraic data types, parametric polymorphism and type inference (as found in languages like Haskell), to existential types and module systems (as found in languages like ML). We will also look at many dynamic features of languages, such as run-time memory management, abstract and virtual machines, exceptions, concurrency and parallelism. While the assignments are in Haskell, no previous knowledge of Haskell is assumed or required. Furthermore, this course does involve a fair bit of theory, but all the mathematical tools we use in the course are taught within the course – it’s calibrated to be an ideal introduction to the theoretical side of programming languages. If you enjoyed any of: COMP3141, COMP3131, COMP2111, COMP6752, COMP4161, COMP3153/9153 or COMP3151/9151, you are likely to enjoy this course. If you haven’t done any of those courses, don’t panic! COMP3161/9164 is a great starting point. 2019-12-14 Sat 23:42 Announcements RSS