CIS170 - Java Development I

3 Credit hours - 2 Lecture, 2 Lab

Prerequisite(s): Grade of “C” or better in CIS120

Course Rationale:

To introduce the student to object-oriented programming using the Java programming language. Java is a popular programming language for both the server side and networked applications. This course will broaden the student's knowledge base in computer programming making them more employable in the business and professional community

Catalog Description:

This course is an introduction to object oriented programming using Java. Topics covered are: control structures, classes, objects, encapsulation, polymorphism, run-time type identification, messages, methods, applets, and arrays.

Course Objectives

Upon successful completion of this course students should be able to:

  1. Design, code, document, and debug programs using Java programming techniques.

  2. Develop platform independent solutions for software (server side and internet) applications.

  3. Code solutions using sequence, decision and repetition control structures.

  4. Apply object oriented design techniques of encapsulation, polymorphism, and data abstraction using classes to represent objects.

  5. Create applets and stand-alone computer programs.

  6. Use Internet resources, reference manuals, tutorials, on-line HELP, text and other reference material to resolve questions on function and operation.

All course assignments and exams are closely aligned to, and assess the student's mastery of, these core objectives.

Core Outcomes

In this course, students continue to build upon the programming knowledge gained in CIS-120 and learn how to write, debug, and maintain well formed, well documented Java code. By the end of this course, students should be able to:

  • Understand the fundamentals of the Java programming language

    • Describe the use of main in a Java application - signature of main, why it is static; how to consume an instance of your own class; command-line arguments

    • Perform basic input and output using standard packages - print statements; import and use the Scanner class

    • Evaluate the scope of a variable - declare a variable within a block, class, or method

  • Demonstrate the use of data types, variables and expressions

    • Declare and use primitive data type variables - data types, including byte, char, int, double, short, long, float, boolean; identify when precision is lost; initialization; how primitives differ from wrapper object types such as Integer and Boolean

    • Construct and evaluate code that manipulates strings - string class and string literals, comparisons, concatenation, case and length; String.format methods; string operators; converting a primitive data type to a string; the immutable nature of strings; initialization; null

    • Construct and evaluate code that creates, iterates, and manipulates arrays and array lists - one- and two-dimensional arrays, including initialization, null, size, iterating elements, accessing elements; array lists, including adding and removing elements, traversing the list

    • Construct and evaluate code that performs parsing, casting and conversion - implementing code that casts between primitive data types, converts primitive types to equivalent object types, or parses strings to numbers

    • Construct and evaluate arithmetic expressions - arithmetic operators, assignment, compound assignment operators, operator precedence

  • Implement flow control in code

    • Construct and evaluate code that uses branching statements - if, else, else if, switch; single-line versus block; nesting; logical and relational operators

    • Construct and evaluate code that uses loops - while, for, for each, do while; break and continue; nesting; logical, relational, and unary operators

  • Implement and Perform Object-Oriented Programming

    • Construct and evaluate a class definition - constructors; constructor overloading; one class per .java file; this keyword; inheritance and overriding at a basic level

    • Declare, implement, and access data members in a class - private, public, protected; instance data members; static data members; using static final to create constants; describe encapsulation

    • Declare, implement, and access methods - private, public, protected; method parameters; return type; void; return value; instance methods; static methods; overloading

    • Instantiate and use a class object in a program - instantiation; initialization; null; accessing and modifying data members; accessing methods; accessing and modifying static members; importing packages and classes

  • Demonstrate proper steps of debugging and troubleshooting code

    • Troubleshoot syntax errors, logic errors, and runtime errors - print statement debugging; output from the javac command; analyzing code for logic errors; console exceptions after running the program; evaluating a stack trace

  • Implement exception handling - try catch finally; exception class; exception class types; display exception information

  • Explain the reason source control is used in software development and demonstrate the ability to use source control systems such as Github to create repositories, check code into repositories, create and use branches, merge branches, and create pull requests.

Test Out Requirements

Students who wish to demonstrate proficiency in this course will need to complete a Departmental proficiency exam. Departmental proficiency examinations are created by appropriate college faculty to allow students to demonstrate their mastery of course content in designated subjects. These examinations will be equivalent to the cumulative final assessment used in the course. Faculty will determine the minimum score required to earn credit by exam for these courses.

The college’s test out policy is outlined in policy 2.12 - Credit by Exam (Test Out)

Last updated