# CS 202

## COMPUTER SCIENCE I I - CSC 202

**Instructor**: Steve Howard

**Course Description:**The course is designed to teach object oriented programming techniques using Python. The course examines data structures and algorithm analysis. It covers data structures (including stacks, queues, arrays, records, files, linked lists, and trees), abstract data types, algorithm analysis (including searching and sorting methods), and file structures. The course includes a 3 hour lab each week. Prerequisite CSC 201.

**Textbook:**Liang, 2013, Introduction to Programming Using Python

**General Course Objectives:**Upon completion of the course students will be able to:

- properly utilize object – oriented programming techniques to develop algorithms which solve programming problems.
- document all programming projects.
- utilize classes and derived classes to develop solutions to programming problems.
- utilize recursion for problem solving
- utilize file processing to read and write objects to files.
- understand and implement sorting algorithms and compare their efficiencies. (Selection, Bubble, Insertion, Quick, Merge)
- understand and implement dynamic data structures including linked lists, queues and stacks to solve programming problems.
- understand and implement trees including binary search of trees.
- utilize Tkinter to develop user interfaces
- Use numpy and scipy to solve mathematical models

**Evaluation of student performance:**Student performance will be evaluated using quizzes, lab activities, tests and programming projects. The points assigned to each activity are listed below.

**Computer Science – TENTATIVE Weekly Class Schedule – Spring**

Week Section Topic

1 Ch 13: Reading from and writing to files – Exception Handling

2 Ch 15: Recursion

3 Ch 16: Good Software Practices – Ch 17: Sorting algorithms

4 CH 17: Sorting algorithms – Ch 19 Binary Search Trees

4 Test 1

5 Ch 18: Linked Lists

6 Ch 18: Doubly Linked Lists, Queues and Stacks

7 Dequeues, Applications implementing Linked Lists, Queues and Stacks

8 Applications implementing Linked Lists, Queues and Stacks

9 TBA

10 TBA

11 Test 2

11 Numpy intro

12 Numpy/MatPlotLib and vectorization

13 Graphing and scientific libraries in Numpy

14 Exam Q & A

15 Final Exam

Floats depending on year Spring Break

16-end of yr Senior Project Time