CIS171 - Java Development II
3 Credit hours - 2 Lecture, 2 Lab
Prerequisite(s): Grade of “C” or better in CIS170
Course Rationale:
This course is designed to develop proficiency in programming to solve technical problems. To be an ideal candidate for most programming positions, students need special skills in programming, and this course delves deeper into topics such as object-oriented programming, effective data access, and distributed programming.
Catalog Description:
This course is a continuation of CIS 170 (Java Programming I). After a review, the student is introduced to intermediate programming concepts essential for students seeking a career in software development. Topics include: graphical user interface (GUI) components, lists, queues, trees, other data structures and the Collections API.
Course Objectives
Upon successful completion of this course students should be able to:
Identify, explain and apply intermediate features (e.g. packages, interface, exceptions, event handling) and the necessary syntax of the Java programming language to write such software.
Identify, explain and apply the fundamental abstract data types and Java implementations of arrays, lists, queues and binary trees.
Enter, edit, design, code, document, and debug programs using intermediate Java programming techniques using strings, arrays, lists, queues and binary search trees.
Enter, edit, design, code, document, and debug programs using intermediate object-oriented programming techniques including encapsulation, inheritance, and polymorphism.
Design, code, enter, document and debug event-driven programs in a graphical environment; as used in elementary graphical user interfaced programs.
Design and implement software using object-oriented programming techniques implementing lists, queues, trees, and other fundamental data structures.
Create and manipulate data files using streams.
Identify and explain Internet resources, reference manuals, textbooks, tutorials, on-line, and other reference material to resolve question on function or 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-170 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:
Demonstrate object-oriented programming
Understand the fundamentals of classes - properties, methods, events, and constructors; how to create a class; how to use classes in code
Understand inheritance - inheriting the functionality of a base class into a derived class
Understand polymorphism - extending the functionality in a class after inheriting from a base class, overriding methods in the derived class
Understand encapsulation - creating classes that hide their implementation details while still allowing access to the required functionality through the interface, access modifiers
Implement abstract classes and interfaces to define common behavior for classes (including unrelated classes).
Develop GUI Java applications
Understand how to manipulate GUI nodes utilizing JavaFX classes
Implement event driven programming principles to respond to GUI screen events
Explain processing with panes, groups, UI controls and shapes
Display images, work with buttons, text, and other common GUI and multimedia controls
Implement advanced Java concepts
Process Queue, Stack and List data structures
Implement generic data types
Explore multithreading and parallel programming
Implement a network chat to explore two way communications
Demonstrate best-practices of general software development
Understand application life cycle management - phases of application life cycle management, software testing
Interpret application specifications - reading application specifications and translating them into prototypes, code, select appropriate application type, and components
Understand algorithms and data structures - arrays, stacks, queues, linked lists, and sorting algorithms; performance implications of various data structures; choosing the right data structure
Utilize an industry standard integrated development environment to organize project contents, manipulate multiple source code files, and perform project level debugging.
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.
Exams and Certification Equivalent:
Certification included in the course - Certiport IT Specialist, Java
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