COMP1711
|
|
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 | Extension Lecture* | Other | |
---|---|---|---|---|---|
Programming in the Small | |||||
1 (1 March) |
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
wiki |
Scavenger hunt | | |
2 (8 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 wiki | Tutorials and Labs commence Task 1 issued (end of week) | ||
3 (15 March) |
Lists : ++ , more programming with lists, Haskell list functions, sorting, Associativity, precedence. |
notes |
files tute | lab wiki | Teaching Consultations Commence | ||
4 (22 March) |
Design tuples, patterns, multiple definitions of a function. Top down design. I/O vs Input/Output, side effects, pattern matching with list and tuples. |
notes |
files tute | lab wiki |
Alan Turing
(AI, crypto, computability) |
Task 1 due | |
5 (29 march) |
Types
User-defined data types, pattern matching on data types, deriving Eq, Ord, Show. Recursive types. |
notes |
files tute | lab wiki | Donald Knuth (Algorithms, tex, metafont) |
||
6 (5 April) |
Style, Debugging, Testing Bugs, problem solving, trees, graphs. |
notes |
files tute | lab wiki | Douglas Hofstadter
(recreational mathematics, godel, escher, bach) | ||
- (12 April) |
Midsession break | ||||
Programming in the Large | |||||
7 (19 April) |
Interfaces Why types? Modules. Importing. Exporting. Interfaces. |
notes |
files tute | lab wiki | Tim Berners-Lee (the www, html, web programming) | Labs and/or Tutes in lyre lab. Bring task 2 code. | |
8 (26 April ) |
ADTs What is abstraction? Why use abstraction? How to enforce abstraction in Haskell. |
notes |
files tute | lab wiki | Kevin Mitnick (shimomura, the art of deception) | Task 2 due | |
9 (3 May) |
ADTs II Designing the ADT interface. Implementing the ADT type. Implementing the ADT interface functions. Intro to cryptography. HTML. |
notes |
files tute | lab wiki | Project interface due (must be finalised by end of week) | ||
10 (10 May) |
Advanced Types polymorphic types, classes, more recursive types, searching |
notes |
files tute | lab wiki | Ada Lovelace
(babbage, the analytical engine) | ||
11 (17 May) |
Higher Order Functions |
notes |
files tute | lab wiki | Project Inital Submission Competition starts | ||
12 (24 May) |
Fun Stuff: Random numbers, Extreme Programming |
notes |
files tute | lab wiki | Nancy Rutherford (some thoughts about teaching and learning) | Project Final Submission | |
13 (31 May) |
Law, Risks, Ethics |
notes |
files tute | lab wiki | guest extension lecture from an honours student on Simulated Annealing (a clever heuristic approach to combinatorial optimisation) | Last week of competition Brendan Scott on Copyright and IP (he's an eminent IP lawyer). | |
14 (7 June) |
Review & revision |
notes |
files tute | lab wiki | Benjamin Franklin (intellectual property, censorship, scholarship) | Project presentations and marking in labs this week. |
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 29 May 2004 | maintained by richard buckland |