C S 111

Introduction to Computer Science

Computer Science College of Physical and Mathematical Sciences

Course Description

Teaches how to design, develop, reason about, and test programs. Topics include higher-order functions, object-oriented programming, recursion, algorithms, data structures, decomposition, interpreters, and regular expressions.

When Taught

All Semesters/Terms

Grade Rule

Grade Rule 8: A, B, C, D, E, I (Standard grade rule)

Min

3

Fixed

3

Fixed

3

Fixed

2

Other Prerequisites

CS 110 or equivalent prior programming experience

Recommended

Prior programming experience should include statements, variables, control flow (if/while), and functions

Title

Design

Learning Outcome

Design and develop moderate to medium-sized programs for problems with significant complexity, using both object-oriented and functional paradigms.

Title

Confidence

Learning Outcome

Demonstrate increased confidence in ability to design, develop, and test programs.

Title

Algorithms

Learning Outcome

Effectively use basic algorithms to design and develop a program, including recursion.

Title

Data Structures

Learning Outcome

Use data structures (e.g. lists, dictionaries, linked lists, trees) to organize data in a program.

Title

Modules & Libraries

Learning Outcome

Independently read documentation for a library, understand its operation, and incorporate the library into a program to extend its functionality.

Title

Abstraction

Learning Outcome

Effectively use modules, classes, and functions to decompose functionality of a medium-complexity system.

Title

Testing and Debugging

Learning Outcome

Write unit tests to ensure complete and correct functioning of a program. Explain the meaning of error messages encountered when running a program. Use the debugger in an IDE to step through code execution and identify the source of a bug.

Title

Computing

Learning Outcome

Write programs to accomplish tasks relevant to computer science, such as data visualization, image processing, network communication, storing and retrieving data from databases, etc.