Skip to Main Content

IS115

Download as PDF

Algorithms and Programming

SCIS Sch of Computing & Info Sys

Course (UG/PG)

Undergraduate

Offering Unit/Department

Course 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.

Course 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.

Discipline-Specific Competencies

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

SMU Graduate Learning Outcomes

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

Grading Basis

GRD - Graded

Course Units

1