COMP 1711
|
School of Computer Science and
Engineering The University of New South Wales Sydney Australia |
The subject has two main threads: programming in the small, and programming in the large. Although programming in the large uses skills you'll acquire in the programming in the small section it is a whole new discipline. If you have done computing at school or taught yourself programming most probably you will only have been doing programming in the small.
Week (starting monday) |
Topics | Lectures Exercises Solutions | Extension Lecture* | Other | |
---|---|---|---|---|---|
Programming in the Small | |||||
1 (28 Feb) |
Intro Intro to course GHCi as a calculator. Functions, functional programming. Setting up a PC at home. Simple haskell scripts, modules, comments, basic types. |
notes | files | create/activate wiki, forum, & unix accounts. | ||
2 (7 March) |
Recursion Style, offside rule, local definitions (aka where clauses), Alternatives, simple types, compound types, lists, [..] notation, head, tail. Recursion on lists. |
notes | files
tute | lab | Tutorials and Labs commence Task 1 issued (end of week) | ||
3 (14 March) |
Lists : ++ , more programming with lists, Haskell list functions. Unit testing. More style. Multiple definitions of a function, simple pattern matching |
notes | files
tute | lab | |||
4 (21 March) |
Design patterns, multiple definitions of a function. Referential transparency. Task 1. |
notes | files
tute | lab |
Alan Turing
(AI, crypto, computability) |
Task 1 due | |
- (28 March) |
Midsession break | ||||
5 (4 April) |
Algorithms and Data Structures Algorithms, Data structures. Intro to languages. trees, graphs. simulation, state space searching. brute force, dfs, bfs, others... Top Down design. Compilation. Pattern matching with list and tuples. Pattern matching in where clauses. |
notes | files
tute | lab | Security (julius caesar, cliff stoll, kevin mitnick) | Big lab: HTML & CGI (1) | |
6 (11 April) |
Types
User-defined data types, pattern matching on data types, deriving Eq, Ord, Show. polymorphism, classes Exception handling, flag values. |
notes | files
tute | lab | Big lab: CGI (2) | ||
7 (18 April) |
Algorithms Sorting, Searching, Efficiency, Complexity. Task 2 hints. |
notes | files
tute | lab | Advanced State Space Searching | Yellow Network | |
Programming in the Large | |||||
8 (25 April ) |
Introduction Programming in the large: Interfaces. Bugs. Why types? Modules. |
notes | files
tute | lab | More searching: branch and bound. Heuristics | Black Network Task 2 due |
|
9 (2 May) |
ADTs Breaking into modules Importing. Exporting. What is abstraction? Why use abstraction? How to enforce abstraction in Haskell. Designing the ADT interface. Implementing the ADT type. Implementing the ADT interface functions. |
notes | files
tute | lab | Week 8 revision | Project: your group's interface due (friday) | |
10 (9 May) |
Advanced Types Recursive types. I/O vs Input/Output, side effects. Programming Languages |
notes | files
tute | lab | Douglas Hofstadter
(recreational mathematics, godel, escher, bach) |
||
11 (16 May) |
Higher Order Functions |
notes | files
tute | lab | Ada Lovelace
(babbage, the analytical engine) | Project inital submission
(earlybird competition starts) | |
12 (23 May) |
Fun Stuff Random numbers, Extreme Programming |
notes | files
tute | lab | Nancy Rutherford (some thoughts about teaching and learning) | ||
13 (30 May) |
Law, Risks, Ethics |
notes | files
tute | lab | Thomas Jefferson (intellectual property, censorship, scholarship) | Project individual submission (monday) - no extensions
Project presentations and marking (in tute-labs) | |
14 (6 June) |
Review & revision |
notes | files
tute | lab |
Current ideas for topics include: Cryptography, security, algorithms, famous computer scientists, folklore, godel, oo programming, random number generators, networking, web programming, unix scripting, category theory, concurrency, malware: virii/worms/trojans, quantum computing.
This is only a provisional timetable with some vacent spots. I'm happy to change this to cover the interests of 1711 students as they progress thru the subject. Timetable subject to change at short notice. Check back here and in stopPress shortly before each scheduled extension lecture for the latest info. You can suggest or register an interest in a topic on the forum.
last modified 28 April 2005 | maintained by richard buckland |