CS& 141 : Computer Science I with Java

Provides students with an introduction to algorithmic thinking and design for the purpose of managing complexity and solving difficult problems. Students will be introduced to programming languages through Java and programming language constructs, standard programming tools and techniques such as debugging, compilation and execution. Covers how computer programs and software manage complexity through abstraction, encapsulation and inheritance. This course pulls from the Association for Computing and Machinery (ACM) computer science knowledge unit areas including “Algorithms and complexity, Computational science, Programming languages, Software development fundamentals, Social issues and professional practice”.


P (2.0 or higher) in MATH 098/099 or above OR concurrent enrollment.

Recommended Prerequisites:

Course Outcomes

  1. Implement basic numerical algorithms. [Applying] AL-07.
  2. Implement common search algorithms, including linear and binary searches. [Applying] AL-08.
  3. Illustrate the concepts of modeling and abstraction with respect to problem solving. [Applying] CN-01.
  4. Design a simple class hierarchy using superclasses, subclasses, and abstract classes. [Creating] PL-01.
  5. Design an algorithm in a programming language to solve a simple problem. [Creating] SDF-01.
  6. Create code in a programming language that includes primitive data types, references, variables, expressions, assignments, I/O, control structures, and functions. [Creating] SDF-07.
  7. Apply a variety of strategies to test and debug programs. [Applying] SDF-15.
  8. Use an integrated development environment (IDE) to create, execute, test, and debug secure programs. [Applying] SDF-16.
  9. Use standard libraries for a given programming language. [Applying] SDF-17.
  10. Differentiate among intellectual property, fair-use, copyright, patent, trademark, and plagiarism. [Understanding] SP-10.
  11. Develop technical artifacts. [Creating] SP-18.