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 in an approach to writing software which is based around the idea of building specific data structures to represent the parts of the problem (and/or the parts of the solution), and then defining how those data structures inter-relate and interact.

Software engineering¤ is the study and practice of a collection of concepts, techniques and tools which enable programmers to design and 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). You are also expected to be familiar with 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 must attend one-hour tutorial class and one two-hour lab session fortnightly. For the administration of the fortnightly tutorial and lab classes, students are grouped into 2 streams, A and B. Please see the tutorial and lab classes page for further details, including timetable and 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 an 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 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 both the course material and organisation and is updated frequently.


Staff Assistance

CSSE operates a student help room in 2005. 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 Robyn McNamara (email: ram@csse.monash.edu.au). Robyn is the person to see regarding problems with lab or tute allocation (Allocate+).

The course lecturer at Clayton is Dr Jon McCormack , Room 175(75),Phone: x59298, Clayton Campus. His consultation times can be found on the consultation page.

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 (postings can be anonymous). The lectuer and assistant lecturer will try to respond to questions posted here.

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.  All rights reserved.

Last Modified: July 26, 2005