Java: The Complete Foundation
3.9 (19 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,496 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Java: The Complete Foundation to your Wishlist.

Add to Wishlist

Java: The Complete Foundation

Become a Java Programmer Today!
3.9 (19 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,496 students enrolled
Created by Danny Boehm
Last updated 5/2016
Curiosity Sale
Current price: $10 Original price: $25 Discount: 60% off
30-Day Money-Back Guarantee
  • 6 hours on-demand video
  • 19 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Increase their knowledge of software engineering techniques
  • Write and Understand Pseudocode
  • Design trade-offs and advanced software engineering tools
  • Learn advanced methodology for writing "maintainable" programs
  • Develop critical thinking skills for writing math alogirithms
  • Program flags and toggle variables
  • Master the fundamentals of programming object-oriented languages
  • Become fluid in the basic concepts of programming and develop advanced techniques within Java
  • Earn a dream job as a program developer
  • Gain the rich foundation of Java for College-Level courses
  • Become the person you want to be!
  • Learn to use an IDE such as IntelliJ Idea
  • Design flow charts and UML Diagrams
View Curriculum
  • Download IntelliJ Idea (Video Lecture Tutorial Included with Course)
  • Download Java SDK 1.8 (Video Lecture Tutorial Included with Course)
  • Note-Taking Tools if desired


Welcome to "Java: The Complete Foundation", this course is an introductory course to the Java Programming Language. This course will focus on the Computer Science aspect of programming; however, students will also benefit by learning about Computer Information Systems and how it all relates to object-oriented programming.

This course will introduce students to the comprehensive fundamentals of programing within the Java atmosphere and will include Graphical User Interfaces (GUI), data structures, applets and other graphical applications and File I/O (Input/Output). In addition, students will also learn the basic fundamentals of programming including variables, loops, arrays and much more!

Our Teaching Approach:

dotRoot believes in a "hands-on" learning method; which means, students will not only listen to a lecture but also take an active role in homework assignments, class assignments, quizzes and projects. We will provide numerous examples in order to better explain to students the ideology and concepts that must be mastered in order to succeed as a programmer.

A lot of courses will simply give the student information and expect them to create their own success. That is not how we like to teach students and we also believe that good software tactics and engineering practice will go along way whether you are learning to program for fun, school or for a new career.

Lectures will teach concepts and give solid examples via the instructor. Class assignments will be hands on with the students as they follow along and program alongside the instructor to receive hands on practice. Students will be encouraged to critically think and become conventional to the resources provided in order to finish their homework assignments and projects.

There will be a review at the end of each section that will summarize the take-away concepts, as well as, an instructor review of the homework/projects.

What can you expect as a student?

As a student you can expect to receive a quality education. With high quality video and sound, this will an easy and fluid learning experience. Our instructors have previous experience as tutors at the college level and have backgrounds within the Computer Science field! This means you will be getting advice and learning from people already professionally involved and successful in the field you are pursuing!We encourage student discussion because the instructor will answer all questions and be your best friend as you take on each section. Questions about assignments or requests for further examples will be handled by the instructor to ensure you are learning effectively. So what are you waiting for? Learn how to program the popular programming language Java and start turning your ideas into money making apps for Android or Apple today!

Course Updates:
The course will come with a huge library of information in the form of lectures and programming activities. It is our goal to engage students by adding content regularly including new programming activities, critical thinking assignments and advanced programming projects. In addition, we will be utilizing Udemy's new Java Exercise feature to bring more activities to the hands of our students who are unable to use our IDE!

The course comes with over 20 Programming Activities and we currently have over 50 additional assignments being recorded, released and evaluated for upload. By the end of 2016, our goal is to have over 100 Programming Activities for students to engage in addition to our educational lectures!

Who is the target audience?
  • This Java course is meant for newbies, beginners, people who appreciate an in-depth/active-learning approach to education.
  • No prior programming experience will be required as all concepts from beginning to advanced will be covered.
  • This course might be too slow for seasoned programmers but could be used as a refresher.
  • This is NOT a shortcut to success class. There will not be overnight success, this course will work hard to give you all the tools to succeed and thus succeeding will come by the student giving the same determination in learning.
  • Students will receive 110% of the information they will need to succeed in college-level programming courses, creating personal applications or starting an entry-level programming job as a Java Developer.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
80 Lectures
Let's Get Started!
4 Lectures 19:50

Greetings from the instructor! The instructor will go over what is expected in the course and what you can expect out of it.

Preview 03:30

A Guide-Walkthrough on how to install the JAVA IDE used for this course, as well as, the Java SDK required to compiler.

IntelliJ IDE :


Preview 06:24

A brief introduction to IntelliJ IDEA JAVA IDE. We will go through setting up a new project and understanding how to use the program.

Preview 05:56

Homework Assignments will be posted periodically and announced via the Udemy Announcement feature. The course will include per-recorded homework assignments and lectures; however, the course will continue to have information related to Basic Java assigned as Homework (Homework assignments will include a Homework Review).

There will be two types of homework assignments:
Program Activities & Critical Thinking Assignments.

Preview 04:00
Introduction to Object-Oriented Programming
5 Lectures 28:19
  • Learn about Computer Hardware
  • Learn about Operating Systems and Applications
  • Learn about Internet Networks
Computer Concepts

  • Learn about Binary Numbers
  • Use Hexadecimal Numbers to Represent Binary Numbers
  • Using the Character Sets for representing Characters
Representing Data in Java

  • Talks about Machine Language
  • Talks about Assembly Language
  • Talks about High-Level Languages and the Compiler
Programming Languages

  • Understand how to think about a program before you write one.
  • Learn to use Pseudo-Code to map out a project.
  • Learn about flowcharts for presentation purposes (Businesses use them all the time).
Pre-Code Preparation

Hands-On Activity: Students will write a basic program.
The program will be based on the Pre-Code Preparation Lecture Psuedo-Code Example.

Program Activity - Writing the First Program
Java Basics
10 Lectures 48:48
  • Understand the structure of a Java Program
  • Learn to use Identifiers.
  • Learn to use Blocks, Comments and White space
  • Data Types/ Declaring Variables
Building Blocks/Structure

  • Understand the differences between Integer and Floating Numeric Data Types
  • Learn to use Integers and Floating-Point
Integral & Floating-Point Data Types

  • Understand the differences between Characters and String Data Types.
  • Learn to use Characters and Strings
  • Learn to use Boolean variables
Char & String & Boolean Data Types

  • Assigning values to variables
  • Assigning variables the values of other variables
  • Compatible Data Types
Variable with Values

  • Learn how to write shortcuts (escape sequences).
  • Learn how to use Constant variables.
  • Compatible Data Types
Escape Sequences and Constants

  • The assignment operator and expressions
  • Arithmetic Operators.
  • Precedence
  • Division & Modulus
  • Type Casting
  • Shortcut Operators
Expressions & Arithmetic Operators

  • Write a program dealing with mathematical conversions of length.
Program Activity - Conversions

  • Instructor Review of the Homework Assignment.
Program Activity [Review]- Conversions

  • Write a program dealing with the mathematical conversion of temperature.
Program Activity - Conversions (Temperature)

  • Instructor Review of the Homework Assignment.
Program Activity [Review]- Conversions (Temperature)
Class, Objects and Method Basics Part 1
7 Lectures 34:59
  • Learn Class Basics
    • Benefits and Why we use Classes
Introduction to Classes

  • Learn about Objects
  • Learn about Class Members
  • Learn about Encapsulation
  • Learn about Naming Conventions
  • Learn about Reusability
Creating Objects

  • Declare Object References
  • Instantiate an Object
  • Learn about Constructors & Instantiation
Using Object References

  • Learn about Accessors & Mutators
  • Learn about Dot Notation
  • Learn about Method Return Values
  • Learn about String Class
  • Learn about Special Methods
    • Length Method
    • toUpperCase/LowerCase
    • indexOf / charAt / substring
Calling Methods

  • Talk about the Java API
  • Learn about Java Packages
Predefined Java Classes

  • Students will practice writing code dealing with variables and data concepts.
    • Students are not limited to knowing just these points, and may need to use concepts located in previous lectures.
    • The file needed to complete this activity are found in the resource section.
Programming Activity - Dates

  • Instructor Review of the Homework Assignment.

Source Code will be available in the resource section.

Program Activity [Review]- Dates
Class, Objects and Method Basics Part 2
6 Lectures 24:46
  • Discuss Numeric & Decimal Format Class
  • Learn how to implement these Class Methods
Numeric & Decimal Format Class

  • Learn about the usefulness of the Integer and Double Class
  • Examples of how to access the class methods of Integer and Double to interpret literal strings as numeric values.
Integer & Double Class

  • Discuss the usefulness of using the Math Class and its methods/constants.
  • Discuss the Random Class
Math Class

  • Discuss the Scanner Class & System Class
  • Discuss and System.out
  • Character Input & String Input
  • next methods
  • Static methods
System/Scanner Class

  • Students will practice writing code within the main method and calling Class Methods.
    • Uses Scanner Class & System.out
    • Uses Decimal Format Class
    • Uses Random Classes and Math Class.

      Students are not limited to knowing just these points, and may need to use concepts located in previous lectures.
    • Student files to complete this activity are found in the resource section.
Program Activity - Practice Calling Methods

  • Instructor Review of the Homework Assignment.

Source Code will be available in the resource section.

Program Activity [Review]- Practice Calling Methods
Flow of Control
10 Lectures 33:54
  • Forming Conditions with Various Operators
  • Equality Operators
  • Relational Operators
  • Logical Operators

  • Short Circuit Evaluation
  • De Morgan’s Law
  • Common Error Traps
Short Circuit Evaluation, De Morgan's Law

  • If Statements
  • If / Else Statements
  • If / Else If Statements
  • Nested If Statements
  • Block Scope
Statements - If, If/Else, Nested & Block Scope

  • Discuss Comparing Integer Numbers
  • Discuss Comparing Floating-Point Numbers (Numbers with decimals)
  • The BigDecimal Class
Comparing Values

  • Comparing Object References
  • equals Method
  • Creating String Objects
  • Comparing Strings
  • equalsIgnoreCase Method
  • compareTo Method
Comparing Objects

  • Discuss the Conditional Operator
The Conditional Operator

  • Discuss the switch statement
    • Talk about breaks, cases and default
Switch Statements

  • matches Method
  • Patterns
  • Regular Expressions
  • Pattern Matching
  • Replace All
Regular Expressions

  • Illustrates Paths by designing an If/Else If Statement.
Program Activity - Paths

  • Instructor Review of the Homework Assignment.
Source Code will be available in the resource section.
Program Activity [Review] - Paths
The Looping Technique
6 Lectures 17:48
  • Discuss Looping
  • Introduction to the While Loop
  • Discuss Endless Loops
  • Discuss Sentinel-Controlled
While Loop

  • Read from a Text File
  • Setting up Scanner Class for Reading a File
  • Discuss File Class and pathname.
Reading Files using the While Loop

  • hasNext Methods
  • Scanner class Input
  • Data type reprompts
While Loops with Scanner

  • Learn to construct loop conditions
  • Review of Negating Expressions
  • Review Testing Techniques
Constructing Loop Conditions

  • Discuss the do/while Loop
  • Example: Validating an Input
Do/While Loop

  • Discuss the For Loop
    • For Loop Header
      • Loop Counter
      • Loop Condition
      • Loop Update
For Loop
User-Defined Classes
9 Lectures 37:16
  • Discuss User-Defined Classes
  • Access Modifiers
  • Defining Instance Variables
Defining Classes Part I

  • Discuss Methods
  • Discuss Constructors
  • Default Initial Values
  • Scope
  • Accessor & Mutator Methods
Defining Classes Part II

  • Using the Object Reference “this”
  • Using the toString Method
  • Using equals Method
  • Static variables & Methods
Defining Classes Part III

  • Discusses how to create a UML Diagram to organize User-Defined Classes for presentation.
UML Diagram

Quick review of the proper way to design a User-Defined custom class.

Steps to Implement a Class

  • Students will create a Utility/Service Class simulating an Airport Terminal Program.
  • Program consists of a pre-made client class that Students must built a Utility class around.
Program Activity - Airport Program

  • Instructor Review of the Homework Assignment.
Source Code will be available in the resource section.
Program Activity [Review] - Airport Program

  • Students will create an advanced / complex version of the Airport Program from the last section.
  • Students will have to complete a User-Defined class that compliments a pre-made client class.
Program Activity - Advanced Airport Program

  • Instructor Review of the Homework Assignment.
Source Code will be available in the resource section.
Program Activity [Review] - Advanced Airport Program
Single-Dimensional Arrays
9 Lectures 51:52
  • Introduction to Array
  • Declaring & Instantiating Arrays
  • Assigning Initial Values
Declaring & Instantiating Arrays

  • Accessing Array Elements
  • Instantiating an Array of Objects
  • Array Operations
  • For Loop Array Operations
    • Printing Array Elements
    • Copying Array Elements
    • Reading Array Elements
    • Comparing Arrays
Array Elements

  • Classes using Arrays
  • Methods with Array Parameters
  • Passing Arrays
  • Accessor Methods for Arrays
  • Array Instance Variables
Classes using Arrays

  • Changing & Expanding Array Sizes
  • Understanding Sequential Search
  • Sorting Arrays
Sequential Search

  • Discuss Selection Sort
  • Swapping Values
Selection Sort

  • Discuss Insertion Sort
  • Sorting Array Objects
  • Sequential Search of Sorted Arrays
Insertion Sort

  • Discuss Binary Search
Binary Search

  • Students will learn how to add values to an array using loops.
  • Students will create methods that work towards, adding values, removing values, filling values, etc... inside an array.

    Activity is downloadable in the resource section.
Program Activity - Practice Arrays

  • Instructor Review of the Homework Assignment.
Source Code will be available in the resource section.
Program Activity [Review] - Practice Arrays
Multi-Dimensional Arrays
3 Lectures 12:12
  • Discuss Two-Dimensional Arrays
  • Declaring & Instantiating Multi-Dimensional Arrays
  • Assigning Initial Values
  • Accessing Array Elements
  • Multi-Dimensional Lengths
Two-Dimensional Arrays

  • Aggregating Array Operations of a Multi-Dimensional Array
  • Processing Rows
  • Processing Columns
  • Passing & Returning Two-Dimensional Arrays
Multi-Dimensional Operations

  • The ArrayList Class
  • Declaring & Instantiating
  • Class Methods
  • Enhanced for Loop
Array List
2 More Sections
About the Instructor
Danny Boehm
4.4 Average rating
95 Reviews
2,476 Students
2 Courses
Computer Science Major at California State Channel Islands

Instructor Introduction:

Hello. My name is Danny Boehm and I am a Computer Science/Mathematics Major with a minor in Game Development at California State University: Channel Islands. I've also attended DeVry University's Bachelor of Logic & Simulation Programming online. In my spare time, I work as a Teacher Aid/Tutor for all the Computer Information classes held at Fullerton College and have experience working with students directly.

My programming background includes:

Python, Java, C, C#, C++, Lua, Microsoft Visual Studio, Eclipse, Unity and Android Development.

Instructor Goals:

As an instructor, I plan to engage all my students in hands on projects. All my courses will include: vocabulary, concept lectures, examples inside programming environments and homework projects to practice on your own time. Each lesson will act as a precursor to the next lessons subject matter and encourage critical thinking to solve problems.

Student Expectations:

I expect all students to remain patient. Programming language is like speaking a foreign language. It requires a lot of time, patience and practice. Students should welcome a challenge and are encouraged to practice lesson concepts on their own time, as well as, develop custom code from the concepts we will discuss.

Students should be able to understand each language taught at a college-level by the end of a course and it should act as a precursor to any higher level learning.

Above all else, have fun!