Overview Part I: Introduction to Programming What is programming? How does computer programming work? Why learn programming? Introduction to various programming languages Java C & C++ C# PHP & Python JavaScript HTML & CSS Batch & Shell scripting AHK (AutoHotKey) Syntax Variables and Data Types Data Types explained Expressions, Statements and Comments Expressions in programming explained Statements in programming explained Conditional Statements Loops Functions/Methods Write reusable code with functions and methods Comments in programming explained The concept of keeping old code commented out rather than deleted in case its needed in the future Compatibility issues to be aware of when programming Self-documenting code explained The difference between scripting- and programming languages explained Part II: Installation, Configuration and Familiarization of working with Eclipse as Java IDE (Integrated Development Environment) Downloading, installing and configuring JDK (and JRE) for Windows OS Compiler Debugger Download JDK for Windows Installing JDK and JRE on Windows Downloading, installing and configuring Eclipse on Windows OS Step 1 in installing Eclipse IDE: Step 2 in installing Eclipse IDE: Step 3 in installing Eclipse IDE: When Eclipse installation is complete Setting up the workspace directory for Eclipse on Windows First startup of Eclipse IDE and the Welcoming Screen Workbench layout overview Eclipse Package Explorer Eclipse Coding Area Eclipse Workbench Menu Bar Java classes and packages What are Java classes? What are Java packages? Eclipse perspectives Eclipse Program Menu Bar # The File option # The Edit option # The Navigate option # The Run option # The Window option # The Help option Workbench Flexibility and Rearrangement in Eclipse Creating a new (Java) project in Eclipse Hotkeys in Eclipse that are useful to know for efficient coding and program use Quickfix hotkey in Eclipse Auto-formatting code in Eclipse Search code hotkey in Eclipse Infamous CTRL+Z (undo) also exist in Eclipse as well as Reverse-regret (redo) Part III: Introduction to programming with Java Java is a good programming language for beginners What makes Java different from other programming languages? Strictly (strong) typed vs. Loosely (weak) typed programming language Strictly (strong) typed programming language Loosely (weak) typed programming language Automatic Garbage collection in Java One program to work with all operating systems in Java thanks to JVM Examples of what can be done with Java programming Develop Android applications with Java Developing for embedded systems with Java .java Files and Java classes explained The Main-method in Java explained 12 Good Java Coding Praxises/Guidelines #1 Managing expectations and unpredictable user input to ensure working program logic as intended #2 Make use of indentation for more human-readable and better structured code Auto-formatting hotkey in IDE such as Eclipse What is – and how to create indentation when programming #3 Proper Java naming conventions explained Descriptive variable names in Java camelCase and PascalCase explained in detail camelCase explained PascalCase explained ALL UPPERCASE constants in Java explained #4 Document your code in Java #5 “Magic numbers” explained and why you should avoid them when coding #6 Avoid using break and continue statements at all cost in Java – makes for bad code #7 Guideline for optimal method size/length in Java #8 Avoid defining multiple variables on the same line in Java #9 Use braces {} for code blocks in Java – makes for better readability Lining up braces {} in various ways in Java #10 Java files should also have JavaDoc comments documenting purpose, author, version #11 Don’t underestimate whitespace when it comes to readability – But don’t overdo it! #12 Where to declare our program variables in Java? Debugging in Java Using System.out to print out every variable – to see what it holds when during program execution Print out ALL debug information at once in Java Print out debug information on a needs-only-basis in Java Step through the code via Eclipse Debugger “Finger-tracing” and talking out loud to oneself (no joke) Writing Pseudocode to understand programming logic Pseudocoding variation – Mix between programming terminology and pseudocoding Words of Wisdom to effectively learn and understand Java quickly in the beginning Part IV: Java Syntax Semi-colons in Java and their function Import external libraries to use in your Java program for extended functionality Variables in Java Variables and member variables in Java and how to create and use them Variables in Java intro Various ways of creating variables and how to use them in Java explained Member variables in Java explained What is null in Java Object variables in Java as instances of classes Walkthrough of some Primitive Data Types in Java for variables (integer, double, boolean, float, char) What is a Primitive Data Type? List of all Primitive Data Types in Java (with limits/capacity) NaN – Not a Number value Round-off errors in Java explained and suggested fix Avoiding round-off errors using the BigDecimal Java class Variable Scopes in Java explained “Reserved keywords” in Java – what they are and what they mean Constants in Java created using final reserved keyword – how to create them and when to create them How to specify different types of access to variables in Java (private, protected, public) Static variables in Java explained Type Conversion and Type Casting in Java Walkthrough of the String variable in Java to store and work with text What makes String variable different from other varibles in Java How to create a String variable in Java Concatenation: The concept of merging multiple strings into one and how it works Escaping characters in Java Strings – What it means and why its sometimes required Escape sequences for String formatting in Java (newLine and Tab) Single quotation marks vs. Double quotation marks for Strings in Java List of useful String methods to work with Strings for everyday Java operations and how to use them The charAt() String method in Java explained The contains() String method in Java explained The endsWith() String method in Java explained The equals() String method in Java explained The equalsIgnoreCase String method in Java explained The indexOf String method in Java explained The other variation of the IndexOf String method in Java that we cover explained The isEmpty String method in Java explained The lastIndexOf String method in Java explained The other variation of the lastIndexOf String method in Java that we cover explained The length String method in Java explained The matches String method in Java explained The replace String method in Java explained The replaceAll String method in Java explained The replaceFirst String method in Java explained The split String method in Java explained The other variation of the split String method in Java that we cover explained The startsWith String method in Java explained The other variation of the startsWith String method in Java that we cover explained The substring String method in Java explained The other variation of the substring method in Java that we cover explained The toLowerCase String method in Java explained The toUpperCase String method in Java explained The trim String method in Java explained Walkthrough of Arrays and ArrayLists in Java to store and work with sets (lists) of data What are Arrays? How do Arrays work in Java? How to create an Array in Java How to work with Arrays in Java Accessing values from an Array in Java Removing values from an Array in Java Replacing values from an Array in Java Sorting values in an Array in Java Expanding the capacity of an Array in Java Using the Arrays class in Java to easily print the values of an Array without the need of a for-loop Merging two Arrays of the same type into one and the same in Java Creating an Array with values as input parameter to a method without having created it beforehand Multidimensional Arrays explained and use cases Accessing values from a multidimensional Array in Java Introducing ArrayLists in Java Difference between ArrayList and Array in Java Working with ArrayLists in Java How to create ArrayLists in Java How to get length/size of ArrayLists in Java How to acess values from ArrayLists in Java How to add values to ArrayLists in Java How to remove values from ArrayLists in Java How to replace values in ArrayLists with new ones in Java How to check if ArrayLists is empty in Java How to check if ArrayLists contains a specific value in Java How to get the index of a specific value in ArrayLists in Java How to clear all elements in ArrayLists in Java How to sort ArrayLists in Java Arithmetic operations and working with numbers in Java How to calculate addition in Java How to calculate subtraction in Java How to calculate division in Java How to calculate multiplication in Java Math rules that apply in Java programming as well How to calculate Remainder/Modulus in Java Working with floating point (decimal) numbers in Java Introducing the Java Math library (class) How to calculate the power of a number (2^2 = 4) How to calculate the square root of a number (sqrt(4) = 2) How to get the minimum value of two numbers using the Java Math class min() method How to get the maximum value of two numbers using the Java Math class max() method How to make negative values positive with the Java Math class abs() method How to round numbers using the Math class in Java How to generate random numbers in Java using the Math class Generating random numbers using the Java class Random Useful constants that can be accessed in the Java Math class Useful wrapper classes in Java Integer wrapper class in Java Useful variables of the Integer wrapper class in Java Useful methods of the Integer wrapper class in Java Double wrapper class in Java Incrementation and decrementation in Java Conditional statements (IF and Switch) in Java The purpose of IF statements and guiding program logic in Java Conditional, relational and type comparison operators to guide program logic in Java walkthrough Relational operators in Java explained Conditional operators in Java explained Type Comparison operator in Java explained Operator precedence in Java explained How to create an IF statement in Java Whats the difference between IF statement and Switch statement in Java How to create a Switch statement in Java Shorthand IF-statement in Java – what it is and how to create/use it Loops (for, foreach, while, do-while) in Java For-loops explained in Java Difference between a for-loop and the Enhanced (foreach) for-loop How to do “Enhanced for-loop” (foreach loop) in Java While loops in Java explained – what they are and how to code them Do-while loops in Java explained Difference between the while loop and the do-while loop Practical use case examples of loops in Java Functions, methods and arguments for re-usable and well-structured code in Java Difference between function and method in Java explained Why use functions/methods in Java Getter and Setter methods in Java explained Getter method in Java explained Setter method in Java explained Different method (return) types explained in Java Static variables and methods explained in Java Class constructor method explained in Java How to create a function/method in Java What is a recursive function in programming How a Recursive function works in Java explained in detail Part V: Basic text-based user interaction with input/output using Scanner and System.out in Java Introduction to the Java Scanner class “Predicting” user inputted values using the Java Scanner class Useful methods of the Scanner class in Java How to create a Scanner object to use for user input in Java Use cases with the Scanner object in Java programs Get text from user with the Scanner object in Java Get integer values from user with the Scanner object in Java Get double values from user with the Scanner object in Java “Anticipating” user input in program logic in Java Print console messages for output and program updates with System.out in Java Using Scanner class to read from files in Java Use case: Text-based user-interface with menu using the Scanner class in Java Examples of Data validation in Java for when working with user input Part VI: Working with Dates and Date formatting in Java Introduction to the Date class in Java How to create a Date object in Java Using System to get current time in milliseconds Introduction to the DateFormat class in Java Introduction to SimpleDateFormat in Java How to use SimpleDateFormat class in Java to format dates Part VII: Drawing Graphics and Images and working with Colors and Fonts in Java Introduction to the Color class in Java Pre-programmed color values in the Color class in Java Color space used and represented in the Color class in Java Defining your very own colors using the Color class in Java Hexadecimal number system used for color representation explained Introduction to the Font class in Java Working with the Image class in Java Introduction to the Graphics class in Java Setting and getting Font and color attributes of drawing context in Java Different types of drawing in Java with the Graphics class Useful Drawing, Fill and Graphics methods in Java Useful Graphics methods in Java Useful Drawing methods Useful Fill methods Part VIII: Working with Files in Java – Reading from/writing to files + Try-catch and Exceptions Introduction to Input/Output (I/O) Data Streams in Java Byte Streams in Java Explained Character Streams in Java Explained Buffered Streams in Java Explained Data Streams in Java Explained Object Streams in Java Explained Formatting of data streams in Java Introduction to the Try-catch statement in Java Introduction to Exceptions in Java The 3 Different types of Exceptions in Java Explained Exception handling features for Object-oriented programming Examples of common Exceptions that can be thrown in Java Useful Exception methods in Java Throw your own Exceptions in Java Try-catch demonstrated in Java Working with the URI class in Java Working with the Path & Paths classes in Java Working with the File & Files classes in Java Creating a File object in Java to work with Check and Verify File Existence in Java with Files class Check and Verify File Accessibility in Java with Files class Reading from and writing to Files in Java by working with different types of Data Streams Working with Byte Streams in Java Opening and reading from a file with Byte Streams in Java + making it Buffered Writing to a file with Byte Streams in Java Working with Character Streams in Java Opening and reading from a file with Character Streams in Java Writing to a file with Character Streams in Java Working with Data Streams in Java Opening and reading from a file with Data Streams in Java Writing to a file with Data Streams in Java Working with Object Streams in Java Opening and reading from a file with Object Streams in Java Writing to a file with Object Streams in Java