[The University of New South Wales]

COMP1711
Triple M rocks Higher Comp 1A
2004 Session 1



School of Computer Science and Engineering
The University of New South Wales
Sydney Australia

Subject Schedule

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 
tute | lab
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.
* Extension lectures are optional lectures for interested students. Non 1711 students may also attend. The material covered is not examinable. Schedule and topics are provisional. Further lectures may be added depending on demand and what other interesting things come up over the duration of the session.

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.

1711 Homepage last modified 29 May 2004 | maintained by richard buckland