Back to Modules
IS115

Algorithms and Programming

1 CreditsBoth

Description

A&P can be viewed as a first course in algorithms. Students will be trained to compute the time complexity of algorithms and compare algorithms using their Big-O time complexity. Besides coming up with the pseudocode of an algorithm to solve a given problem, students are expected to implement the pseudocode in Python for the project assignments. Common data structures such as stacks, queues, trees, graphs, heaps and hash maps will be covered. After students have gained a strong foundation in complexity and data structures, students will be introduced to heuristic approaches – specifically greedy and local search algorithms – that can be used to tackle computationally intractable problems.

Requisites

Prerequisites: IS111/CS101/COR-IS1704 - Pre-req

Co-requisites: None

Anti-requisites: IS115/ COR-IS1702/CS201 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: N/A

Areas: Accounting Data and Analytics Electives Accounting Electives Accounting Options Business Options Computing & Law Core (Intake 2024 onwards) Financial Forensics Electives Grad Req - Dig Tech/Data Ana (Intake 2024 onwards) Information Systems Core (Intake 2024 onwards) Software Engineering Core (Intake 2024 onwards) Technology Studies Cluster

Learning Outcomes

Students will be trained in the following competencies: 1. Understanding how an algorithm solves a problem 2. Explaining basic algorithms such as searching and sorting and applying them to solve problems 3. Applying iteration or recursion to design an algorithm 4. Analysing and comparing the complexities of different algorithms 5. Improving the complexity of algorithms by designing more efficient solutions 6. Demonstrating the ability to use fundamental data structures to solve problems 7. Implementing an algorithm in a programming language such as Python 8. Knowing the limits of computations, including concepts such as P, NP, NP-Complete, and NP-Hard 9. Contrast optimal and approximation solutions 10. Use heuristic strategies such as greedy algorithms to solve an intractable problem 1.       Discover the science of computing 2.       Model problems and learn practical problem-solving techniques to tackle complex computational problems. 3.       Apply problem-solving techniques to develop more elegant and efficient programs 4.       Learn to write programs to represent and manipulate with complex data objects 5.       Understand the challenge of scale, not only in dealing with large data sets, but also in appreciating the nature of computing and computability 6.       Derive the Big-O time complexity of an algorithm, and compare two algorithms in terms of time complexity.

Graduate Learning Outcomes

Disciplinary Knowledge, Critical thinking & problem solving, Collaboration and leadership, Communication, Self-directed learning, Resilience

Competencies

Applications Development, Formal Proof Construction, Algorithm Analysis, Combinatorial Decision-making, Computational Modelling