Course Title: Algorithms and Analysis
Part A: Course Overview
Course Title: Algorithms and Analysis
Credit Points: 12.00
Terms
Course Code |
Campus |
Career |
School |
Learning Mode |
Teaching Period(s) |
COSC1285 |
City Campus |
Postgraduate |
140H Computer Science & Information Technology |
Face-to-Face | Sem 1 2006, Sem 2 2006, Summer2007, Sem 1 2007, Sem 2 2007, Summer2008, Sem 1 2008, Sem 2 2008, Summer2009, Sem 1 2009, Sem 2 2009, Sem 1 2010, Sem 2 2010, Summer2011, Sem 1 2011, Sem 2 2011, Summer2012, Sem 1 2012, Sem 2 2012, Sem 2 2013, Summer2014, Sem 2 2014, Summer2015, Sem 2 2015, Sem 1 2016 |
COSC1285 |
City Campus |
Postgraduate |
171H School of Science |
Face-to-Face | Sem 1 2017, Sem 2 2017, Sem 1 2018, Sem 2 2018, Sem 1 2019, Sem 2 2019, Sem 1 2020, Sem 2 2020 |
COSC2123 |
City Campus |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face | Sem 1 2006, Sem 2 2006, Summer2007, Sem 1 2007, Sem 2 2007, Summer2008, Sem 1 2008, Sem 2 2008, Summer2009, Sem 1 2009, Sem 2 2009, Sem 1 2010, Sem 2 2010, Summer2011, Sem 1 2011, Sem 2 2011, Summer2012, Sem 1 2012, Sem 2 2012, Sem 2 2013, Summer2014, Sem 2 2014, Summer2015, Sem 2 2015, Sem 1 2016 |
COSC2123 |
City Campus |
Undergraduate |
171H School of Science |
Face-to-Face | Sem 1 2017, Sem 2 2017, Sem 1 2018, Sem 2 2018, Sem 1 2019, Sem 2 2019, Sem 1 2020, Sem 2 2020 |
COSC2469 |
RMIT University Vietnam |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face | Viet2 2016 |
COSC2469 |
RMIT University Vietnam |
Undergraduate |
171H School of Science |
Face-to-Face | Viet2 2017, Viet3 2020 |
COSC2498 |
Taylors College KL |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face | Offsh 3 10 |
Course Coordinator: Jeffrey Chan (COSC1285) / Minyi Li (COSC2123)
Course Coordinator Phone: +61 3 9925 5270 / +61 3 9925 8991
Course Coordinator Email: jeffrey.chan@rmit.edu.au / minyi.li@rmit.edu.au
Course Coordinator Location: 14.08.15 / 14.08.13
Course Coordinator Availability: By appointment
Pre-requisite Courses and Assumed Knowledge and Capabilities
Enforced Prerequisites:
For COSC1285 (postgraduate):
COSC1295 Advanced Programming
For COSC2123 (undergraduate):
COSC2391 Further Programming or COSC1076 Advanced Programming Techniques
You may not enrol in Algorithms and Analysis unless one of these courses is explicitly listed in your enrolment program summary. This will be enforced by SAMs.
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.
Course Description
The main objective of this course is for you to acquire the tools and techniques necessary to propose practical algorithmic solutions to real-world problems which still allow strong theoretical bounds on time and space usage. You will study a broad variety of important and useful algorithms and data structures in different areas of applications, and will concentrate on fundamental algorithms. You will spend a significant time on each algorithm to understand its essential characteristics and to respect its subtleties.
Objectives/Learning Outcomes/Capability Development
Program Learning Outcomes
This course contributes to the following Program Learning Outcomes (PLOs) for BP094 Bachelor of Computer Science, BP096 Bachelor of Software Engineering, BP215 Bachelor of Information Technology (Games and Graphics Programming), BH094 Bachelor of Engineering (Electronic & Communication Engineering (Hons)/Bachelor of Computer Science, BH091 - Bachelor of Engineering (Computer and Network Engineering) (Honours)/Bachelor of Computer Science, MC061 Master of Computer Science, and MC208 Master of Information Technology:
- Enabling Knowledge: You will gain skills as you apply knowledge effectively in diverse contexts.
- Enabling Knowledge: You will gain skills as you apply knowledge with creativity and initiative to new situations. In doing so, you will: Demonstrate mastery of a body of knowledge that includes recent developments in computer science and information technology; Recognise and use research principles and methods applicable to computer science and information technology.
- Critical Analysis: You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to: (i) Analyse and model requirements and constraints for the purpose of designing and implementing software artefacts and IT systems; (ii) Evaluate and compare designs of software artefacts and IT systems on the basis of organisational and user requirements.
- Problem Solving: Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to: Design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.
- Communication: You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to: Present a clear, coherent and independent exposition of software applications, alternative IT solutions, and decision recommendations to both IT and non-IT personnel via technical reports of professional standard and technical presentations. Interpret abstract theoretical propositions, choose methodologies, justify conclusions and defend professional decisions to both IT and non-IT personnel via technical reports of professional standard and technical presentations.
- Team Work: You will learn to work as an effective and productive team member in a range of professional and social situations, in particular to: Work effectively in different roles, to form, manage, and successfully produce outcomes from teams whose members may have diverse cultural backgrounds and life circumstances and differing levels of technical expertise.
Course Learning Outcomes
On successful completion of this course you should be able to:
- CLO 1: Compare, contrast, and apply the key algorithmic design paradigms: brute force, divide and conquer, decrease and conquer, transform and conquer, greedy, dynamic programming and iterative improvement;
- CLO 2: Compare, contrast, and apply key data structures: trees, lists, stacks, queues, hash tables and graph representations;
- CLO 3: Define, compare, analyse, and solve general algorithmic problem types: sorting, searching, graphs and geometric;
- CLO 4: Theoretically compare and analyse the time complexities of algorithms and data structures; and
- CLO 5: Implement, empirically compare, and apply fundamental algorithms and data structures to real-world problems.
Overview of Learning Activities
Key concepts will be explained in lectures, classes or online, where course material will be presented and the subject matter will be illustrated with demonstrations and examples.
Tutorial sessions focus on problem solving and application of data structures and algorithms learnt in classes.
Laboratory sessions provide practice in the application of theory and procedures.
A total of 120 hours of study is expected during this course, comprising:
Teacher-directed hours (48 hours):
Each week there will be two hours of lectures, one hour of tutorials and one hour of laboratory work. You are encouraged to participate during lectures through asking questions, commenting on the lecture material based on your own experiences and by presenting solutions to teacher’s questions and problems presented in classes. The tutorial and laboratory sessions will consolidate your understanding and allow you to practice applying and implementing algorithms and data structures to solve problems.
Student-directed hours (72 hours):
You are expected to be self-directed, studying independently outside of class.
Overview of Learning Resources
Computer laboratories and relevant software will be provided by the School. You will be able to access course information and learning materials and any recommended textbooks through the Canvas learning management system. Lists of relevant reference texts, resources in the library and freely accessible Internet sites will be provided.
Overview of Assessment
The assessment for this course comprises of assignments, weekly quizzes, mid-semester test and a formal end-of-semester written examination.
This course has no hurdle requirements.
Assessment tasks
Assessment Task 1: Quizzes
This assessment includes two parts:
- Weekly Quizzes: Weighting 5%. This assessment task supports CLOs 1, 2, 3 & 4
- Mid-semester Quiz: Weighting 15%. This assessment task supports CLOs 1, 2, 3 & 4
Assessment Task 2: Assignment 1
Weighting 15%
This assessment task supports CLOs 1, 2, 3, 4 & 5
Assessment Task 3: Assignment 2
Weighting 15%
This assessment supports CLOs 1, 2, 3 & 5
Assessment Task 4: End-of-semester Examination
Weighting 50%
This assessment supports CLOs 1, 2, 3, 4 & 5
Please note that postgraduate students are expected to demonstrate deeper knowledge and higher level application of knowledge and skills than undergraduate students. There may be a postgraduate and an undergraduate version for both the mid-semester test and the end-of-semester examination.