# CS 142 : COMPUTER SCIENCE II WITH JAVA

A continuation of CS& 141. Includes implementation of interfaces, modularity, data structures, file I/O algorithms and analysis, searching, sorting and recursion using the Java programming language. Emphasis on learning to develop algorithms using the principles of top-down design and step-wise refinement and modularity in object-oriented programming paradigm. Based on ACM (Association for Computing Machinery) curriculum guidelines for Computer Science II. (E)

## Course Outcomes

- Estimate time and space complexities for a given algorithm using Big-O notation. [Evaluating] AL-02.
- Contrast standard complexity classes. [Analyzing] AL-03.
- Implement common search algorithms, including linear and binary searches. [Applying] AL-08.
- Compare various data structures for a given problem, such as array, list, set, map, stack, queue, hash table, tree, and graph. [Analyzing] AL-13.
- Execute different traversal methods for trees and graphs. [Applying] DS-23.
- Calculate probabilities of events and expectations of random variables for elementary problems. [Applying] DS-30.
- Implement in code OOP constructs, including encapsulation, abstraction, inheritance, and polymorphism. [Applying] PL-04.
- Contrast functional and object-oriented programming paradigms. [Analyzing] PL-06.
- Use an integrated development environment (IDE) to create, execute, test, and debug secure programs. [Applying] SDF-16.
- Apply consistent documentation and program style standards. [Applying] SDF-18.
- Implement in code different types of testing, including security, unit testing, system testing, integration testing, and interface usability. [Applying] SE-13.
- Compare professional codes of conduct from the ACM, IEEE Computer Society, and other organizations. [Analyzing] SP-09.

## At a Glance

**Credits:**
5

**Prerequisites:**

CS& 141 and currently enrolled in MATH& 141 OR 2.0 or higher in MATH& 141 with instructor permission.

**Program:**
Computer Science