Course Outline

Introduction to Computer Science 2: Algorithms and Application

Professor Dr K Darcy Otto
Title Introduction to CS 2: Algorithms and Application
Code CS 4xxx
Credits 4
Term Spring 2025
Times TBD
Location TBD
Delivery Fully in-person
Contact Email
Office Hours TBD

Description

Embark on a deeper exploration of computer science, where the focus shifts from programming and foundations of computer science, to the intricacies of algorithms and their real-world applications. This course reinforces and builds upon the concepts introduced in Introduction to CS 1, and provides an introduction to algorithm design, data analysis, and the practical application of computational techniques.

You will learn not only how to explore possible solutions using computational thinking, but also how to analyze and understand the data that drives these solutions. You will explore a selection of topics such as dynamic programming, stochastic modelling, statistical inference, and machine learning. These techniques will provide you with some tools to make sense of the vast amounts of data often encountered in computing tasks.

This course does not simply aim to expand your technical skill set. It seeks to cultivate a critical mindset that questions, analyzes, and interprets data, so that you can make informed inference and decisions. It invites those who are intrigued by the power of algorithms to engage computation in diverse contexts, setting the stage for advanced study in science, the arts, and beyond.

This course follows from Introduction to Computer Science 1: Programming and Computer Science.

Learning Outcomes

  1. Enhance problem-solving skills by learning to design and implement algorithms that address complex real-world challenges.
  2. Develop a nuanced understanding of how to analyze and interpret data, and gain facility in drawing meaningful insights from diverse datasets.
  3. Acquire the ability to apply computational models to simulate real-world phenomena, providing a foundation for predictive analysis and decision-making.
  4. Foster critical thinking and analytical skills, as a basis for making informed and evidence-based conclusions.
  5. Gain exposure to the principles of machine learning and data science, in support of diverse applications.

Prerequisites: Introduction to Computer Science 1: Programming and Computer Science, or permission of the instructor.

Topics include: Python programming, complexity theory, discrete structures, recursion, object-oriented programming, testing and debugging

Evaluation will be based on active engagement, projects, and a comprehensive final examination.