RMIT-Department of Computer Science

CS108 Programming Principles 1A

Subject Guide-First Semester, 2001

Duration: 1 semester

Mode: Internal

Credit Points: 12


The subject is delivered on

Timetabled Contact (Teacher Directed Hours): 64 hours, comprising 26 hours of lectures, 12 hours of tutorial and 26 hours of laboratory work.

Hours (Student Directed Hours): a total of 5 hours per week for 12 weeks, covering practical work material and assignment work.


Subject Description

The subject is an introduction to 'programming in the small' using an object oriented language. The subject is dedicated to the introduction of object-oriented programming principles, using the Java programming language. The subject assumes no previous knowledge of programming.

There are 5 formal contact hours a week, divided into 2-hour lectures, 1-hour tutorial work, and 2 hours of supervised laboratory work. The lectures are devoted to the presentation and discussion of the main concepts, while the tutorials and laboratory work are dedicated to students working through a set of exercises to clarify concepts, ensure understanding and develop programming skills. The lecture material, contained in the subject Lecture Notes, include the presentation and discussion of the main concepts, while the tutorials and laboratory work are dedicated to students working through a set of exercises to clarify concepts, ensure understanding and develop programming skills. Additional information about the subject can be found on the subject Web page, accessible via:

Tutorial work must be complemented by the use of WebLearn's quiz facility as indicated in the Student Notes and the on-line site. Students are allowed (and encouraged) to use this facility at all times to study the corresponding topics as indicated in the lecture notes. Students will be assumed to have studied the lecture material and have attempted the tutorial and lab work provided before attending the corresponding practical work class. Formal presentations by tutors or lab assistants will be made only as required, this time will be devoted mostly to answering students questions rather that to presenting material.

During a selected lab class of weeks 5 and 12 students will sit a 20 minutes WebLearn test, each worth 5%, for a total of 10% of the total assessment. Students have to enrol in a WebLearn group to sit these tests, which are conducted at the specified times in the Department Labs (See schedule below).

Selected parts of the students' laboratory work will be submitted for marking by tutors, for a total of 28% of the total assessment. There will be a mid-semester test in week 8 making up 12% of the total assessment. The lab sheet clearly indicates what is to be submitted and the due dates for each assignment. For a complete schedule of submission dates see section Important Dates below. Assignment submissions will only be accepted via the WebLearn electronic submission facility.

All assessment will be closely related to the notes material, tutorials, laboratory work, and WebLearn quizzes. Your assignment submissions should be returned to you marked, and your mark recorded in the database, on a 1 week turnaround. If this doesn't happen, please contact the subject leader.


Teaching and Learning Style

Students are required to study new material from the notes and the Web site, and read the indicated sections of the book to complement their learning. Therefore, having the prescribed book is compulsory. Tutorials and laboratory work are closely inter-related, and closely related to the lecture and on-line material. Tutorials are to be solved with 'pencil and paper', that is, no computer work is usually necessary, and will be conducted in a normal classroom. Some tutorials are used to develop material to be used later on a programming assignment. Lab classes are conducted in a computer laboratory, and consist of applying the concepts discussed to the writing of Java programs. All work is to be attempted by the students before attending the corresponding class, and should be performed individually.

To do well in this subject it is important that the students actively engage in the learning activities provided. Reading the notes, using the on-line site, attempting WebLearn quizzes, carefully solving the tutorial and lab problems individually, etc., will ensure that students are properly prepared to face the assignments, tests and final examination. The formal contact classes should be used mostly for consultation.


General Educational Aims:

To introduce problem solving and "programming-in-the small" within the context of the object oriented programming paradigm.

To introduce students to the use of object oriented classes, objects and methods.

To introduce some standard control structures for programming of methods within a class

To introduce students to the definition and implementation of simple classes and objects

To develop skills for:

analysing and designing object oriented solutions for small problems;

implementing the solutions in an object oriented language;

testing the solutions developed.


Specific Objectives:

To use standard program design techniques; apply the object oriented software development as a framework for "programming-in-the large"; utilise debugging and testing phases. More specifically, at the conclusion of this subject, the student should:

describe the object oriented program development framework;


Prerequisites: None



WebLearn Tests 10%

Laboratory Exercises 28%

Mid-semester Test 12%


Total Prac Work 50%

Examination (3 hours) 50%


Total for Subject 100%

While a minimum attendance standard is not compulsory, non-attendance may seriously jeopardise the chances of success in this subject. Non-attendance at an assessment will result in failure of that assessment. Where visa conditions apply, attendance is compulsory.

Your percentage result for the subject is the sum of the above components, unless you obtain less than 40% (20/50) on the practical work or final examination. If you obtain less than 40% on either component, your result for the subject will be the lesser percentage of both components. If you obtain 40% or more on both components, your total percentage result for the subject determines your grade for the subject. See the following examples:

Total Prac Work

Total Examination

Final Mark









15/50 -> 30%



15/50 -> 30%


Submission Dates

Submission dates for assignments may be altered by the subject leader with the agreement of the majority of the students enrolled in the class concerned. Any alterations to submission dates will be notified to all students concerned by the student news group rmit.cs.CS108. Students must read this news group daily for all announcements related to the subject. Students are also required to check their e-mail daily.


Important things that you have to remember about the subject and WebLearn

About the Subject Leader:

Charles Theva Room 251.2.27 (Bundoora East campus) Phone 9925 6123

Room 10.7.36 (City campus) Phone 9925 3266

Email: (do not use any other email address)

About the Head Tutor:

Craig Hamilton


About the subject:

The subject consists of two components: a practical work component and a final examination, each worth 50 marks. To pass the subject you have to get at least 40% (20/50) in both components.

The subject includes 2 WebLearn tests, 4 lab work submissions and 1 mid-semester test.

To be able to use the WebLearn system for this subject you need to have an account on the subject CS108_01_2001. If you don't have one, go to and request one immediately. After some delay you will get an email with your account details.

WebLearn tests are on weeks 5 and 12 of the semester. The combined value of these tests is 10 marks.

About the WebLearn quizzes:

Quizzes can be taken any time as soon as they are available.

Quizzes are generated at random when requested by students, so if you want to practice you can generate and solve as many as you like.

Quizzes are discarded when submitted, you would not be able to repeat a quiz.

Quizzes are marked immediately; the software will tell you whether or not your answer is correct, and most of the time you will get a feedback message. The software will not tell you which one is the correct answer, though. If you cannot understand why your answer is incorrect, see your tutor for explanation, this is very important for your learning.

Quizzes can be taken in any RMIT lab at either campus, at home, office, etc., only access to a standard browser is necessary.

About the WebLearn tests:

Tests are to be taken at the University labs only, at the prescribed dates and times.

Tests are only enabled during test periods.

You are allowed to use the lecture notes and the prescribed book during the tests.

To submit a test you'll need a one-off submission password that your lab assistant will give you when you come in.

Tests are marked all together at the end of the test period. Your results are e-mailed to you, and you can track your test results using the facility provided.

About the lab submissions:

Your have to use the WebLearn Electronic Submission to submit your lab assignments. No other method of submission will be accepted.

You can re-submit an assignment if you want to do so (before the due date). Simply use the electronic submission again with the new files, the new version of the files will overwrite the old. After the due date, submissions will be accepted by the system, but they will only be marked if authorised by the subject leader.

Your lab submissions will be marked by the tutor to whom you submitted the work. You are supposed to get your mark back and your mark recorded in the database on a 1 week turnaround. If this doesn't happen, please contact the subject leader.

About the mid-semester test:

This test will be taken in week 8 immediately after the lecture. Students will be expected to write simple programs and code fragments.


Penalties for late submission

Late assignments are not accepted unless authorised by the subject leader. In case of a valid reason, such as illness, an extension can be granted for the duration of the illness. Students must provide a medical certificate stating the duration of their illness.


Academic Dishonesty

Students are reminded that cheating, fabrication or falsification of data, and plagiarism are not acceptable. (To plagiarise is to submit work in your name, but which is proved to be copied or derived in part or total from another person's work.) Students are responsible for ensuring that their work is secure and not promulgated. Students who are alleged to have plagiarised or who have allegedly allowed their work to be copied will face disciplinary proceedings. Students are also expected to be aware of their individual rights and responsibilities regarding the proper use of copyright material.


Assessment Grading

80 100% HD High Distinction

70 79% DI Distinction
60 69% CR Credit
50 59% PA Pass
0 49% NN Fail



Prescribed: CS108 Student Notes, Department of Computer Science, RMIT. Volumes I and II.

Cay Horstmann, Computing Concepts with Java 2 Essentials, 2nd Edition, Wiley, 2000, ISBN 0-471-34609-8.

Recommended Reference: Lewis J., Loftus W., Java Software Solutions, 2nd Edition, Addison Wesley, 2000 , ISBN 0-201-61271-2



See the attached weekly plan. Although every effort will be made to adhere to the weekly plan, the Department reserves the right to make changes as necessary.






Introduction, programming languages, OO programming, some simple examples

No tutorial

Intro to WebLearn


The int data type. Variables, identifiers, statements. Initialisation. Operators and operator precedence.

Basic syntax, identifiers

Creating and testing simple programs


Algorithms and Stepwise refinements. Decisions.

Operators, operator precedence, variables

Programs using simple input/ouput



Simple if..then..else

Simple if..then..else


Writing simple classes

Using for loops, while loops.

Simple programs using loops


Arrays, methods and parameters

Writing simple classes

Writing simple classes


Inheritance and Polymorphism

Using simple arrays

Manipulating objects through an array


More modifiers: static and final.

Method overriding

Extending classes


Introduction to arrays, examples. Strings revisited.

Using modifiers

Using staic methods and static variables.


Exception handling

Arrays and arrays as parameters



Building a Generic Container class

Exception Handling mechanism

Creating and using an exception class


File manipulation

Container class

Building and using a generic container class


Enhanced class design

Text files manipulation

Text files and arrays manipulation


Important dates, and things to do on these dates

Week 1 starting 26/02/2001

During the first lab session use your DLS connection to access WebLearn, making sure that your password works. Report any problems to the DLS administrators. Read the available information to find out more about WebLearn.

Enroll for your WebLearn test group. Ask the lab assistant for help if necessary.

Week 2 starting 05/03/2001


Week 3 starting 12/03/2001

Chapter 2 assignment must be submitted

Week 4 starting 19/03/2001

First assignment submission due Mon 19/03/2001, 9:30pm.

Last week to pick a group for your test. Enrollments are closed at the end of this week, Friday 23/03/2001, 6pm.


Week 5 starting 26/03/2001

Test Week (WebLearn Test 1)

Chapter 4 assignment must be submitted.

Week 6 starting 02/04/2001

Chapter 5 assignment must be submitted.

Week 7 starting 09/04/2001

Second assignment (Chapter4, Chapter 5) submission due Mon 09/04/2001, 9:30pm.

Week 8 starting 23/04/2001

Mid Semester Test to be conducted in the 2nd lecture hour.

Week 9 starting 30/04/2001

Chapter 8 assignment must be submitted.

Week 10 starting 07/05/2001

Third assignment submission due, Mon 07/05/2001, 9:30pm.

Week 11 starting 14/05/2001

Change of enrolment for test group (if necessary) closes at the end of this week, Friday 18/05/2000, 6pm.

Week 12 starting 21/05/2001

Test Week (WebLearn Test 2)

Week 13 starting 28/05/2001

Fourth (Chapter 12) assignment must be submitted, due Fri 01/06/2001, 9:30pm.