|
Foundations of Computer Science (230.123)
6 points / Semester 1
Handbook Description
The official Handbook entry Unit Aims
cs123 aims to teach the basics of good program design through the use of abstraction, decomposition, and simple equational reasoning.
cs123 addresses several generic attributes.
Students develop skills in the identification, formulation and solution of problems; they apply scientific principles and engineering process in the development of software; they gain in-depth technical competence in software development; they develop an understanding of their professional responsibility for producing reliable software; they are encouraged to engage in lifelong learning vis-a-vis other programming languages; they develop the ability to perform effectively as an individual; and they develop the ability to communicate effectively with other people and with the machine.
Teaching Staff
Textbook
The text for cs123 is:
Simon Thompson, Haskell: the Craft of Functional Programming, 2nd ed., Addison-Wesley, 1999, ISBN: 0-201-34275-8
The text is available from United Booksellers, 126 Broadway, Nedlands, for around $80. Three copies are also available in the Reserve Collection in the UPSL.
A complete set of the teaching material (handouts) for the unit will be available from the administration assistant in Room 1.31A from Monday 28 February. Each student is provided with one copy at the beginning of the unit. If you lose your allocated copy, electronic copies will be available from the unit web-page. Note however, that the notes are not a substitute for lecture attendance.
Recommended Reading
The following books have been used as texts in cs120/123 in recent years and would be useful in cs123:
Bird, Introduction to Functional Programming using Haskell, Prentice Hall, 1998
Bird and Wadler, Introduction to Functional Programming, Prentice Hall, 1988
Contact Hours
You are required to attend two lectures, a one-hour tutorial, and one two-hour laboratory session each week.
You should visit the UWA Undergraduate Timetabling web-site to determine your allocated tutorial and laboratory session.
Supervised tutorials and labs will start in Week 2.
It is expected that you will need to undertake additional study to make satisfactory progress in cs123.
One additional hour of study per formal contact hour is a reasonable estimate.
The unit co-ordinator will be available in his office for consultation on academic matters between 11am to 1pm every Monday during semester.
The unit co-ordindator will also maintain a web page (http://undergraduate.csse.uwa.edu.au/units/230.123/noticeboard.html) that will be used to distribute information about cs123.
The web page will be used to make important announcements about all aspects of cs123, including announcements about deadlines and assessment.
You are expected to check this web page frequently for new announcements.
A web-based help forum will also be used in this unit.
The help123 electronic forum is provided to allow students and staff to share problems and solutions relating to the content of the unit.
The URL for the help123 forum is: http://www.csse.uwa.edu.au/run/help123.
Messages and replies can be posted to the help forum by sending email to help123@csse.uwa.edu.au.
Email sent to this email alias will be listed and archived on the help123 forum for all to read and review.
Feel free to post details of problems (or solutions to questions!) to the forum, but please remember to first check the forum before posting to see whether your question has been encountered before.
Importantly, do not post code to the help123 forum.
Important announcements and messages about the unit will also be posted to the help123 forum.
Announcements in cs123 will be made in three places:
When an announcement has been made in these three forums it will be assumed that you are aware of it.
Lecture Details
The lecture material in 2005 will cover the following topics, roughly in the order given:
| Topic |
Details |
| 1 |
Introduction |
| 2 |
Functional programming & Haskell |
| 3 |
Basic data types: numbers |
| 4 |
Basic data types: Booleans and characters |
| 5 |
Strings |
| 6 |
Tuples |
| 7 |
Program correctness |
| 8 |
Lists |
| 9 |
List comprehensions |
| 10 |
List functions |
| 11 |
Example: supermarket checkout |
| 12 |
Higher-order list functions |
| 13 |
Functions and types |
| 14 |
Types, classes, and errors |
| 15 |
Mid-semester test |
| 16 |
Recursion over natural numbers |
| 17 |
Recursion over lists |
| 18 |
Recursion with auxiliary definitions |
| 19 |
Lazy evaluation and infinite lists |
| 20 |
Mathematical induction |
| 21 |
Induction over lists |
| 22 |
User-defined data types |
| 23 |
Polymorphic and recursive data types |
| 24 |
Revision |
Assessment
The assessment scheme for cs123 in 2005 consists of:
- one in-lab programming test,
- one in-lecture mid-semester test,
- one individual programming assignment, and
- a two-hour examination in June.
Students who do not obtain a mark of at least 40% (i.e. 24/60) in the examination will be deemed to have failed cs123.
| Assessment |
% of final mark |
Assessment Due Dates |
| In-lab programming test |
10% |
Week starting 18 April |
| Mid-semester test |
15% |
28 April |
| Assignment |
15% |
3 June |
| Examination |
60% |
June exam period |
Unsatisfactory Progress
Any student who does not demonstrate satisfactory progress in this
unit, as defined in the FECM
Policy on Assessment Practices and Procedures, may be refused admission to the
final examinations. The final deadline for notification of unsatisfactory progress is the
last day of Week 10.
Penalties
The School of Computer Science and Software Engineering has adopted a policy on
minimum penalties for late items of assessment.
This is the default policy of all units unless indicated otherwise, in writing, by the
specific unit coordinator.
This policy shall apply to all items of continuous assessment, whether
submitted either physically or electronically. Immediately after the submission deadline for an item of continuous
assessment, a penalty of 20 percent will be applied PER DAY or PART THEREOF.
The minimum mark possible for late submission is zero. The
percentage is based on the item´s total contribution to the unit´s
assessment. For example, a project contributing 40% to the unit´s
assessment will incur a penalty of 8 marks for each day late until it is submitted or
a mark of zero results.
A more detailed description is given in this School´s Policy on
Late Submission. The Faculty does have an appeals procedure, the details of which can found at the Policy for Appeals.
Plagiarism
Plagiarism is broadly defined to be when any portion
of the work presented for assessment, can be attributed
to another party. The student making the submission should acknowledge
what aspects of the presented work is not directly derived by
them. For the purposes of plagiarism it is irrelevant that you
have been given permission by someone to copy their work
and present it as your own.
You are directed to the School of Computer Science and Software Engineering Policy on Plagiarism and the Faculty of Engineering,Computing and Mathematics Policy on Plagiarism.
Faculty Scaling
Final assessment is subject to the Faculty Scaling Policy.
This information is correct as at 16-Feb-2005, but is subject
to change from time to time. In particular, The University
reserves the right to change the content and/or method of
presentation and/or the method of assessment of any unit of
study, to withdraw any unit of study or programme, and/or to
vary arrangements for any programme.
Copyright© 2005 School of Computer Science, & Software Engineering
The University of Western Australia
CRICOS Provider Code: 00126G
Last updated: 16-Feb-2005 |