Introduction to Programming
Autumn Term 2005

Rudi Lutz

This web page describes the purpose of the course, and its organisation, and contains a course timetable. It also contains suggestions as to recommended textbooks and other documentation.

Aims and Learning Outcomes

Aims

The aim of this course is to introduce students to programming, and in particular to writing simple Java applications.

Learning Outcomes

On successful completion of this course students should:

The course thus aims to introduce people, who may not have previously done any programming, to a collection of basic programming concepts and techniques, including designing, testing, debugging and documenting programs. We are particularly concerned that students learn not only to write programs but to explain to others how they work.

For both absolute beginners and people with prior computing experience, the course introduces the programming language Java. This language will also be used for other components of the various undergraduate major courses. In particular it will be the primary language used for programming assignments in nearly all first year courses taught by the department of Informatics.

Basic knowledge of NT/Windows2000/XP will be assumed.

General Information

You should have received separate documents telling you about the actual computers you will use and how to log in and get started.

In order to learn to program in Java on this course, you will be using a system called BlueJ. So your main initial task is to work through the exercises in Chapter 1 of the textbook (see below).

NOTE: Java is a very rich language and we cannot possibly cover all its features in this course. However, the references below provide pointers to more advanced facilities for people who wish to explore them.

Tutor for the course

Tutor Room Email
Rudi Lutz PEVENSEY 3 3R346 rudil@sussex.ac.uk

Some lab classes may be supervised by other people.

Teaching methods

Lectures: 3 per week, held at the following times:

Day Time Place
Tuesdays 10.00-11.00 CHI-LT (Chichester 1 1-013)
Thursdays 12.00-1.00 CHI-LT (Chichester 1 1-013)
Fridays 12.00-1.00 CHI-LT (Chichester 1 1-013)

Attendance at lectures is compulsory!

The lectures will cover introductory Java programming, and various topics in general programming. Although the lectures in the earlier part of the course are aimed at students with no (or very little) previous programming experience, it is a fact that most students have very little object-oriented experience, and so should find plenty to challenge them. We also hope that the more experienced students will be willing to help the newcomers to computing.

After the first few weeks one of the 3 lectures each week will be used to go over solutions to the exercises.

Lab Classes

All students on this course will have a supervised lab class every week (in PEV2-5A17/18). Details of the times of your lab class should already have been given to you. Attendance at this lab class is compulsory!

There will also be extra lab classes for people who have not programmed before. Such people will be expected to attend one of these extra classes per week. Arrangements for the extra classes will be announced soon. They will start in weeks 3 or 4.

Practical work

A lot of the work on the course is based on exercises that you should do using the computer. In addition to the timetabled lab. classes you are expected to spend many hours a week using the computer. Programming is a skill which can only be learned by extensive practice, and we recommend that students spend at least 10 hours a week on this (but NOT at the expense of other courses, which should each have the same amount of time spent on them!), especially if you are starting from scratch. Some people find programming very easy to learn and may need to spend less time than this. Others find it quite difficult, and may need to spend more. If you find yourself in this category, do not be discouraged. Nearly everyone gets there in the end!! All students experience problems learning new concepts and skills and it is important not to be discouraged and give up. If you get stuck ask other students, a demonstrator, or a tutor for help.

Exercises will be set during the course, and it is very important that you try to finish these in the time suggested so that you do not fall behind. Details of how to submit assessed work will be given to you in due course.

Assessment

Assessment for this course will be based:

Books

About 5 years ago the Java language underwent a huge change, from Version 1.0 to 1.1. More recently a later version of Java (1.2) was released, and even more recently 1.4 and 1.5. This mostly has just added many more library facilities etc., without substantially changing the nature of the language. We will start using Java 1.4, and possibly switch to Java 1.5 later in the year (this adds extra facilities, but will not invalidate anything you have done up to that point). The important point is to make sure any books you buy are at least for Java 1.2.

Recommended Java Textbooks and Other Resources

The book for this course is: The book below is very highly recommended for people who already know how to program, and will be useful to you once you become more experienced: Finally, there is an on-line Java Tutorial . This is excellent,and I know of several people (not complete beginners though!) who have learnt Java from this source.

Course Outline

The list below gives a provisional list of topics to be covered each week. Some lectures will incorporate important announcements, including changes in later lectures, so if you ever miss a lecture make sure you find out from another student exactly what was said.

WEEK 1
Introduction to course
Objects and Classes
WEEK 2
Class Definitions
Conditional Statements
WEEK 3
Interacting Objects
More on Methods
WEEK 4
First part of assessed assignment due in this week
Collections of Objects
Loops
WEEK 5
Arrays
Using Libraries
WEEK 6
Second part of assessed assignment due in this week
Review of material covered so far
WEEK 7
Third part of assessed assignment due in this week
Testing
Debugging
WEEK 8
Fourth part of assessed assignment due in this week
Designing Classes
Developing Java programs without BlueJ
WEEK 9
Final part of assessed assignment due in this week
Recursion
Miscellaneous
WEEK 10
Review


Rudi Lutz 22 September 2005