Skip to main content

ICS 141 Problem Solving with Programming

Structure, design, and implementation of object-oriented computer programs. Topics include sequential structures, selection structures, repetition structures, recursion, quadratic sorting algorithms, exceptions, objects, and classes. Emphasis on methods, parameter passing, arrays, and arrays of objects. Exploration of problem-solving and algorithm-design techniques using pseudocode and Unified Modeling Language (UML). Design of good test cases and debugging techniques are highlighted. Programming projects involving multiple classes.


Special information

First day attendance is mandatory.Co-Requisite: MATH 215 or have taken the course prior. Note: This class uses the Java language. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
4 Undergraduate credits

Effective August 17, 2021 to present

Learning outcomes


  • Design and implement object-oriented applications based on problem statements.
  • Apply consistent documentation and program style standards that contribute to the readability and maintainability of software.
  • Develop, design, analyze, and implement logic within a program that solves a problem with a finite number of operations.
  • Design and develop programs that implement fundamental logic structures of sequence, selection, and repetition.
  • Write programs that use file I/O to provide persistence across multiple executions.
  • Develop proficiency in specification and use of appropriate primitive data types and their aggregation into simple linear data structures.
  • Decompose problems into clearly defined sub-problems based on program requirements.
  • Implement algorithms utilizing recursive structures.
  • Create appropriate test cases and use debugging skills to verify correctness of output.