Course overview
This course will develop your coding and problem-solving skills with a focus on data and data science. You will learn algorithm design as well as fundamental programming concepts such as data, selection, iteration and functional decomposition, data abstraction and organisation. You will explore Object-Oriented programming fundamentals, including the use of classes and inheritance. You will build effective problem-solving skills, including exposure to problem solving processes and strategies, simple Searching and Sorting algorithms (linear and binary search, selection and insertion sort). You will build fundamental software development skills including the use of programming environments and tools, debugging, testing and fundamentals of good programming practice, style and design.
Course learning outcomes
- Design, implement and test algorithms using fundamental programming constructs and data structures.
- Translate between machine level representations and demonstrate how data is represented in computers.
- Identify, evaluate and use information sources to support the practice of programming, including APIs, tutorials and documentation.
- Calculate and compare the runtime complexity of common searching and sorting techniques and their implementations – both iterative and recursive.
- Identify and apply searching and sorting techniques (linear and binary search, selection, insertion, merge, quick, bucket sorts).
- Identify and apply basic data structures: linked list, stack, queue, qraph, tree (ordered, binary, balanced).
- Design, implement and test solutions to problems selecting appropriate data structures and basic algorithmic techiques (brute force, divide and conquer, transform and conquer, greedy).