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.
|
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.
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.
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.
Successful completion of this course should enable you to:
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.
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.
The course bibliography page lists the textbooks and other recommended reading.
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).
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.