CS142 Introduction to Computer Science II
Spring 2025
Syllabus

Official Course Description. (Somewhat outdated.) This course will further develop and expand upon the topics introduced in CS141. Advanced programming techniques will be covered, with extensive use of recursion and dynamic data structures. Abstract data types, including lists, queues, trees and graphs, will be studied. Specific emphasis will be given to tree traversals and binary search trees. Algorithms for searching and sorting will be explored along with methods of comparative analysis. The topics in this course provide an essential foundation for the further study of computer science.

More Accurate Description. This course further develops and expands upon the topics introduced in CS141. It covers principles and techniques fundamental to the design and development of larger computer programs. This includes: data abstraction and object-oriented design; elementary data structures such as vectors, linked lists, maps, stacks and queues; algorithms for searching and sorting; analytical methods for evaluating the efficiency of algorithms; and the algorithm design technique of recursion. An object-oriented language such as C++ and its associated Standard Template Library will be used to illustrate the concepts and techniques. The topics in this course provide an essential foundation for the further study of computer science.

Clarkson Common Experience. CS142 serves as a Technology Course in the Clarkson Common Experience.

Prerequisites. CS141 or equivalent.

Location and Times. SC 162. TuTh 3:00-4:15.

Instructor. Alexis Maciel. Science Center 379, alexis@clarkson.edu, 315-268-2385. Office Hours: MW 2:00-3:30, TuTh 9:30-11. (If you're sick, you can join office hours on Zoom. Link on Moodle. But send me email to warn me.)

Required Text. None.

Course Objectives.

  1. To learn principles and techniques fundamental to the design and development of computer software. These include data abstraction, object-oriented design, elementary data structures and algorithms, analysis of algorithms, and recursion.

  2. To further develop your coding, documentation, debugging and testing skills.
Demonstrable outcomes. By the end of the semester,
  1. You will have a good understanding of the principles and techniques mentioned in Objective 1 above.

  2. You will be able to use them in the design and implementation of C++ programs of a moderate size.

  3. You will be able to implement elementary data structures including vectors, linked lists, stacks and queues.

  4. You will understand the importance of using standard software components and will be familiar with the basic data structures and algorithms provided in the C++ Standard Template Library.

  5. You will be able to analyze the running time of simple algorithms.

  6. You will be able to implement simple recursive algorithms.

  7. You will be able to implement and analyze basic algorithms for searching, sorting and, if time permits, tree traversal.

Topics to be covered. Data abstraction, classes, object-oriented design, exceptions, linked lists, vectors, maps, stacks, queues, iterators, templates, the STL, analysis of algorithms, recursion, binary search, quicksort, mergesort, sound programming principles. If time permits, inheritance, polymorphism, trees and binary search trees.

Grading. Your evaluation will be based on several homework assignments (A), two programming projects (P) and three tests (T). Your course grade will be computed using the following formula:

15% A + 10% P + 25% T1 + 25% T2 + 25% T3

The tests will be 60-minutes long. The first two tests will be given in class. Tentative dates are Tuesday, February 18 and Thursday, April 3. The final exam will consist of Test 3 and optional retakes for each of the first two tests. All students are required to write the final exam (no exemptions).

Policy for the test retakes. If your grade on a retake is higher than the original grade, you keep the higher grade. If your grade on a retake is lower than the original grade, your test grade becomes the average of the two grades.

Letter grades. Numerical course grades will be converted to letters by using the following scale:

Letter F D C- C C+ B- B B+ A- A A+
Min grade - 60 67 70 73 77 80 83 87 90 95

Policy for missed work. There will be no make-up assignments. Make-ups for the first two tests may be arranged but only if a good reason is provided, in advance, if possible.

Laptops and other electronic devices. These are permitted in class only for the purpose of taking notes.