
Learn programming fundamentals in Java for computer science students, covering variables, loops, conditionals, arrays, and functions, with interactive challenges and downloadable resources.
Set up your Java environment by downloading and installing IntelliJ and the Java Development Kit, choose the free community edition, and launch your first program to verify setup.
Launch IntelliJ, create a new Java project, install or add JDK 21, and verify the setup by running a hello world program.
Learn how variables store a rectangle's height and width, compute its perimeter and area with expressions, and assign those values in memory for simple Java programs.
Understand how the hard drive stores data permanently, RAM acts as working memory, and CPU performs computations by reading from RAM and writing results back to RAM.
Understand how the cpu, ram, and hard drive interact, illustrated by a mason, a work table, and a cupboard, to show how ram speed and size affect performance.
Learn how Java declares typed variables, stores them in RAM memory cells labeled by their name, uses the assignment operator, and enforces type safety to prevent mismatched values.
Show how high-level Java code translates into binary so a computer can execute instructions, using compilers and interpreters as the translation phase.
Explore Java data types for integers, comparing byte, short, int, and long, and learn how memory usage and value ranges determine when to use each.
Explore how Java handles real numbers with float and double, compare precision and range, learn when to choose each type, and apply these concepts in IntelliJ.
Practice shows that a float needs an f suffix to avoid defaulting to double, while double is the default; the course uses double for general use, noting IoT memory limits.
Explore the Java char and string data types, learn when to use each, and see examples of single-quoted characters versus double-quoted text; note that strings are special and covered later.
Learn to use characters and strings in Java by declaring a char and a string, fixing quotes to avoid errors, and concatenating values to print a full name with System.out.println.
Explain the boolean data type for true or false in conditional logic and compare primitive types with objects, noting memory use and references, with string as an object.
Develop a Java program that declares double length and width, computes area and perimeter, and prints the results using sample values length 500 and width 250.
Explain the difference between the assignment operator and equality in mathematics, noting that assignment doesn't maintain a relationship over time. Re-evaluate the expression to update results when values change.
Learn to display numbers on the screen by reading values from variables and using string concatenation with System.out.println to format output as '50 plus 45 equals 95'.
Learn to display numbers and perform arithmetic operations (sum, difference, multiplication, ratio) in Java, and apply explicit type conversions to doubles for accurate division results.
Concatenate and print strings in Java by building a simple program that combines first and last names, adds a space, and experiments with an empty string as a separator.
Learn that strings in Java are immutable, so you cannot modify a string in place; instead, create a new string and reassign it to apply changes.
Learn string interpolation in java using printf to format and display a person's name, age, and weight with precise decimal control, replacing verbose concatenation for readable output.
Learn to read keyboard input in Java using the Scanner, import java.util.Scanner, create a Scanner with System.in, and capture an int value with nextInt to display the user's age.
Practice keyboard input by prompting for two numbers and displaying the first number, the second number, and their sum using string interpolation in Java.
Create a Java class to practice accepting keyboard input using a Scanner, prompting for first name, last name, age, and weight, and then display each value.
Demonstrates how the next() method reads user input until a space, assigns the first name, then fills the last name with remaining characters via a second next() call.
Learn how to read a full line in Java with nextLine(), contrast it with next(), and see how nextLine reads an entire line such as a first and last name.
Discover how next, nextInt, and nextDouble read user input as strings, stop at spaces, and convert to valid integers, using parseInt when needed.
Learn to grab a single character from keyboard input in Java by using a Scanner, reading a string, and applying charAt(0) to obtain the first character at position zero.
Explore how conditional operations control program flow in Java through an age-based voting scenario, where the machine proceeds only if the user is at least 18.
Insert ID, read birthdate, and evaluate flowchart condition age is at least 18. Authorize voting when the age is at least 18; otherwise display a cannot vote message and end.
Create a new Java class and main method, read age with a scanner, and use an if condition to print you can vote if age is at least 18.
The lecture demonstrates adding an else alternative to an age-check program, providing feedback when the condition is false and showing multiple instructions inside braces.
Explore the boolean data type, true and false, and use boolean expressions like age >= 18 to drive conditional logic. Create a boolean isAdult variable to replace hardcoded true.
Explore how conditions and the or logical operator work in Java, using age comparisons (greater than, greater than or equal to) to show true and false outcomes in boolean logic.
Demonstrate using the or operator in Java by splitting a test into two conditions: age > 18 and age == 18, joined with || to show age >= 18.
Explore the and logical operator in Java, using a country and age example to decide voting eligibility, and learn string comparison with equals versus primitive data types.
Learn how to implement multiple conditions in Java using if, else if, and switch case. Read language input with a scanner and print messages for French, English, and Spanish.
Learn to ignore case in string comparisons in Java to recognize languages like French, English, and Spanish regardless of capitalization, and explore a future switch case exercise.
Discover how loops simplify printing the squares of numbers, from 2 to 12, using math.pow, and learn how looping avoids manual duplication as requirements evolve.
Learn how to use a for loop to display squares from a starting point to an end point, with incrementing numbers and dynamic values, making code flexible and maintainable.
Explore how a for loop initializes at two, tests i <= 12, executes the loop body to compute squares, and increments i until the condition fails at 13.
Practice implementing for loops by building a multiplication table: read a number with a scanner, then print results from 1 to 10.
Explore how a while loop handles unknown iterations by prompting for a pin until the correct code unlocks the device, using scanner input and a test condition.
Add feedback messages for incorrect pins, such as 'incorrect pin. please try again,' and display 'device unlocked' after success, using a do-while style loop to guide input.
Limit login attempts to five by tracking attempts and unlock status in a while loop, use break to exit on correct pin, and display device locked or unlocked messages.
Explore using constants in Java, introducing the final keyword and a max attempts constant to avoid hard coded values. Implement remaining attempts feedback after two failures in a PIN check.
Identify issues with hard-coded grades and manual sum/average calculations. Learn how arrays in Java simplify maintenance and scaling for grade lists.
Learn how arrays replace multiple variables to store grades and enable maintainability, using zero-based indexing to access the fourth item at index three and derive last index from size.
Access a fixed-type array by index and use a for loop to sum its elements and compute the average, using length or length minus one to bound the loop.
Populate a fixed-size double array from keyboard input using Scanner by first reading the number of elements and then filling each cell with user values via a for loop.
Adds input validation to a grid program by enforcing a positive grid count with a do-while loop, and restricting each grid value to 0–20 using a temporary variable.
Refactor do-while loops into concise while loops, removing duplicated conditions and using break to exit on valid input, with else branches handling error messages for array size and grades.
Remove unnecessary else blocks when break exits a loop, and omit braces for single-instruction if statements, applying the same refactor to the second loop per team guidelines.
Learn how to use the for-each loop to read array elements without modifying them, improving readability and avoiding index management with a simple example of numbers 2 through 6.
Learn dynamic arrays in Java by comparing fixed size arrays with ArrayList, which start at size zero and support adding and removing elements using object types like Double and String.
Explore dynamic arrays in Java using ArrayList: start with size zero, add elements with add, access with get, update with set, and remove with remove, noting zero-based indexing.
Refactor the previous physics grid exercise to use dynamic arrays by replacing fixed size arrays with an ArrayList of doubles, and switching from length to size while using add.
Welcome to "Programming Fundamentals in Java for CS Students", an in-depth and comprehensive online course designed to provide you with a deep understanding of programming fundamentals using Java. This course will equip you with the skills to apply these concepts to other programming languages while emphasizing the importance of clean code and best practices.
Many online courses teach you how to perform tasks without building a strong foundation in programming concepts, leading to students who can write code but struggle to explain or optimize their work. This course aims to solve that problem by focusing on solid programming fundamentals, best practices, and clean code principles.
Target Audience:
This course is perfect for:
Computer Science students looking to strengthen their understanding of core programming concepts.
Aspiring software developers who want to learn Java and apply best practices in their coding.
Course Outline:
In this extensive course, you will:
Develop a deep understanding of core programming concepts.
Learn how to write clean, efficient code using best practices, ensuring your code is easy to read, maintain, and optimize.
Understand how to apply the principles learned in this course to other programming languages, making you a more versatile and adaptable programmer.
Gain confidence in explaining complex programming concepts to others, enhancing your communication skills and professional credibility.
Work through real-world examples and practice exercises designed to reinforce your learning and prepare you for real-life programming challenges.
Study key Java concepts such as variables, loops, conditionals, arrays, and functions.
Participate in interactive coding challenges and projects to test your knowledge and sharpen your skills.
Benefit from instructor support and a vibrant community of fellow learners to enhance your learning experience.
By the end of this course, you will have a strong foundation in programming and will be well-equipped to write clean, efficient code in Java and other programming languages. Join us today and start your journey towards becoming a skilled and confident programmer.
For those who are new to programming, this course offers an excellent starting point with its focus on the fundamentals. The course also includes a part II that delves into object-oriented programming. Once you feel comfortable with the basics, you can take advantage of my other course to explore object-oriented programming in greater depth and with greater confidence.
In addition to the core course content, you will also receive:
Access to exclusive, downloadable resources and cheat sheets for easy reference.
Lifetime access to course updates, ensuring you stay current with the latest Java developments and industry best practices.
A course completion certificate, demonstrating your commitment to mastering programming fundamentals and enhancing your professional credentials.
Enroll now and unlock your full potential in the world of programming! Don't miss this opportunity to build a solid foundation in Java and other programming languages, and become the programmer you've always wanted to be.