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, Sem 1 2021, Sem 2 2021 |
COSC1285 |
City Campus |
Postgraduate |
175H Computing Technologies |
Face-to-Face |
Sem 2 2022, Sem 1 2023, Sem 2 2023, Sem 1 2024, Sem 2 2024 |
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, Sem 1 2021, Sem 2 2021 |
COSC2123 |
City Campus |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Sem 2 2022, Sem 1 2023, Sem 2 2023, Sem 1 2024, Sem 2 2024, Sem 1 2025 |
COSC2203 |
RMIT University Vietnam |
Postgraduate |
175H Computing Technologies |
Face-to-Face |
Viet3 2022, Viet3 2023, Viet1 2024 |
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, Viet3 2021 |
COSC2469 |
RMIT University Vietnam |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Viet1 2022, Viet3 2022, Viet1 2023, Viet3 2023, Viet1 2024, Viet3 2024, Viet1 2025 |
COSC2498 |
Taylors College KL |
Undergraduate |
140H Computer Science & Information Technology |
Face-to-Face |
Offsh 3 10 |
COSC2722 |
RMIT Vietnam Hanoi Campus |
Undergraduate |
175H Computing Technologies |
Face-to-Face |
Viet1 2024, Viet3 2024, Viet1 2025 |
Course Coordinator: Elham Naghizade
Course Coordinator Phone: -
Course Coordinator Email: e.naghizade@rmit.edu.au
Course Coordinator Availability: By appointment
Pre-requisite Courses and Assumed Knowledge and Capabilities
Enforced Pre-requisite Courses
Successful completion of the following course/s:
- COSC2288 / COSC2391 / COSC2440 / COSC2684 / COSC2786 - Further Programming (Course ID 014052)
OR - COSC2802 - Programming Bootcamp 2 (Course ID 054080)
OR - COSC1076 / COSC2082 / COSC2136 / COSC2696 - Advanced Programming Techniques (Course ID 004068)
OR - COSC2800 - IT Studio 2 (Course ID 054075)
OR - EEET2482 - Software Engineering Design (Course ID 038296)
OR - MATH2393- Engineering Mathematics (Course ID 054543)
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.
If you have completed prior studies at RMIT or another institution that developed the skills and knowledge covered in the above course/s you may be eligible to apply for credit transfer.
Alternatively, if you have prior relevant work experience that developed the skills and knowledge covered in the above course/s you may be eligible for recognition of prior learning.
Please follow the link for further information on how to apply for credit for prior study or experience.
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 program learning outcomes for the following program(s):
Major - Enterprise Systems Development
- BP094P23 - Bachelor of Computer Science
- BP340P23 - Bachelor of Data Science
- BP162O - Bachelor of Information Technology (RMITO)
- BP162P23 - Bachelor of Information Technology
- BP349 - Bachelor of Information Technology (Professional)
PLO 1 Knowledge - Apply a broad and coherent set of knowledge and skills for developing user-centric computing solutions for contemporary societal challenges.
PLO 2 Problem Solving - Apply systematic problem solving and decision-making methodologies to identify, design and implement computing solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects.
PLO 5 Collaboration and Teamwork - Demonstrate effective teamwork and collaboration by using tools and practices to manage and meet project deliverables.
Major - Advanced Data Science
- BP340P23 - Bachelor of Data Science
- BP348 - Bachelor of Data Science (Professional)
PLO 1 Knowledge - Apply a broad and coherent set of knowledge and skills for developing data driven solutions for contemporary societal challenges.
PLO 2 Problem Solving - Apply systematic problem solving and decision making methodologies to identify, design and implement data driven solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects
PLO 3 Cognitive and Technical Skill - Critically analyse and evaluate user requirements and design data driven solutions, employing data science development tools, techniques and emerging technologies
PLO 4 Communication - Communicate effectively with diverse audiences, employing a range of communication methods in interactions.to both computing and non computing personnel.
PLO 5 Collaboration and Teamwork - Demonstrate effective teamwork and collaboration by using tools and practices to manage and meet project deliverables.
BP347 - Bachelor of Computer Science (Professional)
PLO 1 Knowledge - Apply a broad and coherent set of knowledge and skills for developing user-centric computing solutions for contemporary societal challenges.
PLO 2 Problem Solving - Apply systematic problem solving and decision-making methodologies to identify, design and implement computing solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects.
PLO 3 Cognitive and Technical Skill - Critically analyse and evaluate user requirements and design systems employing software development tools, techniques and emerging technologies.
PLO 5 Collaboration and Teamwork - Demonstrate effective teamwork and collaboration by using tools and practices to manage and meet project deliverables.
BP096P25 - Bachelor of Software Engineering (Professional)
PLO 1 Knowledge - Apply a broad and coherent set of knowledge and skills for developing user-centric software engineering solutions for contemporary societal challenges.
PLO 2 Problem Solving - Apply systematic problem solving and decision-making methodologies to identify, design and implement software engineering solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects.
PLO 3 Cognitive and Technical Skill - Critically analyse and evaluate user requirements and design systems employing software development tools, techniques and emerging technologies.
BH120CY - Bachelor of Engineering (Software Engineering) (Honours)
BH120BIT - Bachelor of Engineering (Software Engineering) (Honours)
PLO 1 Demonstrate a coherent and advanced understanding and knowledge of fundamental engineering and scientific theories, principles and concepts and apply advanced technical knowledge in specialist domain of engineering.
PLO 2 Demonstrate a coherent and advanced body of knowledge within the engineering discipline.
PLO 4 Apply knowledge of established engineering methods to the solution of complex problems in the engineering discipline.
PLO 5 Utilise mathematics, software, tools and techniques, referencing appropriate engineering standards and codes of practice, in the design of complex engineering systems.
PLO 8 Communicate engineering designs and solutions respectfully and effectively, employing a range of advanced communication methods, in an individual or team environment, to diverse audiences.
PLO 10 Critically analyse, evaluate, and transform information, while exercising professional judgement, in an engineering context.
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:
- 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;
- Compare, contrast, and apply key data structures: trees, lists, stacks, queues, hash tables and graph representations;
- Define, compare, analyse, and solve general algorithmic problem types: sorting, searching, graphs and geometric;
- Theoretically compare and analyse the time complexities of algorithms and data structures; and
- Implement, empirically compare, and apply fundamental algorithms and data structures to real-world problems.
Overview of Learning Activities
Key concepts will be explained in pre-recorded lectures and live lectorials, where course material will be presented and the subject matter will be illustrated with demonstrations and examples.
Workshop sessions focus on problem solving and application of data structures and algorithms learnt in classes and provide practice in the application of theory and procedures.
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
This course has no hurdle requirements.
Assessment Tasks
Assessment Task 1: Weekly Quizzes
Weighting 10%
This assessment task supports CLOs 1, 2, 3 & 4
Assessment Task 2: Mid-semester Challenge
Weighting 20%
This assessment task supports CLOs 1, 2, 3, 4 & 5
Assessment Task 3: Assignment 1
Weighting 30%
This assessment supports CLOs 1, 2, 3, 4 & 5
Assessment Task 4: End-of-semester Timed and Timetabled Exercises
Weighting 40%
This assessment supports CLOs 1, 2, 3, 4 & 5
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.