Learning to Program with Java
Course Code: hsts-c26
What is included in this course
Course Description
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 course instead of this more introductory course.
You will learn:
- Fundamental elements of programming
- Interactive Development Environment (IDE) concepts
- Classes, objects and methods
- Declaring and instantiating a Java object
- Using conditional and looping constructs
- Declaring and instantiating arrays
- Using and creating interfaces
- Defining classes using inheritance
- Exception handling
- Formatting output with class Formatter
- Using strings, characters and regular expressions
- GUI programming concepts
Course Prerequisites
Object Oriented Programming with UML
Self-paced training
This course is available in a self-paced video format starting at $60. Click here to learn more and register. For complete self-paced software engineering training, visit our Complete Training Bundle for Software Engineers page.
Corporate and Enterprise Training
Our live courses are also offered via our enterprise training program which comes with:
- In-person training at your location
- Access to recorded sessions of live classes
- Flexible training schedules that match your employees’ availability
- Course curriculum customization based on your training requirements and business goals
- Special rates for small or large groups
Feel free to contact us by email or phone to discuss your training needs and get a quote.
Overall Info About our Live Classes
Highlights
-
30 hours of hands-on training led by experienced instructors
-
Digital courseware and online course tracking
-
Final course project delivery
-
Certificate of Completion for each course
-
Session-based assignment
Enrollment Fee
In-person in DC or live online for $2990 per course
Course Session Dates
Our courses are offered all year around. Upon registration we enroll you to the earliest available class but you can reschedule it free of charge.
Locations
- Virtual live instructor classes via Zoom
- In-person classes in Washington DC and Virginia:
Below are our DC classroom locations:
- Dupont Circle
- 1666 Connecticut Ave NW Washington D.C. 20009
- Logan Circle
- 1624 14th St NW Washington D.C. 20009
- Chinatown
- 601 I St NW Washington D.C. 20001
- Columbia Heights
- 3343 14th St NW Washington D.C. 20010
Below are our Virginia classroom locations:
- Falls Church
- Comining soon...
-
Private custom training on site or at your location
-
Project based training cn site or at your location
Time
-
Online Monday-Friday: 11 am-5:30 pm EST
-
DC Monday-Friday: 9 am-3:30 pm EST
-
DC/Online Saturdays: 11 am-5:30 pm EST
-
DC/Online Sundays: 1 pm-7:30 pm EST
-
Private custom & project based training: your preference
Software Versions
Our classes are taught on the most current version of software whenever possible. To request a specific version, please Contact Us or call us at 240-200-6131
Course Outline
Topics Covered in this Course
1- 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
2- 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
3- 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
4- Flow Control
- Conditional Constructs
- Looping Constructs
- Counter-Controlled Repetition
- Sentinel-Controlled Repetition
- Nested Control Constructs
- break and continue Statements
- Structured Programming Best Practices
5- 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
6- 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
7- 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
8- Defining Classes Using Inheritance
- Superclasses and Subclasses
- Advantages of Using Inheritance
- protected Class Members
- Constructors in Subclasses
9- 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
10- Files and Streams
- Concept of a Stream
- Class File
- Sequential Access
- Object Serialization to/from Sequential Access Files
- Additional java.io Classes
The following 10 topics are part of our advance Java course.
1- Fundamental Searching and Sorting
- Introduction to Searching Algorithms
- Linear Search
- Binary Search
- Introduction to Sorting Algorithms
- Selection Sort
- Insertion Sort
- Merge Sort
2- Fundamental Data Structures
- Dynamic Memory Allocation
- Linked Lists
- Stacks
- Queues
- Trees
3- Exception Handling
- Types of Exceptions
- Exception Handling Overview
- Exception Class Hierarchy
- Extending Exception Classes
- When to Throw or Assert Exceptions
4- 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
5- 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
6- Developing Software Using Java
- Applications, Applets, Web Components
- Java SE, Java EE, Java ME
- Installing the JDK
- Compiling and Running Java from the Command Line
- The main() Method
- package and import Statements
- JAR Files
- Class Loading and CLASSPATH
- Online API Documentation
- JDK Tools
- Java Integrated Development Environments (IDEs)
7- The Collections Framework
- The java.util Package
- Container Objects
- Arrays as Containers
- Legacy Container Classes - Vector, Hashtable, Enumeration
- Legacy Container Generic Forms (Java SE 5+)
- Collections Interfaces - Collection<E>, List<E>, Set<E>, SortedSet<E>
- Map Interfaces - Map<K,V>
- Coding to the Interface
- List<E>, Set<E>, Queue<E> and Map<K,V> implementations
- Iterating Collections with the Iterator<E> Interface
- Collections and the Enhanced for Loop
- Choosing the Correct Implementation and Interface
- The java.util.Collections Utility Class
- Sorting Using the Comparable Interface
8- 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
9- Java Database Connectivity
- The java.sql Package
- JDBC Architecture and Drivers
- SQL Exceptions
- DriverManager, Connection, Statement and ResultSet Interfaces
- Examining Database MetaData
- Basic Query and Update
- Improving Performance with PreparedStatement and CallableStatement Interfaces
- JDBC Transaction Management
10- Java Web Applications
- Java Enterprise Edition
- Java EE Application Servers
- Web Application Directory and WAR files
- Deploying a Web Application - The web.xml File
- Servlet Architecture
- The javax.servlet Package
- Servlet Classes and Interfaces
- Writing a Servlet
- HttpServletRequest and HttpServletResponse
- Handling HTML Forms
- Retrieving Request Parameters
View Other Classes!