UWA Logo Computer Science & Software Engineering
Programming Paradigms (CITS3242)
   Faculty Home  |  School Home  |  help3242

Handbook Entry

This unit explores and compares the main alternative paradigms for high-level programming. It considers important modern paradigms such as functional programming, logic programming and concurrent programming, and compares these with the mainstream paradigms of imperative programming and object-oriented programming. It considers past and future trends in programming paradigms and explores the motivation for each paradigm, the concepts which define it, and how each paradigm can be used in practice to complete programming tasks. It also compares the advantages of each paradigm in the software production process, with particular emphasis on productivity, scalability, program behaviour, and the correctness of programs. The unit focuses on both fundamental concepts and practical software development, with the former enabling the latter.

Unit information for 2009:


Unit coordination and assessment:

Coordination: Dr. Rowan Davies, rowan@csse.uwa.edu.au, Office: CSSE 2.16
Discussion forum: help3242
Lecture times: Tuesday 12noon and Thursday 12noon each week
in the Webb LT (Geography G.21).
Labs: Thursday 3-5pm
in CSSE Lab 2.03.
Assessment: 40% Project (due week 12)
60% Exam, 2 hours

Laboratory and project work:

  • Starting in week 2, there will be weekly 2 hour lab sessions in CSSE lab 2.03.

  • We will programming mostly with Microsoft's multi-paradigm language F#, using Visual Studio.

  • There will be weekly lab sheets for the first half of semester, followed by a project worth 40% in the second half.
  • The project will be done in pairs, and you are encouraged to work on the labs in pairs also.


Recommended Reading:

You may find the following useful to supplement the lecture notes.
Expert F#
Expert F#
Don Syme, Adam Granicz and Antonio Cisternino
Apress 2007
http://www.apress.com/book/view/1590598504

[Covers F#, functional programming and some concurrent programming. Check the preview on Google books.]

Web Resources:

See the schedule page for web resources.


Software:

If you want to work on the labs at home or on a laptop, you will need to install the following:
  • A version of Visual Studio 2008 (install this first).
    • You can get the professional version via the MSDNAA (see your email also) - it is about 4GB, but you can download it and write it to a DVD or usb drive in the labs, and it won't count towards your quota. MSDN library for Visual Studio 2008 is also good to have, as is SP1 for VS.
    • The Visual Studio Shell (Integrated Mode) is a hugely cut down version that is sufficient for this unit. (180MB, in the zip below, or here)
  • The F# September 2008 Community Technology Preview (CTP). (13MB, in the zip below, or here.)
  • The Parallel Extensions for .Net CTP. (3MB, in the zip below, or here.)
A zip file with Visual Studio Shell and the two CTP is available as a local cache: VSS+F#+Parallel.
Top of Page
CRICOS Provider Code: 00126G