JAVA Programming (Beginner)

Forming a group! Enroll now!

Classes start on January 16, 2017.

Theory Part:

  • 19 classes including exam
  • 2 hours/class
  • 7:00pm – 9:00pm
  • Price – $30/hour
  • Full Theory Cost – $1140
  • Course Registration Fee – $40. Non-refundable.

Practice Part:

  • This part is OPTIONAL but very valuable as each student will be working on a real project requiring Java Language Programming skills. Class projects or your own with an instructor (discuss with your instructor).
  • Duration – 5 classes/2 hours each.
  • 7:00pm – 9:00pm

Full Practice Cost – $300.

Join Course

About

This hands on Java Programming course provides an introduction to programming using the Java language. Students are introduced to the application development cycle, structure of programs, and specific language syntax. The course introduces important algorithmic constructs, string and character manipulation, dynamic memory allocation, standard I/O, and fundamental object-oriented programming concepts. The course explains the use of inheritance and polymorphism early on so the students can practice extensively in the hands-on labs. Structured programming techniques and error handling are emphasized. The course includes the processing of command line arguments and environment variables so students will be able to write flexible, user-friendly programs. Comprehensive hands-on exercises are integrated throughout to reinforce learning and develop real competency.

This class is intended for non-programmers. Students who already understand fundamental structured programming and object-oriented techniques should attend the Java Programming (Advanced)course instead of this more introductory course.

Course Prerequisites: Familiarity with computers.

Upon completion of this course, you will be tested and issued the School Completion Certificate as prove of your success.

Course Schedule

Fundamentals of the Program Development Cycle

– Computer Architecture
– The Notion of Algorithms
– Source Code vs. Machine Code
– Compile-Time vs. Run-Time
– Software Program Architecture (Standalone/Client-Server/Distributed/Web-Enabled)
– IDE (Interactive Development Environment)
– Concepts

Application Development Fundamentals

– Structure of a Java Program
– Memory Concepts
– Fundamental Data Type Declarations
– Fundamental I/O Concepts
– Fundamental Operators (Arithmetic Operators/Logical Operators/Precedence and Associativity)
– Building and Deploying a Java Program

Introduction to Classes and Objects

– Classes, Objects and Methods
– Object Instances
– Declaring and Instantiating a Java Object
– Declaring Methods
– set and get Methods
– Initiating Objects with Constructors
– Primitive Types vs. Reference Types

Flow Control

– Conditional Constructs
– Looping Constructs (Counter-Controlled Repetition/ Sentinel-Controlled Repetition)
– Nested Control Constructs
– break and continue Statements
– Structured Programming Best Practices

Writing Methods (Functions)

– Static vs. Dynamic Allocation
– Declaring Methods
– Declaring Methods with Multiple Parameters
– Method-Call Stack
– Scope of Declarations
– Argument Promotion and Casting
– Designing Methods for Reusability
– Method Overloading

Arrays

– Purpose of Arrays
– Declaring and Instantiating Arrays
– Passing Arrays to Methods
– Multidimensional Arrays
– Variable-Length Argument Lists
– Using Command-Line Arguments
– Using Environment Variables

Deeper Into Classes and Objects

– Controlling Access to Class Members
– Referencing the Current Object Using ‘this’
– Overloading Constructors
– Default and No-Argument Constructors
– Composition of Classes
– Garbage Collection and Destructors
– The ‘finalize’ Method
– Static Class Members

Defining Classes Using Inheritance

– Superclasses and Subclasses
– Advantages of Using Inheritance
– ‘protected’ Class Members
– Constructors in Subclasses

Increasing Convenience by Using Polymorphism

– Purpose of Polymorphic Behavior
– The Concept of a Signature
– Abstract Classes and Methods
– ‘final’ Methods and Classes
– Purpose of Interfaces
– Using and Creating Interfaces
– Common Interfaces of the Java API

Files and Streams

– Concept of a Stream
– Class File
– Sequential Access
– Object Serialization to/from Sequential Access Files
– Additional java.io Classes

Fundamental Searching and Sorting

– Introduction to Searching Algorithms (Linear Search/ Binary Search)
– Introduction to Sorting Algorithms (Selection Sort/ Insertion Sort/ Merge Sort)

Fundamental Data Structures

– Dynamic Memory Allocation
– Linked Lists
– Stacks
– Queues
– Trees

Exception Handling

– Types of Exceptions
– Exception Handling Overview
– Exception Class Hierarchy
– Extending Exception Classes
– When to Throw or Assert Exceptions

Formatted Output

– ‘printf’ Syntax
– Conversion Characters
– Specifying Field Width and Precision
– Using Flags to Alter Appearance
– Printing Literals and Escape Sequences
– Formatting Output with Class ‘Formatter’

Network Programming

– The java.net Package
– IP Addresses and Port Numbers
– Client/Server Socket Programming
– URL and URLConnection Classes
– Communicating with Web Servers
– HTTP GET and POST Operations
– Posting to a Server-Side Program

Threads

– Life and States of a Thread
– Creating and Starting a Thread
– java.lang.Runnable and java.lang.Thread
– Stopping a Thread
– Inter-Thread Communication
– Thread-Safe Access to Shared Objects and Variables
– Synchronized Code
– Sleeping
– Interrupting a Blocked Thread
– wait(), notify(), notifyAll() Example
– Thread Scheduling
– Thread Groups
– Writing a Multithreaded Server

Strings, Characters and Regular Expressions

– Fundamentals of Characters and Strings
– String Class
– String Operations
– ‘StringBuilder’ Class
– ‘Character’ Class
– ‘StringTokenizer’ Class
– Regular Expressions (Regular Expression Syntax/ ‘Pattern’ Class/ ‘Matcher’ Class)

Fundamental GUI Programming Concepts

– Overview of Swing Components
– Displaying Text and Graphics in a Window
– Event Handling with Nested Classes
– GUI Event Types and Listener Interfaces
– Mouse Event Handling
– Layout Managers

Evaluation Exam OPTIONAL PRACTICE
WORK ON A PROJECT
– Java Practice
– Instructor-led

Course Instructors

Claire Doe
Marketing Specialist

Morbi nec nisi ante. Quisque lacus ligula, iaculis in elit et, interdum semper quam. Fusce in interdum tortor.
Ut sollicitudin lectus dolor eget imperdiet libero pulvinar sit amet.

Rachel Britain
Data Architect

Morbi nec nisi ante. Quisque lacus ligula, iaculis in elit et, interdum semper quam. Fusce in interdum tortor.
Ut sollicitudin lectus dolor eget imperdiet libero pulvinar sit amet.

Place on Map