433-141

Computing Fundamentals A

Semester 1, 2002


This file contains the lecture slides that were used during the introductory lectures in 433-141 in semester 1, 2002.


Staff

Alistair Moffat (Lecturer, Coordinator)
Room L2.15, SEECS Building, Bouverie St,
alistair@cs.mu.oz.au

Martin Sulzmann (Lecturer)
Room L2.09, SEECS Building, Bouverie St,
sulzmann@cs.mu.oz.au

Chris McCarthy (Tutor-in-charge)
Room L1.18, SEECS Building, Bouverie St,
cdmcc@cs.mu.oz.au


Students

People who want to include a substantial computing component in their degree program, through to second-year at least.

Otherwise, consider taking 433-171 Introduction to Programming (teaches many of the same skills, but uses the language C).

Caution: Analysis of past performance shows that students with an ENTER less than 88, and/or a Math Methods mark less than 34, have difficulty passing 433-141 in their first semester of study.

Students in this category are strongly advised to seek course advice, with a view to undertaking 433-171 instead.

With additional non-enrolled study at the end of second semester, the sequence 171+141 can still lead to second year subjects.


Textbook

The prescribed text is Haskell: The Craft of Functional Programming by Simon Thompson, Addison-Wesley, second edition, 1999, ISBN 0-201-34275-8. All students should possess their own copy. The text is also on reserve in the Engineering Library.

Students will also need their own copy of 433-141 Subject Notes and Exercises and Student Manual Volume A, both of which are available from the University Bookroom.

Students with access to a Windows or Linux computer with a CD drive should familiarise themselves with the contents of the Student Disk, available from the Department for $3. The disk includes a public domain Haskell system (including manual pages), an editor, and an electronic copy of the Student Manual. (It also includes a C compiler for use in 433-142 Computing Fundamentals B.)


Home Page

The subject home page is at www.cs.mu.oz.au/141/.

The web page lists the material covered each week, and specifies tutorial and laboratory exercises and other information relevant to the running of the subject.

It also lists a range of mechanisms for obtaining help.

You should visit the subject web page at least once a week to ensure that you are up to date.

Bookmark it the first time you go there.


Today's Checklist

Things to do before Wednesday's lecture:

Wednesday's lecture will run through the subject administration (tute and lab timetables, locations, schedule) and assessment details.

Tutes and labs don't start until next week, so no need to panic about them yet.


Discussion Problems

1. Two numbers are amicable if their sums of factors (excluding themselves, but including one) add up to each other. What is the first pair of amicable numbers?

2. The GCD of a set of numbers is the largest value that evenly divids every number in the set. What is the GCD of [518,814,2812,3182,2035]?

3. The permutations of a set are all possible orderings of the items in the set. What are the permutations of [1,2,3,4], in sorted order?

4. How many words can you make out of ``melbourneuniversity''?

Rather than solve the four specific problem instances, can you describe general rules -- an algorithm -- that can be applied to any instance of these problems?


Subject Objectives

The Undergraduate Handbook page for this subject is at www.unimelb.edu.au/HB/subjects/433-141.html. It says:

The objective of this subject is for students to develop an understanding of approaches to solving moderately complex problems with computers; to develop knowledge of the processes of developing programs, including specification, design and testing; and to be able to demonstrate proficiency in a high level functional programming language (Haskell). Topics covered include algorithmic problem solving: problem specification, algorithm design, abstraction, programming languages; fundamental data structures: numbers, truth values, characters, lists, trees; fundamental program structures: recursion, higher order functions; and fundamental algorithms.


Assessment

In 2002:

Students who fail the exam hurdle will have their mark adjusted so as to ensure that they fail the subject as a whole by at least the amount by which they failed the hurdle. For example, a student with a mark of 28/75 for the exam (two marks short of the hurdle), 12/15 for the mid-semester test, and 10/10 for lab attendance will be assigned a final mark of 48 (two marks short of a pass).

Note that, while the project is assigned zero marks, it will be tested in the mid-term and/or final exam, and it is in your interests to complete it. Your mark in the project will also be retained as part of our records.

In this subject (and this subject only), programming work may be undertaken in pairs or in small groups. You will benefit greatly from being free to discuss all aspects of this subject with other students.


Cheating

In most other subjects in the Department assessed work is expected to be done on an individual basis. Students who submit for assessment the work of other students will be penalised by the Department and risk formal prosecution under the University's Disciplinary Regulations. The University does not tolerate students who attempt to gain an unfair advantage through plagiarism, or students who help others gain such an advantage.

Sophisticated similarity checking software is run over all pairs of student submissions in subjects where individual work is required.

As a result of our use of this software, in 1999, 2000, and 2001 a considerable number of students were punished under the discipline regulations.


Subject Structure

The tuition consists of:

Students should attend all of their scheduled classes. Casual non-attendance has a nasty habit of leading to habitual non-attendance and eventual failure.

Tutorials and labclasses commence in the second week of semester.

The Friday lectures will be in the Asia Center unless you are explicitly told otherwise. Students are also expected to undertake home study, to ensure that they remain up to date with the material presented in lectures; and to prepare for tutorials and laboratory classes prior to attending.

As a rough guide, approximately one hour should be spent consolidating each lecture presentation within 24 hours of that lecture; and approximately one hour should be spent preparing for each tutorial and laboratory class.

In total, about 5--6 hours of private study per week is necessary in addition to the contact hours. Additional time will be required when the programming assignment is active.


Computer Accounts

To create your computer account, go to the Engineering Computing Resource (ECR) Laboratory on the second level of the Old Engineering Building.

Follow the instructions that are posted there.

This needs to be done by the end of week one of semester.

University computer accounts may only be used for University business. A ``registration'' system is in place to monitor Web traffic, and students who use resources inappropriately risk having their accounts closed or other penalties applied.

You should also access your University email account, even if only to install a forwarding address to ECR or some other account. The University will from time to time contact you via the University email address.


Tutorials and Laboratory Enrolment

This is done via the Alloc8 class assignment mechanism, accessed from the Faculty of Engineering web site at www.eng.mu.oz.au/courses/ugrad/firstyear/.

Follow the instructions to determine your class times.

Tutorials and labclasses commence in the second week of semester, which is next week, which means there is no need to panic about times and locations until the end of this week.

Note that Monday 11 March is not a University holiday -- all classes proceed as timetabled. (Public transport users should allow extra travel time.)


When you have Questions

Help can be obtained from:


Minimum Expectations

To pass the subject, you will need to demonstrate the following skills:

If you can master these, you will pass.


University Life

Many differences from school, and forewarned is (partially) forearmed:

Bottom line: you will be treated as adults, with all the responsibility and self-discipline that entails.

Work hard at your study, but not at the expense of the University life. See more than the tram stop, the lecture theatres, and the paths that connect them.

Enjoy the University life, but not at the expense of your study. See more than the pubs, the coffee shops, and the paths that connect them.

And make sure you are familiar with the full range of services and facilities available: sporting, cultural, health and counselling, etc. Read the Student Diary from cover to cover.


Mark Distribution: 433-141, Semester 1, 2001

In Semester 1, 2000:


Quality of Teaching Questionnaire

The file www.cs.mu.oz.au/141/qot-141-01.txt summarises the assessment made of this subject by the cohort of students who took this subject in semester 1, 2001.

The first 9 are ``stem'' questions, and are asked University-wide in all subjects.

A QOT Questionnaire will be administered in this subject late in the semester.


Finally...

For most people computing ends up being fun. But everyone goes through a black spot when it isn't. For some it takes a long time indeed for the penny to drop and the fun to start. Just remember that programming is like riding a bike: the only way to build your skills is by actually doing it, and falling off -- perhaps many times -- along the way.

Be patient, and tackle the tutorial and laboratory exercises as they are assigned. Read the text regularly, and revisit periodically the various programs examined in lectures. Ask questions when you are confused; be sure that for each question you ask there will be 10 other people in the class grateful for the answer you generate.

In the end, and with a bit of effort, the fun will be there. Good luck...


Checklist

Things to get done this week:


Department of Computer Science and Software Engineering,
The University of Melbourne.
Last updated: March 4, 2002.