Course Outline

Introduction to Computer Science 1: Programming and Computer Science

Professor Dr K Darcy Otto
Title Introduction to CS 1: Programming and Computer Science
Code CS 2xxx
Credits 4
Term Fall 2024
Times TBD
Location TBD
Delivery Fully in-person
Contact Email
Office Hours TBD

Description

Have you ever imagined speaking in the language of computers, and transforming your ideas into actions that computers can perform? This course is a gateway to discovering the art and science of programming, a crucial skill that serves as the backbone of computer science. But computer science transcends mere programming. Our actual aim is to nurture your ability to think like a computer scientist.

Computer scientists approach and solve problems using computational thinking. This is an essential skill in the modern age. No prior programming experience is necessary, making this course an ideal starting point for anyone wanting to venture into the realm of computer science, including those from liberal arts backgrounds who want to explore the interplay of technology and society.

This course will introduce you to foundational concepts such as functions and abstractions, data structures, and algorithm complexity, using the Python language. These topics serve as the building blocks for computer science, and pave the way for more advanced topics in the field. Through your exploration, you will not only learn to distinguish what computer science offers as a field, but also gain valuable insights into cutting-edge advancements that are driving innovation and transforming our world.

This course is followed by Introduction to Computer Science 2: Algorithms and Application.

Learning Outcomes

  1. Develop the ability to translate real-world problems into computer-executable solutions using elementary programming concepts.
  2. Grasp functions, scoping, and abstraction in order to structure complex ideas into logical, readable code.
  3. Understand data structures, and how to organize, store, and manipulate data within applications.
  4. Apply principles of algorithmic complexity in order to evaluate the performance of computational solutions.
  5. Acquire a foundation in programming that supports more advanced work in computer science and related subjects.

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.