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 4384
Credits 4
Term Spring 2025
Times TF 10h30–12h20
Location Dickinson 212
Delivery Fully in-person
Contact Email
Office Hours TF 4:10 pm

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.

An overarching objective of this course is to help you develop as a student of the liberal arts. True students of the liberal arts are able to reflect on the context in which they live, and reason about what it means to live a meaningful and happy life. Thus, they are able to be more than just children of their own time. But this means we must be willing to put our ideas to the test, see our own errors, and develop intellectual courage and humility. It also helps not to take ourselves too seriously.

Readings

  • Guttag, John V. Introduction to Computation and Programming Using Python, with Application to Computational Modeling and Understanding Data, 3rd ed. Cambridge: The MIT Press, 2021. Available in the Dickinson reading room, and Crosset Library.

Evaluation

You may chose either Option A or Option B for a grading scheme. Option B adds a final project, and reduces the weight of the course meetings and oral examination.

Option A

Midterm Examination 50% Comprehensive
Final Examination 50% Comprehensive

Option B

Midterm Examination 40% Comprehensive
Final Examination 40% Comprehensive
Final Project 20% Subject to approval
  • Final Project: If you choose Option B, you will propose and complete a project in coördination with the professor. A proposal must be approved in order to submit your final project.

  • Examinations: The examinations are comprehensive.

  1. Class Schedule: Current schedule of readings and assignments
  2. Electronic Whiteboard: For information sharing during class

Additional Information

  1. This course outline is subject to arbitrary change. I shall announce any changes in class; if you are not present, you are still responsible for finding out what I announce.
  2. Late exercises or assignments will not be accepted without a medical or compassionate reason. Exercises or assignments are due according to deadlines articulated in class.
  3. The use of notebook computers or mobile devices is not permitted during class, except as allowed by the professor to do work directly related to some activity in class. You are expected to use analogue technologies (e.g., pen, pencil, and paper) to take notes, unless you have a special dispensation to use digital devices in class.
  4. Please consult the college policy on class attendance. You must attend classes regularly and on-time. In accordance with the college’s policy on class attendance, credit will not be given to a student who has more than two weeks’ worth of absences.
  5. Please consult the college policy on academic and artistic ethics. The use of artificial intelligence in coursework is not permitted, except as explicitly stated in this outline or allowed by the professor. You must fully cite your use of artificial intelligence if you use it.
  6. Office hours are first-come-first-serve, unless you have an appointment. If you request an appointment by email, please send me a selection of several times you are available.
  7. If you are being graded, your mark in the course will be translated into a letter-grade, according to the following scale: A+ (90–100), A (85–89), A– (80–84), B+ (77–79), B (73–76), B– (70–72), C+ (67–69), C (63–66), C– (60–62), D (50–59), F (0–49). Your grade will not be otherwise curved or adjusted.