## Course Description

A study of the use of a high-level language to implement basic data structures such as strings, lists, arrays, objects, and hashes, and their application to searching, sorting, and hashing. Representation of numbers and strings at the machine level. The course will also include an introduction to the concepts of algorithm design and problem solving with an emphasis on algorithm development, analysis, and refinement. Offered every fall.

Prerequisites: CS 126

## Course Objectives

Students successfully completing this course should:

- Implement basic data structures in a high level language.
- Be able to apply data structures to problems of searching and sorting.
- Understand the machine representation of numbers and structures.
- Understand basic algorithm analysis.

## Grading

Homework | 35% |

Three Exams | 15% Each |

Final Exam | 20% |

In order to pass the course, you must have a 60% average for homework and a 60% average for exams (separately).

Copying of programs, either from a classmate or the Internet, is not allowed. For a first offense, your course grade will be reduced by 1.0. For a second offense, your course grade will be 0.

## Attendance

Attendance is required. More than three unexcused absences will result in a failing grade for the course, regardless of your average.