Skip to main content

CS 120

CS 120: Principles of Computer Science I (GE)

Prerequisites: One of the following:

1. A "C" or better in one of the following classes:  CS 101, MATH 125, MATH 138, MATH 126 , MATH 168 , MATH 171, or Phys 111, Phys 112, or Phys 221.

2. A passing score on a placement exam approved by the School of Computing and Information Sciences.

 

Credit Hours: (4)

A rigorous, systematic approach to object-oriented problem solving and programming. Students who withdraw from CS 120 may add CS 111 during the same term.

Note(s): General Education and Scientific and Quantitative Reasoning designated course.  Students may not attempt to take CS 120 more than two times (a “W” will count as an attempt).

Students who have taken CS 109 must earn a ‘C’ or better in CS 109 before taking CS 120.

 

Detailed Description of Content of Course

Topics include:

1. Fundamental constructs (primitive types, variables, I/O, conditionals, loops, methods)

2. Processing strings and arrays of primitive and reference types

3. Testing and debugging

4. Terminal input and output

5. Object oriented programming techniques: methods, fields; getters, setters, mutators; introduction to subclasses

6. Algorithmic problem solving including functional decomposition

7. Introduction to algorithms (linear search; an example of sorting)

 

Detailed Description of Conduct of Course

Class lecture and discussion sessions present and explain problem solving techniques and standard algorithms, illustrated with examples.  In the laboratory students learn, with faculty guidance, to solve programming problems and to implement their solutions.  Students are also required to solve, code, test and debug problems without direct faculty guidance.

 

Goals and Objectives of the Course

Students who complete the course will be able to:

1. Design, implement, test, and debug a program in an object-oriented language that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, methods and constructors.

2 Apply the techniques of structured (functional) decomposition to break a program into smaller pieces, and describe the mechanics of passing parameters by value. 

3. Choose the appropriate data types (primitive types, strings, objects, and arrays thereof) for modeling a given problem

4. Write methods with parameters and return types that are primitive types, strings, objects, or arrays thereof.

5. Test and debug programs by: Developing test cases and writing a separate driver class to test the methods of a class; desk-checking individual methods; and inserting relevant print statements to discover program behavior.

6. Answer basic questions about professional and ethical considerations of developing software, information privacy, and acceptable use policies for computing in the workplace.

 

Assessment Measures

Student achievement is measured by written tests and evaluation of homework and programming assignments.

Other Course Information

None.

 

Review and Approval

October 1, 1991          Updated for 1991-92              Ivan B. Liss, Chair

May 12, 1994              Updated for 1994-95              Edward G. Okie, Chair

May 30, 1005              Updated for 1995-96              Edward G. Okie, Chair

Sept. 25, 2001             Updated                               John P. Helm, Chair

Feb. 11, 2002              Updated                                John P. Helm, Chair

Feb. 17, 2002              Updated                                John P. Helm, Chair

February, 2003            Updated                                John P. Helm, Chair

April 15, 2009              Updated                                Arthur E. Carter, Chair

Revised: June 1, 2012

April, 2019

March 01, 2021