Course Title: Further Programming
Part A: Course Overview
Course Title: Further Programming
Credit Points: 12.00
Terms
Course Code |
Campus |
Career |
School |
Learning Mode |
Teaching Period(s) |
COSC1135 |
Bundoora Campus |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Sem 1 2006 |
COSC2288 |
Open Learning Australia |
Non Award |
175H Computing Technologies |
Distance / Correspondence |
OUASP1UG24 |
COSC2391 |
City Campus |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Sem 1 2006, Sem 1 2007, Sem 2 2007, Sem 1 2008, Sem 2 2008, Sem 1 2009, Sem 1 2010, Sem 2 2010, Sem 1 2011, Sem 2 2011, Sem 1 2012, Sem 2 2012, Sem 1 2013, Sem 1 2014, Sem 2 2014, Sem 1 2015, Sem 2 2015, Sem 1 2016 |
COSC2391 |
City Campus |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face or Internet |
Sem 2 2009 |
COSC2391 |
City Campus |
Undergraduate |
171H School of Science |
Face-to-Face |
Sem 1 2017, Sem 1 2018, Sem 2 2018, Sem 1 2019, Sem 2 2019, Sem 1 2020, Sem 2 2020, Sem 1 2021, Sem 2 2021 |
COSC2391 |
City Campus |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Sem 1 2022, Sem 2 2022, Sem 1 2023, Sem 2 2023, Sem 1 2024, Sem 2 2024 |
COSC2401 |
City Campus |
Postgraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Sem 1 2006, Sem 1 2007, Sem 2 2007, Sem 1 2008, Sem 2 2008, Sem 1 2009, Sem 2 2009, Sem 1 2010, Sem 2 2010, Sem 1 2011, Sem 2 2011, Sem 1 2012, Sem 2 2012, Sem 1 2013, Sem 1 2014, Sem 1 2015, Sem 2 2015, Sem 1 2016 |
COSC2401 |
City Campus |
Postgraduate |
171H School of Science |
Face-to-Face |
Sem 1 2017, Sem 1 2018, Sem 2 2018, Sem 1 2019, Sem 2 2019 |
COSC2440 |
RMIT University Vietnam |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Viet2 2008, Viet3 2008, Viet1 2009, Viet2 2009, Viet3 2009, Viet1 2010, Viet3 2010, Viet2 2012, Viet1 2013, Viet3 2013, Viet3 2015, Viet2 2016 |
COSC2440 |
RMIT University Vietnam |
Undergraduate |
171H School of Science |
Face-to-Face |
Viet3 2017, Viet2 2018, Viet1 2019, Viet1 2020, Viet1 2021 |
COSC2440 |
RMIT University Vietnam |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Viet1 2022, Viet1 2023, Viet1 2024 |
COSC2447 |
Taylors College KL |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Offsh 3 10, Offsh 1 11 |
COSC2731 |
RMIT Vietnam Hanoi Campus |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Viet1 2024 |
Course Coordinator: Estrid He
Course Coordinator Phone: -
Course Coordinator Email: jiayuan.he@rmit.edu.au
Course Coordinator Location: 14.09.17
Course Coordinator Availability: by appointment
Pre-requisite Courses and Assumed Knowledge and Capabilities
Enforced Pre-Requisite Courses
Successful completion of:
- COSC1073 Programming 1 (Course ID 004065) OR
- COSC1283 Programming Techniques (Course ID 004301) OR
- EEET2482 Software Engineering Design (Course ID 038296) OR
- COSC3054 Programming Bootcamp 1 (Course ID 054079)
Note: it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.
For your information go to RMIT Course Requisites webpage.
Course Description
This course provides students with an advanced understanding of Object-Oriented software development with an emphasis on architecture and design and how this relates to programming and implementation. This course builds upon existing programming knowledge using Java as the implementation platform and assumes students already have a basic understanding of Java programming and basic OO concepts. Students will explore advanced OO concepts such as inheritance and polymorphism; abstract classes and interfaces; the Java Collection Framework (JCF), and generics/parameterized types. These topics will emphasise structural software quality evidenced through high cohesion and low coupling. This course will also cover Streams/Serialisation/Files and provide an introduction to parallel programming using threads. Students will also explore common OO design patterns such as MVC, Singleton and Facade and their application in User Interface Programming. This course serves as a pre-requisite for more specialized Java courses such as eCommerce, Web Services, Enterprise Architectures, and Mobile Application Development.
Objectives/Learning Outcomes/Capability Development
This course contributes to development of the following capabilities
Enabling Knowledge: knowledge and experience of software architecture design and implementation and how this is supported by modelling tools and integrated development environments; Understand the concept of software quality and how this can be a trade-off (e.g. performance versus reliability, coupling versus cohesion); Understand simple parallelism in multi-threaded systems and the challenges this poses in terms of implementation and testing.
Problem Solving: Ability to apply patterns and architectures to a variety of applications, taking into account domain specific requirements and constraints. Ability to perform iterative development from the design stage through to implementation and testing using commonly available platforms and tools. Ability to develop software that meets specific quality constraints by understanding the impact of architecture, design and implementation techniques on such properties.
For more information on the program learning outcomes for your program, please see the program guide.
Upon successful completion of this course, you will be able to:
- Demonstrate working knowledge of OO concepts and design principles in the analysis, design and implementation of solutions for small to medium scale problems.
- Describe and Document Diagrammatically the OO design of the Java Collection Framework (JCF) and apply this framework in Java code.
- Describe and Document Diagrammatically the OO design of the JavaFX APIs and apply these APIs to create graphical user interface (GUI) code.
- Demonstrate Proficiency using an integrated development environment such as Eclipse for project management, coding and debugging.
- Describe and Document Diagrammatically common OO design patterns such as Model View Controller (MVC), Singleton, Facade and apply in Java code.
- Describe how streams are used for I/O in Java, and apply in code with different types of files (text, binary, random access).
Overview of Learning Activities
You will be actively engaged in a range of learning activities such as lectorials, tutorials, practicals, laboratories, seminars, project work, class discussion, individual and group activities. Delivery may be face to face, online or a mix of both.
You are encouraged to be proactive and self-directed in your learning, asking questions of your lecturer and/or peers and seeking out information as required, especially from the numerous sources available through the RMIT library, and through links and material specific to this course that is available through myRMIT Studies Course.
Overview of Learning Resources
RMIT will provide you with resources and tools for learning in this course through myRMIT Studies Course.
There are services available to support your learning through the University Library. The Library provides guides on academic referencing and subject specialist help as well as a range of study support services. For further information, please visit the Library page on the RMIT University website and the myRMIT student portal.
Overview of Assessment
The assessment for this course focusses on practical tasks of the sort performed in industry settings, involving the development of small to medium sized programs.
Across the major assessment tasks you will be required to demonstrate problem-solving and practical programming skills and demonstrate your understanding through video and/or live interviews describing your approach.
Shorter in-class assessments will use problem-solving coding exercises of the form typically used by industry employers in interview processes. Note that all assessments are to be performed individually.
Assessment Tasks
Assessment Task 1: Practical Assignment 1 -- 18%
This assignment involves a small programming assignment early in semester to build a simple program.
This assessment task supports CLOs 1, 2, 4.
Assessment Task 2: Practical Assignment 2 -- 50%
This assignment is an extended project developing a more complex functional program built to provided specifications, involving OO design principles and basic data structures Students will also be expected to create a simple GUI front-end and a basic database back-end for their application. Students will be required to demonstrate their code-in-progress in labs via a schedule of advertised milestones, including a final virtual interview.
This assessment task supports CLOs 1, 2, 3, 4, 5, 6.
Assessment Task 3: Late-Semester Test -- 25%
Students will be required to perform a late-semester written test.
This assessment task supports CLOs 1, 2, 3, 5.
This assessment is a timed and timetabled assessment that students must attend on campus.
Assessment Task 4: Part 2, In-Class Coding Activities -- 7%
A series of short coding/programming exercises (15-20 minutes each), as commonly required in industry job interview processes. They are designed to be performed in class time throughout the semester, and allow students to monitor and evaluate their learning and identify problems early.
This assessment task supports CLOs 1, 2, 3, 4.
If you have a long-term medical condition and/or disability it may be possible to negotiate to vary aspects of the learning or assessment methods. You can contact the program coordinator or Equitable Learning Services if you would like to find out more.