# ITEC 120

ITEC 120: Principles of Computer Science I (GE)

Prerequisites: A “C” or better in MATH 125 or MATH 138; or credit for MATH 126, MATH 168, OR MATH 171; a 2.5 GPA or higher; or permission of instructor.

Credit Hours: (4)

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

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

Students who have taken ITEC 109 must earn a ‘C’ or better in ITEC 109 before taking ITEC 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