CS 2421 Object Oriented Programming in Java
Course Description
This course is a continuation of CS 2300. It introduces object-oriented programming (OOP) in Java in the UNIX/Linux programming environment. The major topics covered in the course include standard I/O in Java, static and instance methods, abstract data types (ADT), data abstraction and information hiding, inheritance dynamic binding of the methods to the messages, generic methods and classes, Collections, recursion, exception handling, GUI, and multi-threading This course also emphasizes the object-oriented software design and implementation methodology, the use of UNIX/Linux basic commands, and programming in the UNIX/Linux environment. Programming projects are implemented in Java and developed in the UNIX/Linux programming environment. This is a technology intensive course.
Prerequisite(s): CS 2300 with at least a C- and MATH 1160 or MATH 1350 with at least a C-. Credits: 4.0
Textbooks
Starting Out with Java from Control Structures to Data Structures 4th Edition By Tony Gaddis and Godfrey Muganda
Learn Linux Quickly by Ahmed AlKabary (available free via the David & Lorraine Cheng Library)
Course Objectives
To learn the features of the Java programming language as a continuation of the previous course.
To learn the characteristics of an object-oriented programming language: data abstraction and information hiding, inheritance, and dynamic binding of the messages to the methods.
To learn the basic principles of object-oriented design and software engineering in terms of software reuse and managing complexity.
To introduce generic methods, generic classes, and collections
To introduce recursion and file-handling.
To introduce exception handling, GUI, and multi-threading.
To enhance problem solving and programming skills in Java with extensive programming projects.
To familiarize students with the Linux software development environment
Student Learning Outcomes
After the completion of this course, a successful student will be able to do the following:
Install, configure, and test (Java Virtual Machines) JVM’s), compilers and IDE’s for Java and other systems software.
Program and solve-problems in Java using basic 3rd generation programming constructs, as a foundational review of CS 2300 but with Java instead of C++.
Describe and apply the concept of data abstraction and information hiding.
Program and solve-problems in Java using Classes, and Objects, with their respective attributes and member functions.
Describe, Interpret, and Analyze the mechanism of memory allocations and dynamic binding in a Java program.
Program and solve-problems in Java using Inheritance, Polymorphism, and Deeper Aspects of Object-Oriented Programming (OOP)
Program and solve-problems in Java using Exception Handling, File-processing, Recursion, GUI, and multi-threading.
Demonstrate experience, proficiency, and productivity with Windows, Linux, and X-Windows systems.
Write BASH shell scripts for automating file and process management procedures.
Course Content
Module 1
Syllabus & Introduction to Blackboard Course Management System
Install, configure, and test (Java Virtual Machines) JVM’s), compilers and IDE’s for Java and other systems software. (SLO 1)
Windows, Linux and X-Windows systems. (SLO 8)
Gaddis - Chapter 1 Introduction to Computers and Java (SLO 1)
Gaddis - Chapter 2 Java Fundamentals (SLO 2)
AlKabary - Chapter 1 Your First Keystrokes (SLO 8)
AlKabary - Chapter 2 Climbing the Tree (SLO 8)
Module 2
Gaddis - Chapter 3 Decision Structures (SLO 2)
Gaddis - Chapter 4 Loops and Files (SLO 7)
AlKabary - Chapter 3 Meet the Editors (SLO 8)
Module 3
Gaddis - Chapter 5 Methods (SLO 2)
Gaddis - Chapter 6 A First Look at Classes (SLO 3, 4)
AlKabary - Chapter 4 Copying, Moving and Deleting Files (SLO 8)
AlKabary - Chapter 5 Read Your Manuals! (SLO 8)
Module 4
Gaddis - Chapter 7 Arrays and the ArrayList Class (SLO 4)
Gaddis - Chapter 8 A Second Look at Classes and Objects (SLO 4)
AlKabary - Chapter 6 Hard versus Soft Links (SLO 8)
Module 5
Gaddis - Chapter 9 Text Processing and More about Wrapper Classes (SLO 7)
Gaddis - Chapter 10 Inheritance (SLO 5, 6)
AlKabary - Chapter 9 Piping and I/O Redirection (SLO 8)
AlKabary - Chapter 10 Analyzing and Manipulating Files (SLO 8)
Module 6
Gaddis - Chapter 11 Exceptions and Advanced File I/O (SLO 7)
Gaddis - Chapter 15 Recursion (SLO 7)
AlKabary - Chapter 11 Let’s Play Find and Seek (SLO 8)
Module 7
Gaddis - Chapter 17 Generics (SLO 6)
Gaddis - Chapter 18 Collections and the Stream API (SLO 6)
AlKabary - Chapter 16 Bash Scripting is Fun (SLO 9)
AlKabary - Chapter 19 Create Your Own Commands (SLO 8)
Contact
Contact: Professor Cheng chengm1@wpunj.edu
Last updated