COMP2511 is a course that builds on the foundation of first-year CSE courses, and where we begin to answer the question "What does good software look like?". We're going to have a great term and we're all excited to meet you be it online or in person! COMP2511 has a teaching team of 32 passionate teaching staff - nearly all of whom have been in your shoes within the last few years. Everyone here will primarily interact with two tutors throughout this term.
Through the term you'll all be working not only with your tutors, but also with our lecturer and course admin.
Ashesh Mahidadia |
Nick Patrikeos
|
This page offers an outline of this course. Take the time to read it, as it covers everything that we expect you from this term, and everything you should expect from us!
- COMP2511 Teaching Team
Course Code | COMP2511 |
Course Title | The Art of Software Design (OO Design & Programming) |
Convenor | Dr Ashesh Mahidadia |
Admin | Nick Patrikeos |
Class Account | cs2511@cse.unsw.edu.au |
Classes | Timetable for all classes |
Units of Credit | 6 |
Course Website | COMP2511 Course Website |
Handbook Entry | http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP2511.html |
This course aims to introduce students to the foundational principles of designing software that is flexible, reusable and maintainable. Students are exposed to the Object-Oriented Programming paradigm and explore how OOP attempts to solve the problem of good software design, while learning of other paradigms such as the functional paradigm. Students explore fundamental Design Patterns in writing and testing of software and their role in architecture of software, applying these solutions to both theoretical and real-world problems. The course teaches an appreciation for elegantly written code, problem solving and finding well-designed solutions to problems that have longevity of software systems in mind.
Students are expected to have taken COMP1531 (Software Engineering Fundamentals) and COMP2521 (Data Structures and Algorithms).
It is also assumed that students taking this course are in their second year of study or further, and are comfortable with programming languages and thinking computationally.
More information about specific topics that in both of these courses that are relevant to COMP2511 can be found on this page .
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.
Lectures will be used to present key concepts and practical examples of design techniques taught in this course. Lectures will be delivered via Blackboard Collaborate during Weeks 1 to 5, and 7-10. Lecture recordings will be made available via Microsoft Stream after the lecture.
In 22T2 Weeks 1 - 5
, Monday lectures (4pm - 6pm) will be delivered in hybrid mode, with an in-person offering on campus (location TBA) as well being available to join online.
Wednesday lectures (9am - 11am) will be held entirely online. Monday lectures for Weeks 7 - 10 may be held in person depending on attendance in the first half of the term.
Every week there is a one hour tutorial, which is scheduled before the lab. Tutorials serve the purpose of:
You should make sure that you use them effectively by examining in advance the material to be covered in each week's tutorial, by asking questions, by offering suggestions and by generally participating.
Tutorials will often involve collaborative and break-out work where you will work with a group of other students to solve or answer problems. This will often be done in your major project group.
Tutorials contribute to your class mark, see the section Class Mark (15%) below.
The tutorial questions will be available the week before each tutorial, and the solutions will be available at the end of the corresponding week.
Online tutorials and labs will be run via
MS Teams
.
All tutorials start in Week 1.
Following the tutorial class each week, there will be a two-hour laboratory class, during which you will work on a variety of practical exercises that will enable you to apply the concepts taught in the lectures.
Each week, there will be several exercises to work on. The exercises will need to be submitted to GitLab and will be assessed by your tutor. In some lab exercises, you will need to complete a reflective blog post on WebCMS outlining your thought process, approach and learnings.
Lab exercises will constitute a part of the Class Mark, see the section Class Mark (15%) below.
All completed lab exercises must be pushed to GitLab / all blog posts must be posted on WebCMS and submitted prior to being marked by your tutor or lab assistant.
You must then demonstrate your work to your tutor during the following week's lab. The code that you submit by Monday is what will be assessed. You must not make any changes to the completed solution after Monday. Your tutor will check the time-stamp prior to marking the lab.
Lab marking will often take up time in tutorials, and your tutor may not always be able to mark everyone's lab by the end of the 2 hours; any remaining labs to be marked will carry over into the following week. If you would like feedback earlier than this to help with an assessment, you may make a post on the Course Forum and ask for feedback on the lab.
You cannot obtain marks by e-mailing lab work to tutors. Your tutor will provide feedback during a lab session on your approach to the problem and on the design of your solution.
Periodically, the 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 required to demonstrate progress of your project in Milestones. If a student is absent from their Milestone demonstration, they will need to apply for Special Consideration.
As this course has a significant practical component, the weekly labs 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 weekly labs you risk failing the Assignment, Project and the Final Exam.
Students wishing to obtain an extension to complete a weekly lab must apply for Special Consideration.
Solutions are not released for lab exercises for plagiarism reasons. Instead, more complex labs will have a retrospective 'walkthrough' video released.
Help sessions are unprepared drop-in "clinics" where students and groups can go to seek help about course related matters, whether that be the project, tutorials, or labs. Current tutors will supervise each help session.
There will be a mix of online and in-person help sessions each week. The Course Admin will also run an in-person consultation once a week on Mondays from 6:30 - 8pm following the lecture.
Online help sessions will be run via Microsoft Teams and using UNSW Hopper.
There will be one assignment to be completed individually which will be released at the beginning of Week 2 and will be due on Friday of Week 4. This assignment will constitute 15% of the overall course mark.
There will be one main project ( group of 4-5 students ) which will run through the rest of the teaching period and contributes to 35% of the overall course mark. You are required to form your group for the project by the end of Week 2 .
All group members must be from the same tutorial / lab .
The project consists of three deliverable Milestones. Milestone 1 (5%, Due Week 7) is a formative assessment designed to give groups an opportunity to receive feedback from their tutor on their initial work. Milestone 2 (45%, Due Week 7) and Milestone 3 (50%, Due Week 9) are summative submissions. During the week of the submissions of Milestones 2 and 3, each group will demonstrate their assessment to their tutor during their project check-in time slot.
All groups must satisfactorily complete each Milestone in order to be awarded a mark for the project. Students who fail to contribute to their group will have their individual project mark reduced.
There will be a centrally timetabled final exam which will in your UNSW exam timetable.
There is no hurdle requirement for the exam.
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.
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 | Weighting |
Assignment | Week 4 Friday, 5pm | 15% |
Project | 35% | |
Project: Milestones 1 + 2 | Week 7 Sunday, 5pm | 50% of the Project |
Project: Milestone 3 | Week 9 Sunday, 5pm | 50% of the Project |
Class Mark | All Weeks | 15% |
Final Exam | Exam Period | 35% |
Your final class mark will be out of
60 marks
. Each week, there will be 8 marks of core activities available in the form of:
Your class mark for each week will be out of 8. We will take your best seven labs towards your class mark, meaning that you are able to forfeit one week's labs without losing any marks towards the overall Class Mark. The final mark will consist of:
7 * 8 = 56 marks + 2 marks tutorial participation in the week the lab was missed, + 2 marks tutorial participation in Week 9, when there is no lab. = 60 marks.
The Class Mark will be capped at 60 marks.
There are additional choice activities which students may complete if they wish. They are non-assessable.
To receive 2/2 for weekly tutorial participation, you will need to:
If a you cannot attend an in-person tutorial due to COVID-19 or other circumstances beyond your control, please email your tutor explaining your situation. Your participation mark for that week will be the average of your other weeks' participation.
In the event of widespread difficulties that prevent students from coming onto campus such as train strikes and floods, the course will provide alternative offerings for in-person tutorials as needed.
The marking criteria for the assignment will be outlined in the specification which will be released beginning of Week 2.
The marking criteria for the project will be outlined in the specification which will be released at the beginning of Week 5.
In 22T2 the COMP2511 exam will be held entirely online.
Students are eligible for a Supplementary Exam if and only if:
Please note the following schedule is subject to change.
Week | Topic | Assessments |
1 |
|
|
2 |
|
Lab 01 Due - Monday 8am |
3 |
|
Lab 02 Due - Monday 8am |
4 |
|
Lab 03 Due - Monday 8am
Assignment Due - Friday 5pm |
5 |
|
Lab 04 Due - Friday 5pm |
6 | Flexibility Week |
|
7 |
|
Lab 05 Due - Monday 8am
Milestones 1 + 2 Due - Sunday 9pm |
8 |
|
Lab 07 Due - Friday 8am |
9 |
|
Lab 08 Due - Monday 8am
Milestone 3 Due - Sunday 9pm |
10 |
|
Lab 10 Due - Sunday 5pm
|
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.
However, during the term students are encouraged to provide feedback both during lectures, during tutorials, and generally to course staff via email.
We have taken on feedback from the 21T3 myExperience, and made changes to the course where possible, including but not limited to the following:
Students are always welcome to provide feedback at any point in the term on their experience by emailing the course account or completing the feedback form linked in the sidebar.
Resource created Thursday 19 May 2022, 09:04:48 PM, last modified Monday 30 May 2022, 02:55:44 PM.