Course Code | COMP2511 |
Course Title | Object-Oriented Design & Programming |
Convenor | Dr Ashesh Mahidadia (ashesh@cse.unsw.edu.au) |
Admin | Matthew Perry (matthew.perry@unsw.edu.au) |
Classes | Timetable for all classes |
Consultations | To be added later |
Units of Credit | 6 |
Course Website | COMP2511 Class Webpage (https://webcms3.cse.unsw.edu.au/COMP2511/20T2/) |
Handbook Entry | http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP2511.html |
COMP 2511 covers the theory and practice of object-oriented design and programming with an emphasis on teaching students how to apply software design principles and design patterns to the building of flexible, reusable and maintainable systems. The course also introduces user-interface design and programming and includes the implementation of a large project done in pairs using agile software practices and enables students to have hands-on experience in applying the principles taught, implementing and incorporating the use of good design principles and design patterns in software programs.
Students are assumed to be:
This course expects that students have undertaken COMP1531 (a prerequisite for COMP 2511 introduced following a curriculum review 3 years ago) prior to taking this course. COMP1531 introduces use of git and also exposes students to the fundamental principles of software design. However, there are a small number of students on the old program who have not taken COMP1531. For these students, the week 1 lab is intended to bring them up to speed with git.
The following are the intended learning outcomes of this course:
This course contributes to the development of the following graduate capabilities:
This course contributes to the following UNSW graduate attributes.
There are some key changes to the structure and content of the course this term. These are strategic changes necessary to improve the student learning experience and outcomes and to adapt to the COVID 19 situation.
The revised structure is as follows:
A total of 36 (9x4) hours of lectures will be used to present key concepts and practical examples of design techniques taught in this course.
You will be expected to watch a 1-hour tutorial recording prior to attending your scheduled tutorial Q&A session each week. This video will discuss questions from that week's tutorial content.
You will be registered to a scheduled tutorial session via myUNSW. Your tutor or lab assistant will be available during your tutorial time-slot to answer any questions you may have regarding the tutorial questions after watching the tutorial recording.
Each week, there will be a two-hour laboratory class, during which you will work on a variety of small practical problems that will enable you to apply the concepts taught in the lectures.
There are six labs (weeks 1, 2, 3, 5, 7 and 9) with specified lab exercises. Your tutor or lab assistant will be available during your lab time-slot to answer any questions you may have regarding the lab questions. The other three labs (weeks 4, 8 and 10) will be used for lab and project assessments. Please note that you must attend all nine lab and tutorial sessions during the term. Lab exercises will be released in the week preceding the lab class. The lab exercises will need to be submitted and will be assessed by your tutor. Lab exercises constitute an important part of the course assessment and will contribute to 20% of the overall course mark, see "Lab Assessments" below for more information.
All completed lab exercises must be submitted by the specified due dates. If you are unable to finish the exercises during the lab, you may continue working on it during the week, but you must submit the lab by the upcoming Sunday 5:00 pm . For each late submission, you will be penalised 2% of the overall course mark (i.e 2 marks out of the overall course mark of 100). For example, if you submit 2 labs after the respective due dates, you will be penalised 4 marks (out of the overall course mark of 100). This is to encourage you to finish your work in time and move on to the following tasks and assessments. This penalty will be automatically applied by the course administrator. Please note that you cannot obtain marks by e-mailing lab work to your tutor.
You should demonstrate your work to your tutor during the following week's lab for feedback on your problem solving, approach and the style of your solution (not marks).
Lab Assessments:
Your tutor will assess you three times during the term.
Your tutor will inform you regarding your time slot (during your lab time) for an interactive marking session (one-to-one, on Microsoft Teams or Blackboard Collaborator) to ask you specific questions (to be answered verbally) and award you marks. You will be asked questions on the topics covered prior to the corresponding week. Please note that these interactive sessions will be one-to-one, conducted in Microsoft Teams or Blackboard Collaborate, and they will be recorded for future reference.
Summary: you must do 3 things:
Important
:
You need to answer questions verbally in the specified time period for the lab assessments. If you cannot answer questions verbally, or don't show up at the allocated time on the required platform (Microsoft Teams or Blackboard Collaborator) as specified, you will receive zero marks for that lab assessment.
The questions will be related to (and not the same as) the prior lab questions. Please note that you must briefly justify your answers. Based on the quality of your justifications and answers, your tutor will award you marks. You don't need to offer long answers, as far as you convey your logic correctly and your tutor understands it, that's fine.
You must be setup with any necessary software for interactive sessions open and running at the commencement of the session. If avoidable technical issues occur (e.g. because you haven't opened the required windows/software or haven't run the required commands) no additional time will be provided. In such a circumstance, the unanswered questions will be assigned 0 marks.
As this course has a significant practical component, laboratory classes are important to help you acquire the necessary skills in the relevant tools and frameworks that will be used in the implementation of the group project and also prepare you for the final exam. If you do not put a good amount of effort into the lab classes you risk failing the group project and the final exam.
All labs start in week 1.
There will be one assignment (design-based) to be completed individually which will be released in week 2 and due on Sunday 28th June of Week 4. This assignment will constitute 15 % of the overall course mark.
There will be one main project (group of 2 students) which will run through the rest of the teaching period and contributes to 35% of the overall course mark. The specification of the group project will be released in week 3. You are required to form groups of 2 for the group project. Details about the group project will be released through the term.
Periodically, the tutorial and lab sessions will also be used to schedule demonstrations of your ongoing group project. As the implementation of the group project will be based on an agile software development methodology , you will be required to demonstrate progress of your project in iterations. In these sessions, similarly to the lab assessments, students/teams will be asked questions about the assignment/project. These sessions will be in a time-slot specified by the tutor, and must be attended and answered both verbally and satisfactorily to receive marks.
Students missing the demonstration will automatically receive 0 for that iteration unless special consideration is approved - no exceptions will be made to this policy. Please note that these interactive sessions will be conducted in Microsoft Teams or Blackboard Collaborate, and they will be recorded for future reference.
You must be setup with any necessary software for demo sessions open and running at the commencement of the session. If avoidable technical issues occur (e.g. because you haven't opened the required windows/software or haven't run the required commands) no additional time will be provided. In such a circumstance, the unanswered questions will be assigned 0 marks.
The level of contribution by each team member will be analysed at the end of the trimester, and positive and negative scaling may be applied in cases of uneven contribution.
There will be a centrally timetabled final exam which will in your UNSW exam timetable. There is a hurdle requirement on the final exam. If you do not score at least 50% on the exam, you cannot pass this course. If your overall course score exceeds 50%, despite scoring very poorly (<50%) on the exam, the hurdle will be enforced via a grade of UF. Of course, if your overall course score is less than 50%, then your grade will be FL.
Use of git and GitLab will be strongly enforced in this course, as using them for the medium of collaboration and source control is a key learning outcome that will be applied by students in several following courses through their degree.
All work for the assignment, project, and labs will only be considered for assessment if pushed/uploaded to the platform specified in the assessment specification. This includes that only work pushed/uploaded to the correct platform will be considered for determining contribution levels; and the owner of the account pushing/uploading the work will be deemed the sole author of the work (so you should not allow your colleague to push your work).
The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.
In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person as well as behaviour on social media, for example Facebook groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.
If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.
Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:
Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. In particular, you are also responsible that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if you are using these facilities. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.
UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own.
If you haven't done so yet, please take the time to read the full text of
The pages below describe the policies and procedures in more detail:
You should also read the following page which describes your rights and responsibilities in the CSE context:
Item | Due | Marks |
Assignment | Week 04 (Sunday) | 15% |
Project | Milestones: Weeks 5,7,9 | 35% |
Labs | All Weeks | 20% |
Final Exam | Exam period | 30% |
If your performance in your final exam is significantly different (as a percentage, >= 30%) to your performance in your "Lab Assessments", you will be required to take further assessment which may include online interactive or face-to-face assessment. In this case, your final exam marks will be derived from your performance in the further assessment.
Your final mark for this course will be computed using the above assessments as follows:
Students are eligible for a Supplementary Exam if and only if:
Please note the following schedule is subject to change.
Week | Topic | Assessments |
1 |
Course Introduction, Introduction to Java (JDK, J2EE) using Eclipse IDE
What is OO design? Object, Classes, Constructors |
- |
2 |
Abstraction, Encapsulation and Inheritance,
OO Relationships Revision of Requirements Analysis and Domain Modelling (User-Stories, CRC Cards, Class Diagram) |
- |
3 |
Interfaces, Abstract classes, Polymorphism
What are design smells? Identify good design characteristics Refactoring Techniques Part I |
- |
4 |
Exploring Pitfalls of Inheritance - Is Composition and Delegation better than inheritance?
Refactoring Techniques Part II Design Patterns - Refactoring targets Introducing Strategy, State Pattern |
* Lab Assessment (weeks 1-3)
* Assignment Due (Sunday) |
5 |
Refactoring
Techniques Part 3
Generics, Collection Frameworks Design Patterns - Iterator, Builder and Composite |
Project - Milestone 1 Submission
* Assignment Demo/Assessment |
6 | - | - |
7 |
Exception Handling in Java
Design by Contract Test Drive Development |
* Project - Milestone 1 Demo/Assessment
* Project - Milestone 2 Submission |
8 |
Refactoring Techniques Part 4
Design Patterns: Observer, Decorator, Adapter Grouping Patterns into structural, behavioural, creational |
Project - Milestone 2 Demo/Assessment |
9 |
User-centered design and usability
heuristics
Design patterns: Observer MVC Application framework |
* Lab Assessment (weeks 5 and 7)
* Project - Milestone 3 Submission |
10 | Revision, Exam Format |
* Lab Assessment (week 9)
* Project - Final Demo |
There is no single text book that covers all of the material in this course at the right level of detail. The lectures should provide sufficient detail to introduce topics, and you will then study them in further depth in the labs and group project.
There are also many online resources available, and we will provide links to the most useful ones. Some are listed below. If you find others, please post links in the Comments section on the Course Outline page.
Some suggestions for books that cover at least some of the topics in this course
This course is evaluated each session using the myExperience system.
Resource created Wednesday 20 May 2020, 01:07:54 PM, last modified Monday 22 June 2020, 11:44:02 AM.