CIS 284 Computer Programming II (3)

Catalog Description:

This course introduces object-oriented programming using the Java programming language. Students will learn to define their own classes and to understand possible relationships between classes in an inheritance hierarchy. These more general OOP principles will be illustrated through a variety of practical topics including mathematical calculations, string manipulation, file I/O, and basic GUI design. As with CIS 181 Computer Programming I, we will spend a significant amount of time in the lab writing programs that apply ideas discussed in class. Two lecture periods and two laboratory periods per week. (Offered spring semester only.)


Prerequisites:


CIS 181 Computer Programming I or an understanding of the topics in the course.

Required Course Materials:

Sharon Zakhour, Scott Hommel, Jacob Royal, Isaac Rabinovitch, Tom Risser, and Mark Hoeber, The Java Tutorial: A Short Course on the Basic, 4th edition, Addison Wesley, 2006 (ISBN:9780321334205) (There is also a free online version.)


Course Coordinator:


David R. Owen, Associate Professor of Computer Science

Course Audience:


Required course for Information Science majors. Mathematics majors must take this course or a second course in Statistics. Open to all students.

Course Objectives:

 

Students who successfully complete the course will be able to:

  1. Understand and discuss advanced object-oriented programming concepts useful in larger programs and code meant to be reused.
  2. Program effectively in Java using appropriate Java library classes for mathematical calculations, String manipulation, file I/O and basic GUI design.
  3. Read, write, modify, test and document programs using incremental development techniques.
  4. Succeed in future programming courses.

Topics:

 

  1. Continue to learn and use concepts of the Java Language.
    1. Syntax and uses of arrays in Java.
    2. Syntax and use of text files and object stream file formats.
    3. Syntax and use of inheritance, abstract classes, and interfaces.
    4. Generic classes.
  2. Object-oriented design and implementation of medium sized applications
  3. Introduction to the Big O notation and the efficiency analysis of algorithms.
  4. Learn and use the algorithms for internal searching (linear and binary) and sorting algorithms.
  5. Experimental timing of algorithms and analysis of results in terms of the algorithms of the process.
  6. Object comparison using comparators and comparable methods.

 

Revised:October 2013 (course description); February 2013 (course number); Spring 2012 (textbook & objectives)

Return to Course Index