CSE2305 - Object-Oriented Software Engineering
course overview and administration

CSE2305
Object-Oriented Software Engineering

Please read these notes carefully: they contain important information regarding this course, including assignment and assessment details, and what you need to achieve in order to pass the subject.

 

Introduction

This subject introduces you to the object-oriented programming paradigm, and to the basic concepts of the discipline called "Software Engineering¤".

Object-oriented programming is an approach to writing software that is based around the idea of building specific data structures to represent the parts of a problem (and/or the parts of a solution), and then defining how these data structures inter-relate and interact.

Software engineering¤ is the study and practice of a collection of concepts, techniques and tools that enable programmers to design, build and maintain large software systems in a reliable and cost-effective way.


Synopsis


Course Overview

This course introduces key concepts in object-oriented programming and software engineering. Topics covered include data abstraction and encapsulation; polymorphism; object-oriented analysis and design methods; object-oriented programming in the C++ programming language; templates, design patterns; an introduction to UML; documentation; debugging; metrics; formal specification; process and project management issues.


Prerequisite Knowledge Expected

Students enrolled in CSE2305 are expected to be familiar with, and competent in, the C programming language. They should also have an understanding of basic data-structures and algorithms (e.g. lists, trees, sorting algorithms). Students are also expected to be familiar with performing basic tasks in the Linux (UNIX) operating system, such as login, directory navigation and file management, text editing, process control and basic shell scripting.

You may find it beneficial to review material from the prerequisite subjects (CSE1303 or CSC1030) for this course before the first week of semester. The resources page contains useful information and tutorials in this area.


Course Objectives

Successful completion of this course should enable you to:


How the Course is Structured

The course is presented in 26 lectures, two per week. The lecture notes for each lecture (including prescribed reading and suggested exercises) are available online only.

In addition to the lectures, you will need to attend a one-hour tutorial class and a two-hour practical session fortnightly. During week 2 of the course, students should attend both a one-hour tutorial and a two-hour practical session. In week 3, students will only need to attend a two-hour practical session. From this week onwards practical sessions and tutorials alternate. (I.e. week 4 contains a one-hour tutorial, week 5 contains a two-hour practical etc.). Please see the tutorial and lab classes page for further details, including timetable and lecturer consultation hours.

Being a six-point subject, you are expected to spend 12 hours a week on CSE2305. This means 8 hours a week outside the scheduled lectures and tutorials.

The course guide gives an overview of the course and provides links to each lecture's notes.  There is also a detailed course guide, which is useful for searching for particular topics within lectures.


Assessment

The practical assignment component is worth 20% of your final mark (you will start it in your second practical class). The remaining 80% of your marks will be assessed in the final exam (3 hours duration). 

Note, however, that you must pass both the assignment and the exam components to pass the subject.  If you do not pass both the assignment and the exam the highest mark you can receive for the unit is 44 N.

The assessment overview gives details on the various components of the assignment.  You will also be handed out a printed version of this information in the first week of semester.


Recommended Reading

The course bibliography page lists the textbooks and other recommended reading.


Lab and Tutorial Times, Consultation Times

The course lab and tutorial page contains times and further information on these classes. It also includes consultation times.


Frequently Asked Questions

Before asking for help, you should check the on-line "frequently asked questions" list.  The list will cover common questions related to the course material and organisation. It is updated frequently.


Staff Assistance

CSSE operates a student help room in 2006. Help room staff assist students with specific problems in core units, including this course. The help room is located in room 173, building 75 on the first floor. Check the help room timetable for the times when help is available for this unit.

The head tutor for 2305 is Joel Reicher (email: Joel.Reicher@infotech.monash.edu.au). The head tutor is the person to see regarding problems with lab or tute allocation (Allocate+).

The course lecturer at Clayton is Dr Alan Dorin, Room 175(75),Phone: x53576, Clayton Campus. His consultation times can be found on the consultation page. In Malaysia the lecturer is Teh Ying Wah.

You are expected to be self-reliant in coding, and not merely come to consultations to get help debugging or writing code (the labs are the place for this).


Important announcements

General or important announcements will be posted to the CSE2305 subject home page.  It is your responsibility to check this regularly, especially before special events such as assignment due dates, the final lecture, etc.


Related Newsgroups and the discussion group

There is a course newsgroup that can be accessed via a news reader or web browser (using the my.monash portal). You are encouraged to post questions, comments and suggestions to this newsgroup for other students to read or answer (postings are not anonymous). If you have questions for the lecturer or a tutor, please attend the consultation or help room sessions for the unit. The newsgroup will rarely be read by lecturers or tutors.

If you are interested in the ways C++ can be used you may like to subscribe to the USENET newsgroup comp.lang.c++.moderated (don't bother with comp.lang.c++ - the signal-to-noise ratio is too low!)

If you are interested in discussions regarding the ANSI/ISO C++ standard, you may wish to read the USENET comp.std.c++ newsgroup.


Other Online Resources

The resources page contains a number of useful links including basic information on Linux, make, gdb and C++ plus a list of links to sites relevant to the course.


A Note Regarding The Course Glossary

Throughout the course material terms with special meanings (such as object, class¤, polymorphism¤, etc.) will be encountered.  Wherever these terms are used they will appear with a special character after them (just as they do in the previous sentence). Clicking on that character will take you to the relevant definition in the course glossary.


Getting to the Lecture Notes

Just a reminder that the lecture notes can be accessed via the links on the "course guide" page.
 
 

Audio Recording of Lectures

The lectures for CSE2305 are recorded and can be accessed via the Monash lectures on-line website.


This material is part of the CSE2305 - Object-Oriented Software Engineering course.
Copyright © Jon McCormack, 2005, Alan Dorin 2006.  All rights reserved.

Last Modified: July 17, 2006