Programming and Java Fundamentals

Project: Build a Console-Based Grade Calculator

ReadingPreview

আপনি একটি free preview lesson দেখছেন।

Project Overview

এই practical project-এ আমরা একটি interactive console-based grade calculator তৈরি করব।

Programটি user-এর কাছ থেকে:

  • Student name
  • Subject count
  • প্রতিটি subject-এর mark

নেবে এবং calculate করবে:

  • Total marks
  • Average mark
  • Highest mark
  • Lowest mark
  • Passed subject count
  • Failed subject count
  • Final grade
  • Final result
  • Performance message

Programটি menu-driven হবে। User চাইলে:

  • Grade calculation করতে পারবে
  • Grade rules দেখতে পারবে
  • Program exit করতে পারবে

Concepts Used

এই project-এ Module 1-এর প্রায় সব গুরুত্বপূর্ণ concept ব্যবহার করা হবে:

  • Variables
  • Constants
  • Primitive data types
  • String
  • Operators
  • Type conversion
  • Scanner
  • if-else
  • switch
  • for loop
  • while loop
  • do-while loop
  • break
  • continue
  • Input validation
  • String formatting

Learning Objectives

এই project শেষ করার পর আপনি পারবেন:

  • একটি complete console application তৈরি করতে
  • User input collect এবং validate করতে
  • Loop ব্যবহার করে multiple marks পড়তে
  • Accumulator দিয়ে total calculate করতে
  • Highest এবং lowest value track করতে
  • Subject-wise pass/fail determine করতে
  • Average থেকে grade calculate করতে
  • Menu-driven program তৈরি করতে
  • switch, break এবং continue practicalভাবে ব্যবহার করতে
  • Program output readableভাবে format করতে

Project Requirements

Program-এর main menu হবে:

=== Grade Calculator ===

1. Calculate student result
2. View grade rules
3. Exit

Student Information

Calculation option select করলে program নেবে:

Student name
Number of subjects
Mark for each subject

Subject Count Rules

Subject count হতে হবে:

1 to 10

Invalid value দিলে program আবার input চাইবে।


Mark Validation Rules

প্রতিটি mark হতে হবে:

0 to 100

Invalid mark দিলে program একই subject-এর mark আবার চাইবে।


Passing Rule

প্রতিটি subject-এর passing mark:

40

একটি subject-এও mark 40-এর কম হলে student-এর final result হবে:

Failed

Grade Rules

Student সব subject pass করলে average অনুযায়ী grade হবে:

Average MarkGrade
80–100A
70–79.99B
60–69.99C
50–59.99D
40–49.99E

কোনো subject fail করলে:

Grade: F
Result: Failed

Program Flow

Start
  ↓
Display menu
  ↓
Read menu option
  ↓
Option 1?
  ├─ Yes → Read student information
  │         ↓
  │       Read and validate marks
  │         ↓
  │       Calculate result
  │         ↓
  │       Display report
  │
  ↓
Option 2?
  ├─ Yes → Display grade rules
  │
  ↓
Option 3?
  ├─ Yes → Exit
  │
  ↓
Return to menu

Complete Java Program

import java.util.Scanner;

public class Main {

    static final int CALCULATE_RESULT_OPTION = 1;
    static final int VIEW_RULES_OPTION = 2;
    static final int EXIT_OPTION = 3;

    static final int MINIMUM_SUBJECT_COUNT = 1;
    static final int MAXIMUM_SUBJECT_COUNT = 10;

    static final int MINIMUM_MARK = 0;
    static final int MAXIMUM_MARK = 100;
    static final int PASSING_MARK = 40;

    public static void main(String[] args) {
        Scanner scanner =
                new Scanner(System.in);

        int menuOption = 0;

        do {
            System.out.println();
            System.out.println(
                    "=== Grade Calculator ==="
            );
            System.out.println();

            System.out.println(
                    CALCULATE_RESULT_OPTION
                    + ". Calculate student result"
            );

            System.out.println(
                    VIEW_RULES_OPTION
                    + ". View grade rules"
            );

            System.out.println(
                    EXIT_OPTION
                    + ". Exit"
            );

            System.out.println();
            System.out.print(
                    "Choose an option: "
            );

            if (!scanner.hasNextInt()) {
                String invalidInput =
                        scanner.nextLine();

                System.out.println(
                        "Invalid option: "
                        + invalidInput
                );

                System.out.println(
                        "Enter a whole number from 1 to 3."
                );

                continue;
            }

            menuOption =
                    scanner.nextInt();

            scanner.nextLine();

            switch (menuOption) {
                case CALCULATE_RESULT_OPTION -> {
                    System.out.println();
                    System.out.println(
                            "--- Student Information ---"
                    );

                    String studentName;

                    while (true) {
                        System.out.print(
                                "Enter student name: "
                        );

                        studentName =
                                scanner
                                        .nextLine()
                                        .strip();

                        if (studentName.isBlank()) {
                            System.out.println(
                                    "Student name is required."
                            );

                            continue;
                        }

                        break;
                    }

                    int subjectCount = 0;

                    while (true) {
                        System.out.print(
                                "Enter number of subjects "
                                + "("
                                + MINIMUM_SUBJECT_COUNT
                                + "-"
                                + MAXIMUM_SUBJECT_COUNT
                                + "): "
                        );

                        if (!scanner.hasNextInt()) {
                            String invalidInput =
                                    scanner.nextLine();

                            System.out.println(
                                    "Invalid subject count: "
                                    + invalidInput
                            );

                            System.out.println(
                                    "Enter a whole number."
                            );

                            continue;
                        }

                        subjectCount =
                                scanner.nextInt();

                        scanner.nextLine();

                        if (
                                subjectCount
                                < MINIMUM_SUBJECT_COUNT
                                || subjectCount
                                > MAXIMUM_SUBJECT_COUNT
                        ) {
                            System.out.println(
                                    "Subject count must be between "
                                    + MINIMUM_SUBJECT_COUNT
                                    + " and "
                                    + MAXIMUM_SUBJECT_COUNT
                                    + "."
                            );

                            continue;
                        }

                        break;
                    }

                    int totalMarks = 0;
                    int highestMark = -1;
                    int lowestMark = 101;

                    int passedSubjectCount = 0;
                    int failedSubjectCount = 0;

                    System.out.println();
                    System.out.println(
                            "--- Enter Subject Marks ---"
                    );

                    for (
                            int subjectNumber = 1;
                            subjectNumber <= subjectCount;
                            subjectNumber++
                    ) {
                        int mark = 0;

                        while (true) {
                            System.out.print(
                                    "Enter mark for subject "
                                    + subjectNumber
                                    + " ("
                                    + MINIMUM_MARK
                                    + "-"
                                    + MAXIMUM_MARK
                                    + "): "
                            );

                            if (!scanner.hasNextInt()) {
                                String invalidInput =
                                        scanner.nextLine();

                                System.out.println(
                                        "Invalid mark: "
                                        + invalidInput
                                );

                                System.out.println(
                                        "Enter a whole number."
                                );

                                continue;
                            }

                            mark =
                                    scanner.nextInt();

                            scanner.nextLine();

                            if (
                                    mark < MINIMUM_MARK
                                    || mark > MAXIMUM_MARK
                            ) {
                                System.out.println(
                                        "Mark must be between "
                                        + MINIMUM_MARK
                                        + " and "
                                        + MAXIMUM_MARK
                                        + "."
                                );

                                continue;
                            }

                            break;
                        }

                        totalMarks += mark;

                        if (mark > highestMark) {
                            highestMark = mark;
                        }

                        if (mark < lowestMark) {
                            lowestMark = mark;
                        }

                        if (mark >= PASSING_MARK) {
                            passedSubjectCount++;
                        } else {
                            failedSubjectCount++;
                        }
                    }

                    double averageMark =
                            totalMarks
                            / (double) subjectCount;

                    boolean passedAllSubjects =
                            failedSubjectCount == 0;

                    String finalResult =
                            passedAllSubjects
                                    ? "Passed"
                                    : "Failed";

                    String grade;

                    if (!passedAllSubjects) {
                        grade = "F";
                    } else if (averageMark >= 80) {
                        grade = "A";
                    } else if (averageMark >= 70) {
                        grade = "B";
                    } else if (averageMark >= 60) {
                        grade = "C";
                    } else if (averageMark >= 50) {
                        grade = "D";
                    } else {
                        grade = "E";
                    }

                    String performanceMessage =
                            switch (grade) {
                                case "A" ->
                                        "Excellent performance";

                                case "B" ->
                                        "Very good performance";

                                case "C" ->
                                        "Good performance";

                                case "D" ->
                                        "Satisfactory performance";

                                case "E" ->
                                        "Passed, but improvement is needed";

                                case "F" ->
                                        "One or more subjects were failed";

                                default ->
                                        "Result unavailable";
                            };

                    System.out.println();
                    System.out.println(
                            "=== Student Result ==="
                    );

                    System.out.println(
                            "Student: "
                            + studentName
                    );

                    System.out.println(
                            "Subjects: "
                            + subjectCount
                    );

                    System.out.println(
                            "Total marks: "
                            + totalMarks
                            + " out of "
                            + (
                                    subjectCount
                                    * MAXIMUM_MARK
                            )
                    );

                    System.out.println(
                            "Average mark: "
                            + "%.2f".formatted(
                                    averageMark
                            )
                    );

                    System.out.println(
                            "Highest mark: "
                            + highestMark
                    );

                    System.out.println(
                            "Lowest mark: "
                            + lowestMark
                    );

                    System.out.println(
                            "Passed subjects: "
                            + passedSubjectCount
                    );

                    System.out.println(
                            "Failed subjects: "
                            + failedSubjectCount
                    );

                    System.out.println(
                            "Grade: "
                            + grade
                    );

                    System.out.println(
                            "Result: "
                            + finalResult
                    );

                    System.out.println(
                            "Performance: "
                            + performanceMessage
                    );
                }

                case VIEW_RULES_OPTION -> {
                    String gradeRules = """
                            === Grade Rules ===

                            Passing mark per subject: 40

                            Average 80-100  → Grade A
                            Average 70-79   → Grade B
                            Average 60-69   → Grade C
                            Average 50-59   → Grade D
                            Average 40-49   → Grade E

                            If any subject mark is below 40:
                            Grade F and final result Failed
                            """;

                    System.out.println();
                    System.out.println(gradeRules);
                }

                case EXIT_OPTION ->
                        System.out.println(
                                "Grade calculator closed."
                        );

                default ->
                        System.out.println(
                                "Invalid option. "
                                + "Choose 1, 2, or 3."
                        );
            }
        } while (menuOption != EXIT_OPTION);

        scanner.close();
    }
}

Program Walkthrough

Constants

static final int PASSING_MARK = 40;

Constants এমন rules represent করে, যেগুলো program চলার সময় পরিবর্তন হওয়া উচিত নয়।

Menu options:

static final int CALCULATE_RESULT_OPTION = 1;
static final int VIEW_RULES_OPTION = 2;
static final int EXIT_OPTION = 3;

Validation rules:

static final int MINIMUM_SUBJECT_COUNT = 1;
static final int MAXIMUM_SUBJECT_COUNT = 10;

static final int MINIMUM_MARK = 0;
static final int MAXIMUM_MARK = 100;

Meaningful constants magic numbers কমায়।


Main Menu Loop

do {
    // Display and process menu
} while (menuOption != EXIT_OPTION);

do-while ব্যবহার করা হয়েছে কারণ menu অন্তত একবার display করতে হবে।

User option 3 select না করা পর্যন্ত menu repeat হবে।


Validating the Menu Option Type

if (!scanner.hasNextInt()) {
    String invalidInput =
            scanner.nextLine();

    System.out.println(
            "Invalid option: "
            + invalidInput
    );

    continue;
}

User integer ছাড়া অন্য text দিলে:

one

program crash না করে invalid input consume করে next menu iteration শুরু করে।


Consuming the Remaining Newline

menuOption =
        scanner.nextInt();

scanner.nextLine();

nextInt() integer token পড়ে, কিন্তু Enter-এর newline রেখে দিতে পারে।

Extra:

scanner.nextLine();

remaining newline consume করে।


Non-Blank Student Name

while (true) {
    studentName =
            scanner
                    .nextLine()
                    .strip();

    if (studentName.isBlank()) {
        continue;
    }

    break;
}

Flow:

  • Blank name হলে continue
  • Valid name হলে break

Validating the Subject Count

if (
        subjectCount < MINIMUM_SUBJECT_COUNT
        || subjectCount > MAXIMUM_SUBJECT_COUNT
) {
    continue;
}

Subject count range-এর বাইরে হলে same prompt আবার দেখানো হয়।

Valid হলে:

break;

validation loop শেষ করে।


Reading Multiple Marks

for (
        int subjectNumber = 1;
        subjectNumber <= subjectCount;
        subjectNumber++
) {
    // Read one valid mark
}

Subject count আগে জানা, তাই for loop suitable।


Validating Each Mark

প্রতিটি subject-এর জন্য একটি while loop ব্যবহার করা হয়েছে।

while (true) {
    // Read mark

    if (invalid) {
        continue;
    }

    break;
}

Invalid mark হলে current subject-এর input আবার নেওয়া হয়।


Calculating the Total

totalMarks += mark;

Equivalent:

totalMarks =
        totalMarks + mark;

totalMarks accumulator হিসেবে কাজ করে।


Finding the Highest Mark

if (mark > highestMark) {
    highestMark = mark;
}

Initial value:

int highestMark = -1;

Valid mark minimum 0, তাই প্রথম valid mark অবশ্যই -1-এর চেয়ে বড়।


Finding the Lowest Mark

if (mark < lowestMark) {
    lowestMark = mark;
}

Initial value:

int lowestMark = 101;

Valid mark maximum 100, তাই প্রথম valid mark অবশ্যই 101-এর চেয়ে ছোট।


Counting Passed and Failed Subjects

if (mark >= PASSING_MARK) {
    passedSubjectCount++;
} else {
    failedSubjectCount++;
}

প্রতিটি mark অনুযায়ী appropriate counter update হয়।


Calculating the Average

double averageMark =
        totalMarks
        / (double) subjectCount;

subjectCount-কে double cast করা হয়েছে, যাতে integer division না হয়।

Without casting:

totalMarks / subjectCount

fractional result হারাতে পারত।


Determining the Final Result

boolean passedAllSubjects =
        failedSubjectCount == 0;

একটিও failed subject না থাকলে:

passedAllSubjects = true

Then:

String finalResult =
        passedAllSubjects
                ? "Passed"
                : "Failed";

Determining the Grade

if (!passedAllSubjects) {
    grade = "F";
} else if (averageMark >= 80) {
    grade = "A";
}

Subject failure আগে check করা হয়েছে।

Student-এর high average থাকলেও একটি subject fail করলে final grade হবে:

F

Performance Message with Switch Expression

String performanceMessage =
        switch (grade) {
            case "A" ->
                    "Excellent performance";

            case "B" ->
                    "Very good performance";

            default ->
                    "Result unavailable";
        };

Grade একটি exact category, তাই switch expression suitable।


Formatting the Average

"%.2f".formatted(
        averageMark
)

Average দুই decimal place-এ দেখায়।

Example:

83.3333333333

Formatted:

83.33

Sample Run 1: Passed with Grade A

=== Grade Calculator ===

1. Calculate student result
2. View grade rules
3. Exit

Choose an option: 1

--- Student Information ---
Enter student name: Sakib
Enter number of subjects (1-10): 3

--- Enter Subject Marks ---
Enter mark for subject 1 (0-100): 90
Enter mark for subject 2 (0-100): 85
Enter mark for subject 3 (0-100): 80

=== Student Result ===
Student: Sakib
Subjects: 3
Total marks: 255 out of 300
Average mark: 85.00
Highest mark: 90
Lowest mark: 80
Passed subjects: 3
Failed subjects: 0
Grade: A
Result: Passed
Performance: Excellent performance

Sample Run 2: Failed Subject

Enter student name: Rahim
Enter number of subjects (1-10): 3

Enter mark for subject 1 (0-100): 90
Enter mark for subject 2 (0-100): 35
Enter mark for subject 3 (0-100): 85

Calculation:

Total = 210
Average = 70

Average Grade B range-এর মধ্যে হলেও একটি subject failed।

Output:

Grade: F
Result: Failed
Performance: One or more subjects were failed

Sample Run 3: Invalid Subject Count

Enter number of subjects (1-10): 0
Subject count must be between 1 and 10.

Enter number of subjects (1-10): 15
Subject count must be between 1 and 10.

Enter number of subjects (1-10): 4

Program valid value না পাওয়া পর্যন্ত repeat করবে।


Sample Run 4: Invalid Mark

Enter mark for subject 1 (0-100): 150
Mark must be between 0 and 100.

Enter mark for subject 1 (0-100): -5
Mark must be between 0 and 100.

Enter mark for subject 1 (0-100): 80

Invalid mark subject count-এর মধ্যে include হয় না।


Sample Run 5: Invalid Text Input

Choose an option: calculate
Invalid option: calculate
Enter a whole number from 1 to 3.

আরেকটি example:

Enter mark for subject 1 (0-100): eighty
Invalid mark: eighty
Enter a whole number.

Important Edge Cases

One Subject

Subject count: 1
Mark: 75

Result:

Total: 75
Average: 75.00
Highest: 75
Lowest: 75
Grade: B

Highest এবং lowest একই হবে।


Mark Exactly 40

Mark: 40

Subject passed।

Condition:

mark >= PASSING_MARK

Average Exactly 80

Average: 80.00

Grade:

A

Average Exactly 70

Grade:

B

All Marks Zero

0
0
0

Result:

Total: 0
Average: 0.00
Grade: F
Result: Failed

High Average but One Failed Subject

Marks:

100
100
39

Average:

79.67

Final:

Grade: F
Result: Failed

কারণ একটি subject-এর mark passing mark-এর কম।


Testing Checklist

Program test করুন:

  1. Menu option 1
  2. Menu option 2
  3. Menu option 3
  4. Invalid menu number
  5. Non-numeric menu input
  6. Blank student name
  7. Subject count 0
  8. Subject count 1
  9. Subject count 10
  10. Subject count 11
  11. Non-numeric subject count
  12. Mark -1
  13. Mark 0
  14. Mark 39
  15. Mark 40
  16. Mark 79
  17. Mark 80
  18. Mark 100
  19. Mark 101
  20. Non-numeric mark
  21. All subjects passed
  22. One subject failed
  23. All subjects failed
  24. One subject only
  25. Same highest and lowest mark

Common Mistakes

Integer Division

Wrong:

double average =
        totalMarks / subjectCount;

Correct:

double average =
        totalMarks
        / (double) subjectCount;

Giving Grade Before Checking Failed Subjects

Wrong:

if (averageMark >= 80) {
    grade = "A";
}

এতে একটি subject fail হলেও high average-এর কারণে Grade A হতে পারে।

Correct:

if (!passedAllSubjects) {
    grade = "F";
} else if (averageMark >= 80) {
    grade = "A";
}

Initializing Highest Mark to 100

Wrong:

int highestMark = 100;

তারপর কোনো mark 100-এর চেয়ে বড় না হওয়ায় value change হবে না।

Correct:

int highestMark = -1;

Initializing Lowest Mark to Zero

Wrong:

int lowestMark = 0;

Valid marks negative নয়। তাই lowest mark change নাও হতে পারে।

Correct:

int lowestMark = 101;

Forgetting to Consume Newline

menuOption =
        scanner.nextInt();

String studentName =
        scanner.nextLine();

studentName empty হতে পারে।

Correct:

menuOption =
        scanner.nextInt();

scanner.nextLine();

Processing Invalid Marks

Wrong:

totalMarks += mark;

if (mark < 0 || mark > 100) {
    continue;
}

Invalid mark already total-এর মধ্যে যোগ হয়েছে।

Correct order:

if (mark < 0 || mark > 100) {
    continue;
}

totalMarks += mark;

Breaking the Wrong Loop

Mark validation-এর মধ্যে break nearest while loop শেষ করে।

while (true) {
    if (validMark) {
        break;
    }
}

এটি outer for loop শেষ করে না।


Project Improvement Exercises

Exercise 1: Percentage

Calculate করুন:

percentage =
    total marks
    ÷ maximum possible marks
    × 100

Output:

Percentage: 85.00%

Exercise 2: Distinction Count

Mark 80 বা বেশি হলে subject distinction হিসেবে count করুন।

Output:

Distinction subjects: 2

Exercise 3: Subject Position

Highest mark কোন subject number-এ পাওয়া গেছে, track করুন।

Example:

Highest mark: 95
Highest subject: 3

Exercise 4: Lowest Subject

Lowest mark-এর subject number track করুন।


Exercise 5: Custom Passing Mark

Menu থেকে user passing mark define করতে পারবে।

Range:

1 to 100

Exercise 6: Calculate Multiple Students

এক calculation শেষ হলে জিজ্ঞাসা করুন:

Calculate another student? yes/no

yes হলে নতুন student result calculate করুন।


Exercise 7: Class Statistics

Multiple student result থেকে calculate করুন:

  • Total students
  • Passed students
  • Failed students
  • Class average
  • Highest student average

Exercise 8: Grade Point

Grade অনুযায়ী grade point দিন:

GradeGrade Point
A5.0
B4.0
C3.0
D2.0
E1.0
F0.0

Switch expression ব্যবহার করুন।


Exercise 9: Letter-Based Menu

Numeric menu-এর পরিবর্তে commands ব্যবহার করুন:

calculate
rules
exit

Input normalize করুন:

.strip()
.toLowerCase()

Exercise 10: Result Summary Text Block

Text block এবং .formatted() ব্যবহার করে complete result report তৈরি করুন।


Knowledge Check

Question 1

এই project-এ do-while কেন ব্যবহার করা হয়েছে?

Question 2

Subject marks পড়তে for loop কেন suitable?

Question 3

প্রতিটি mark validate করতে while কেন ব্যবহার করা হয়েছে?

Question 4

Invalid input হলে continue কী করে?

Question 5

Valid input পাওয়া গেলে break কী করে?

Question 6

Average calculation-এ cast প্রয়োজন কেন?

Question 7

Highest mark-এর initial value -1 কেন?

Question 8

Lowest mark-এর initial value 101 কেন?

Question 9

একটি subject fail হলে grade F কেন?

Question 10

Performance message-এর জন্য switch suitable কেন?

Question 11

hasNextInt() কী check করে?

Question 12

nextInt()-এর পরে nextLine() কেন call করা হয়েছে?

Question 13

totalMarks কী ধরনের variable?

Question 14

passedSubjectCount কীভাবে update হয়?

Question 15

Menu loop কখন শেষ হয়?


Knowledge Check Answers

Answer 1

Menu অন্তত একবার display করতে হবে এবং exit option না দেওয়া পর্যন্ত repeat করতে হবে।

Answer 2

Subject count আগে জানা থাকে।

Answer 3

একটি valid mark না পাওয়া পর্যন্ত একই subject-এর input repeat করতে হয়।

Answer 4

Current validation iteration skip করে আবার input prompt-এ যায়।

Answer 5

Nearest validation loop শেষ করে।

Answer 6

Integer division avoid করে decimal average পাওয়ার জন্য।

Answer 7

সব valid marks 0 বা তার বেশি। তাই প্রথম valid mark অবশ্যই -1-এর চেয়ে বড়।

Answer 8

সব valid marks 100 বা তার কম। তাই প্রথম valid mark অবশ্যই 101-এর চেয়ে ছোট।

Answer 9

Project rule অনুযায়ী সব subject individually pass করা বাধ্যতামূলক।

Answer 10

Grade একটি fixed exact category:

A, B, C, D, E, F

Answer 11

পরবর্তী input token valid integer কি না।

Answer 12

Integer পড়ার পর remaining newline consume করতে।

Answer 13

Accumulator।

Answer 14

Mark passing mark বা তার বেশি হলে:

passedSubjectCount++;

Answer 15

User menu option 3 select করলে।


Project Summary

এই project-এ আমরা:

  • Menu-driven console application তৈরি করেছি
  • Scanner দিয়ে user input নিয়েছি
  • Numeric এবং text input validate করেছি
  • do-while দিয়ে menu repeat করেছি
  • while দিয়ে valid input নিশ্চিত করেছি
  • for loop দিয়ে multiple subject marks পড়েছি
  • continue দিয়ে invalid input skip করেছি
  • break দিয়ে validation loop শেষ করেছি
  • Accumulator দিয়ে total calculate করেছি
  • Highest এবং lowest mark track করেছি
  • Passed এবং failed subject count করেছি
  • Type casting দিয়ে decimal average calculate করেছি
  • if-else দিয়ে grade determine করেছি
  • switch expression দিয়ে performance message তৈরি করেছি
  • Formatted result report print করেছি
  • Boundary এবং invalid input cases test করেছি

Next Lesson

পরবর্তী lesson হবে Module 1-এর final review:

Module Review and Exercises

আমরা review করব:

  • Programming fundamentals
  • Java execution
  • JDK, JRE, JVM, and bytecode
  • Java syntax
  • Variables and constants
  • Primitive data types
  • Strings
  • Operators
  • Type conversion
  • User input
  • Conditional statements
  • Switch
  • Loops
  • Break and continue
  • Mixed practice problems
  • Module assessment