Software Construction - ANU Programs and Courses. Programs and Courses Search query Search ANU web, staff & maps Search current site content Search Programs and Courses Courses COMP6442 Second Semester / 5818 Class Summary | Back to Course Details Software Construction A Postgraduate course offered by the School of Computing. COMP6442 Second Semester Academic Year : 2023 Class Number 5818 Term Code 3360 Academic Codes Class Info Unit Value 6 units Mode of Delivery In Person COURSE CONVENER Dr Sergio Rodriguez Mendez LECTURER Dr Sergio Rodriguez Mendez Class Dates Class Start Date 24/07/2023 Class End Date 27/10/2023 Census Date 31/08/2023 Last Date to Enrol 31/07/2023 TUTOR Llew Reilly View Class Timetable Tweet Share on Facebook Wattle Share SELT Survey Results Overview Assessment Submission Contacts Class Number 5818 Term Code 3360 Class Info Unit Value 6 units Mode of Delivery In Person COURSE CONVENER Dr Sergio Rodriguez Mendez LECTURER Dr Sergio Rodriguez Mendez Class Dates Class Start Date 24/07/2023 Class End Date 27/10/2023 Census Date 31/08/2023 Last Date to Enrol 31/07/2023 TUTOR Llew Reilly View Class Timetable Tweet Share on Facebook Wattle Share SELT Survey Results Software Construction (COMP6442) Class Overview Materials & Resources Feedback Class Schedule Assessment Details Assessment 1 Assessment 2 Assessment 3 Assessment 4 Assessment 5 Assessment 6 Assessment 7 Assessment 8 Assessment 9 Assessment 10 Assessment 11 Assessment 12 Assessment 13 Submission Details Class Contacts This course focuses on construction of medium scale programs, using design patterns and tools that are used in the software development process. Students will gain further experience with industry standard revision control and integrated development environment (IDE) tools. Students will learn appropriate application of programming abstractions they have learned in previous courses to the structuring of medium scale software: inheritance, generic types, polymorphism, procedural abstraction, and abstract recursive data structures (including abstract syntax trees as a program representation, and tools that manipulate them). The course also covers more advanced data structures, such as priority queues, B-trees, red-black trees, and AVL trees, and deepens understanding of appropriate algorithmic strategies. The course also treats intellectual property considerations in software development and deployment. Learning Outcomes Upon successful completion, students will have the knowledge and skills to: Apply fundamental programming concepts for medium scale programs Understand basic types and the benefits of static typing, with understanding of generics, subtyping, and overloading, and their roles in structuring programs Map programming language abstractions through to execution environment; use non-source (text) internal representations of programs (e.g., abstract syntax trees); sketch low-level run-time representations of core language constructs (objects and closures) Describe contractual specifications, analyse documentation and specifications against other’s code, develop, understand, test, and evolve substantial programs using a modern IDE, and associated configuration tools; explain the importance of correctness for quality software; understand common coding errors and how to avoid them; practice fundamental defensive programming; understand principles of secure design Use, implement, and evaluate more advanced data structures and associated algorithms; discuss factors other than computational efficiency for evaluating software; create, implement, debug, and evaluate algorithms for solving problems, including recursively, using divide-and-conquer, and via decomposition; implement an abstract data type; analyse design and implementation alternatives Apply basic algorithmic analysis to simple algorithms; use big-O notation formally, upper lower, and expected case bounds; use and solve recurrence relations; use appropriate algorithmic approaches to solve problems (brute-force, greedy, divide-and-conquer, recursive backtracking, heuristic, dynamic programming, branch-and-bound) Explain how system components contribute to performance; understand Amdahl’s law and its limitations; design and conduct performance experiments; use software tools to profile and measure program performance Understand, apply, and analyse state and state machines in expressing computations Understand fundamental concepts of GUIs and user interfaces; understand the basics of modeling and simulation Contrast the concepts of copyright, patenting, and trademarks as mechanisms for protecting intellectual property, within the legal context for these mechanisms; understand, analyse, and evaluate ethical/social tradeoffs in technical decisions, evaluating stakeholder positions Examination Material or equipment The materials and equipment will be listed prior to the exams on Wattle. Required Resources The minimum computing environment for the course is the following: Java Development Kit 17 (JDK 17). This is the version that will be used in the course. IDE JetBrains IntelliJ IDEA (Community Edition). Or Eclipse IDE for Java Developers (latest version). Android Development Studio Dolphin | with 2021.3.1 Patch 1 (October 2022). It's okay to use the latest version (Flamingo); however, you must check its computing requirements (memory, CPU/GPU, storage) and the suitable performance of your computer. Zoom (latest version). Computer with a working camera and enough resources (e.g., storage for self-invigilation if needed) to run IntelliJ IDEA, the preferred web browser, and Zoom simultaneously without any problems (such as lag). Recommended Resources Whether you are on campus or studying remotely, there are a variety of online platforms you will use to participate in your study program. These could include videos for lectures and other instruction, two-way video conferencing for interactive learning, email and other messaging tools for communication, interactive web apps for formative and collaborative activities, print and/or photo/scan for handwritten work and drawings, and home-based assessment. ANU outlines recommended student system requirements to ensure you are able to participate fully in your learning. Other information is also available about the various Learning Platforms you may use. Staff Feedback Students will be given feedback in the following forms in this course: Written comments for the group, video assignments, and manually marked labs. Auto-generated comments based on a set of pre-defined test cases for all other assignments/exams. Student Feedback ANU is committed to the demonstration of educational excellence and regularly seeks feedback from students. Students are encouraged to offer feedback directly to their Course Convener or through their College and Course representatives (if applicable). Feedback can also be provided to Course Conveners and teachers via the Student Experience of Learning & Teaching (SELT) feedback program. SELT surveys are confidential and also provide the Colleges and ANU Executive with opportunities to recognise excellent teaching, and opportunities for improvement. Class Schedule Week/Session Summary of Activities Assessment 1 Overview of Software Construction - This lecture overviews the course and introduces the main concepts related to software construction. Video assignments are released. 2 Design Patterns - This lecture presents several typical solutions (i.e. design patterns) to recurring problems in software design using real-world examples. Lab 1: Setting Up the Environment (participation marks). This lab is dedicated to helping you set up your course environment. 3 Software Testing - This lecture covers essential software testing concepts and techniques for identifying defects and errors in software during its development, as well as measuring software quality in terms of various coverage techniques. Lab 2 - Design Patterns. This lab offers an opportunity to implement some of the most popular design patterns used in various applications. 4 Data Structures - This lecture covers well-known data structures that are essential for developing efficient algorithms and a variety of applications. Lab 3 - Software Testing. In this lab, you will design and implement test cases to identify defects and errors in software, as well as use different techniques to measure the code coverage of a small application. 5 Data Structures II - This lecture is a continuation of the previous one with a focus on more challenging and advanced data structures. Lab 4 - Data Structures. In this lab, you will implement a part of an important data structure for several applications. 6 Tokeniser and Parser - This lecture introduces an important concept for a range of applications such as compilers, search engines, and even natural language processing. Lab 5 - Tokeniser & Parser. In this lab, you will have the opportunity to implement a tokeniser and parser. In this week, the group project will be released and the first part of the video assignment is due. 7 Android Development - This lecture delves into the concepts of mobile development using Java. Lab 6 - Escape Room (participation marks). In this lab, you will experience hands-on exercises in the Escape Room. The first checkpoint for the group project takes place this week. 8 Persistent Data - This lecture introduces several approaches to data persistence using popular industry standards for data representation and interchange (e.g., JSON, XML, Serialisation, etc). Lab 7 - Android. In this lab, you will implement a small application using Android Studio and Java. 9 Refactoring - It's time to revisit our code and identify and fix common errors in software development. This lecture will overview the most common design and implementation mistakes when developing software and possible solutions. Lab 8 - Persistent Data. In this lab, you will implement a simple application where you are required to use one or more data persistence techniques. 10 Design by Contract - This lecture introduces the "design by contract" concept, a methodology for delivering high-quality software. Lab 9 - Refactoring. In this lab, you will refactor a small application to practice the concepts seen in the lecture. The second checkpoint for the group project occurs this week. 11 Intellectual Property - The concept of intellectual property is part of the software development process. This lecture covers concepts every developer should know about intellectual property and software development. Group project is due. 12 Minute Madness Presentations - This lecture is an opportunity for all students to showcase the software they have developed throughout the semester. Video assignment 2 is due. Group project presentation is due. Tutorial Registration ANU utilises MyTimetable to enable students to view the timetable for their enrolled courses, browse, then self-allocate to small teaching activities / tutorials so they can better plan their time. Find out more on the Timetable webpage. Assessment Summary Assessment task Value Due Date Return of assessment Learning Outcomes Video Assignment 1 4 % 01/09/2023 11/09/2023 1-5 Video Assignment 2 4 % 27/10/2023 06/11/2023 6-10 Group Project 30 % 19/10/2023 13/11/2023 1-10 Final Exam 45 % * * 1-10 Lab Assignment 1 % * * 3-5 Lab Assignment 2 % * * 1,2 Lab Assignment 2 % * * 1,4 Lab Assignment 2 % * * 2,5-7 Lab Assignment 2 % * * 2,3 Lab Assignment 2 % * * 1-6 Lab Assignment 2 % * * 2,9 Lab Assignment 2 % * * 1,9 Lab Assignment 2 % * * 3-5 * If the Due Date and Return of Assessment date are blank, see the Assessment Tab for specific Assessment Task details Policies ANU has educational policies, procedures and guidelines , which are designed to ensure that staff and students are aware of the University’s academic standards, and implement them. Students are expected to have read the Academic Integrity Rule before the commencement of their course. Other key policies and guidelines include: Academic Integrity Policy and Procedure Student Assessment (Coursework) Policy and Procedure Extenuating Circumstances Application Student Surveys and Evaluations Deferred Examinations Student Complaint Resolution Policy and Procedure Code of practice for teaching and learning Assessment Requirements The ANU is using Turnitin to enhance student citation and referencing techniques, and to assess assignment submissions as a component of the University's approach to managing Academic Integrity. For additional information regarding Turnitin please visit the Academic Skills website. In rare cases where online submission using Turnitin software is not technically possible; or where not using Turnitin software has been justified by the Course Convener and approved by the Associate Dean (Education) on the basis of the teaching model being employed; students shall submit assessment online via ‘Wattle’ outside of Turnitin, or failing that in hard copy, or through a combination of submission methods as approved by the Associate Dean (Education). The submission method is detailed below. Moderation of Assessment Marks that are allocated during Semester are to be considered provisional until formalised by the College examiners meeting at the end of each Semester. If appropriate, some moderation of marks might be applied prior to final results being released. Participation You are encouraged to participate proactively in all the course activities, including lectures, labs, and the Wattle forums. Your positive participation during the course might become an important consideration for special cases when assessing your course performance in the final marks. Examination(s) Late submission is not allowed. You have up to 14 days to appeal your assessment marks from the release date. After the appeal period ends, your marks are final. This applies to all assessments. As a result of an appeal request, the marks of that assessment may go upwards, downwards, or remain the same. The assessment may be fully remarked on. In the case of approved deferred assessments (except the final exam), this may be redeemed against the final exam. A deferred assessment may be in a different format, mode of delivery and structure. Each assessment has its specs and guidelines (for example, the labs have submission guidelines concerning GitLab and academic integrity). You are expected to READ and FOLLOW them closely. Assessment Task 1 Value: 4 % Due Date: 01/09/2023 Return of Assessment: 11/09/2023 Learning Outcomes: 1-5 Video Assignment 1 In this assignment, you must produce one short video explaining any topic covered or related to the first part of the course. Your video will be assessed based on four criteria through a single-blind peer-review methodology. Assessment Task 2 Value: 4 % Due Date: 27/10/2023 Return of Assessment: 06/11/2023 Learning Outcomes: 6-10 Video Assignment 2 In this assignment, you must produce one short video explaining any topic covered or related to the second part of the course. Your video will be assessed based on four criteria through a single-blind peer-review methodology. Assessment Task 3 Value: 30 % Due Date: 19/10/2023 Return of Assessment: 13/11/2023 Learning Outcomes: 1-10 Group Project In this assignment, you will gain some experience in the process of software construction (the design, specification, documentation, implementation, and testing of substantial software). You will be assessed individually and as part of a group. Assessment Task 4 Value: 45 % Learning Outcomes: 1-10 Final Exam This is an individual exam covering the topics presented in the entire course. This exam is a hurdle (30%). It will be held during the University's exam period. Remarks: The Final Exam and Deferred Exam may be in different formats and delivery modes. While both exams may address any topic covered in the course, it is important to note that the Deferred Exam may cover different topics from the Final Exam. The student is expected to prepare and study all the topics covered in the course for both exams. Assessment Task 5 Value: 1 % Learning Outcomes: 3-5 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 6 Value: 2 % Learning Outcomes: 1,2 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 7 Value: 2 % Learning Outcomes: 1,4 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 8 Value: 2 % Learning Outcomes: 2,5-7 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 9 Value: 2 % Learning Outcomes: 2,3 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 10 Value: 2 % Learning Outcomes: 1-6 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 11 Value: 2 % Learning Outcomes: 2,9 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 12 Value: 2 % Learning Outcomes: 1,9 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Assessment Task 13 Value: 2 % Learning Outcomes: 3-5 Lab Assignment Hands-on assignments covering key concepts learned in the lectures (9 assignments, 8 contain assessable items; 8 are worth 2 marks, and 1 is worth 1 mark). The solutions provided in this assignment will be assessed based on a set of pre-defined test cases. Feedback will be auto-generated (except for Lab 1 & the Escape Room Lab, where there will be participation marks and the Android-based labs, where students must present their solutions to tutors during their lab sessions to be marked off). The due date of each lab is on Tuesday of the following week after the release of the lab (Monday of each week that contains a lab). Marks will be released on the following Monday after their due week. Example: W3 lab will be due in W5 (Tuesday 23:59); W6 marks are released. Academic Integrity Academic integrity is a core part of the ANU culture as a community of scholars. The University’s students are an integral part of that community. The academic integrity principle commits all students to engage in academic work in ways that are consistent with, and actively support, academic integrity, and to uphold this commitment by behaving honestly, responsibly and ethically, and with respect and fairness, in scholarly practice. The University expects all staff and students to be familiar with the academic integrity principle, the Academic Integrity Rule 2021, the Policy: Student Academic Integrity and Procedure: Student Academic Integrity, and to uphold high standards of academic integrity to ensure the quality and value of our qualifications. The Academic Integrity Rule 2021 is a legal document that the University uses to promote academic integrity, and manage breaches of the academic integrity principle. The Policy and Procedure support the Rule by outlining overarching principles, responsibilities and processes. The Academic Integrity Rule 2021 commences on 1 December 2021 and applies to courses commencing on or after that date, as well as to research conduct occurring on or after that date. Prior to this, the Academic Misconduct Rule 2015 applies. The University commits to assisting all students to understand how to engage in academic work in ways that are consistent with, and actively support academic integrity. All coursework students must complete the online Academic Integrity Module (Epigeum), and Higher Degree Research (HDR) students are required to complete research integrity training. The Academic Integrity website provides information about services available to assist students with their assignments, examinations and other learning activities, as well as understanding and upholding academic integrity. Online Submission You will be required to electronically sign a declaration as part of the submission of your assignment. Please keep a copy of the assignment for your records. Unless an exemption has been approved by the Associate Dean (Education) submission must be through Turnitin. Although Turnitin is available, our course will mostly use GitLab and Wattle for submission of assignments. Check on Wattle for more information. Any code developed as part of the course is subject to MOSS for code similarity detection. Hardcopy Submission Keep a digital copy of tasks completed for your records. Late Submission Late submission is not permitted. The submission of assessment tasks without an extension after the due date is not permitted and a mark of 0 will be awarded. Referencing Requirements The Academic Skills website has information to assist you with your writing and assessments. The website includes information about Academic Integrity including referencing requirements for different disciplines. There is also information on Plagiarism and different ways to use source material. Extensions and Penalties Extensions and late submission of assessment pieces are covered by the Student Assessment (Coursework) Policy and Procedure. Extensions may be granted for assessment pieces that are not examinations or take-home examinations. If you need an extension, you must request an extension in writing on or before the due date. If you have documented and appropriate medical evidence that demonstrates you were not able to request an extension on or before the due date, you may be able to request it after the due date. Privacy Notice The ANU has made a number of third party, online, databases available for students to use. Use of each online database is conditional on student end users first agreeing to the database licensor’s terms of service and/or privacy policy. Students should read these carefully. In some cases student end users will be required to register an account with the database licensor and submit personal information, including their: first name; last name; ANU email address; and other information. In cases where student end users are asked to submit ‘content’ to a database, such as an assignment or short answers, the database licensor may only use the student’s ‘content’ in accordance with the terms of service – including any (copyright) licence the student grants to the database licensor. Any personal information or content a student submits may be stored by the licensor, potentially offshore, and will be used to process the database service in accordance with the licensors terms of service and/or privacy policy. If any student chooses not to agree to the database licensor’s terms of service or privacy policy, the student will not be able to access and use the database. In these circumstances students should contact their lecturer to enquire about alternative arrangements that are available. Distribution of grades policy Academic Quality Assurance Committee monitors the performance of students, including attrition, further study and employment rates and grade distribution, and College reports on quality assurance processes for assessment activities, including alignment with national and international disciplinary and interdisciplinary standards, as well as qualification type learning outcomes. Since first semester 1994, ANU uses a grading scale for all courses. This grading scale is used by all academic areas of the University. Support for students The University offers students support through several different services. You may contact the services listed below directly or seek advice from your Course Convener, Student Administrators, or your College and Course representatives (if applicable). ANU Health, safety & wellbeing for medical services, counselling, mental health and spiritual support ANU Access and inclusion for students with a disability or ongoing or chronic illness ANU Dean of Students for confidential, impartial advice and help to resolve problems between students and the academic or administrative areas of the University ANU Academic Skills and Learning Centre supports you make your own decisions about how you learn and manage your workload. ANU Counselling Centre promotes, supports and enhances mental health and wellbeing within the University student community. ANUSA supports and represents all ANU students Convener Details Consulting Hours Dr Sergio Rodriguez Mendez u1085404@anu.edu.au Research Interests Knowledge Graphs, Ontology Engineering, Link Data & Semantic Web, Data Science, Information Retrieval Dr Sergio Rodriguez Mendez By Appointment Sunday Instructor Details Consulting Hours Dr Sergio Rodriguez Mendez Sergio.RodriguezMendez@anu.edu.au Research Interests Knowledge Graphs, Ontology Engineering, Link Data & Semantic Web, Data Science, Information Retrieval Dr Sergio Rodriguez Mendez By Appointment Sunday Tutor Details Consulting Hours Llew Reilly Llew.Reilly@anu.edu.au Research Interests Llew Reilly Sunday Responsible Officer: Registrar, Student Administration / Page Contact: Website Administrator / Frequently Asked Questions Contact ANU Campus Map Copyright Disclaimer Privacy Freedom of Information +61 2 6125 5111 The Australian National University, Canberra CRICOS Provider : 00120C ABN : 52 234 063 906