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. Includes an introduction to the functional programming paradigm, and emphasis on professional software development practices and techniques. This course pulls from the Association for Computing and Machinery (ACM) computer science knowledge unit areas including ÔÇťAlgorithms and complexity, Discrete structures, Programming languages, Software development fundamentals, Software engineering, Social issues and professional practice. (E)

Prerequisites

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

Course Outcomes

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

Overview

Program

Credits

5