Popcorn Hack 1
public class Dog {
private String name;
private String breed;
// Constructor
public Dog(String name, String breed) {
this.name = name;
this.breed = breed;
}
// Method that prints the dog's info
public void printInfo() {
System.out.println("My dog " + name + " is a " + breed + "!");
}
// Main method to test it
public static void main(String[] args) {
Dog myDog = new Dog("spot", "Golden Retriever");
myDog.printInfo();
}
}
Dog.main(null);
My dog spot is a Golden Retriever!
Popcorn Hack 2
public class Counter {
private int count;
// Add method
public void add(int x) {
count += x;
}
// Subtract method
public void subtract(int x) {
count -= x;
}
// Multiply method
public void multiply(int x) {
count *= x;
}
// Divide method
public void divide(int x) {
if (x != 0) {
count /= x;
} else {
System.out.println("Cannot divide by zero!");
}
}
// Getter method
public int getCount() {
return count;
}
// Main method to test everything
public static void main(String[] args) {
Counter c = new Counter();
c.add(10);
c.subtract(2);
c.multiply(3);
c.divide(4);
System.out.println("Final count: " + c.getCount());
}
}
Counter.main(null);
Final count: 6
MCQ
//QUESTION 1
public class BankAccount {
private double balance;
public BankAccount(double initialBalance) {
balance = initialBalance;
}
public void deposit(double amount) {
balance += amount;
}
public double getBalance() {
return balance;
}
}
BankAccount.main(null);
| BankAccount.main(null);
cannot find symbol
symbol: method main(<nulltype>)
Answer: B
//QUESTION 2
public class Rectangle {
private int length;
private int width;
public Rectangle(int l, int w) {
length = l;
width = w;
}
public int getArea() {
return length * width;
}
public void scale(int factor) {
length *= factor;
width *= factor;
}
}
Rectangle rect = new Rectangle(3, 4);
rect.scale(2);
System.out.println(rect.getArea());
48
Answer: C
QUESTION 3
NullPointerException happens when you call an instance method on a reference that is null/uninitialized.
Answer: D
// QUESTION 4
public class Temperature {
private double celsius;
public Temperature(double c) {
celsius = c;
}
public double getFahrenheit() {
return celsius * 9.0 / 5.0 + 32;
}
public void setCelsius(double c) {
celsius = c;
}
}
Temperature.main(null);
| Temperature.main(null);
cannot find symbol
symbol: method main(<nulltype>)
Answer: D
// QUESTION 5
public class Book {
private String title;
private int pages;
public Book(String t, int p) {
title = t;
pages = p;
}
public String getTitle() {
return title;
}
public int getPages() {
return pages;
}
public void addPages(int additional) {
pages += additional;
}
}
Book.main(null);
| Book.main(null);
cannot find symbol
symbol: method main(<nulltype>)
Answer: D
Homework Hack
public class Student {
// === Instance variables ===
private String name;
private int totalPoints;
private int numAssignments;
// === Constructor ===
public Student(String name) {
this.name = name;
this.totalPoints = 0;
this.numAssignments = 0;
}
// === Void instance methods (modify state) ===
/** Adds a grade (0–100 recommended) and updates totals. */
public void addGrade(int points) {
totalPoints += points;
numAssignments += 1;
System.out.println("Adding grade: " + points + " points");
}
/** Prints a formatted report of the student’s performance. */
public void printReport() {
System.out.println("\n--- " + name + "'s Grade Report ---");
System.out.println("Student Name: " + name);
System.out.println("Total Points: " + totalPoints);
System.out.println("Assignments Completed: " + numAssignments);
double avg = getAverage();
System.out.println("Current Average: " + format2(avg));
String letter = getLetterGrade();
System.out.println("Letter Grade: " + letter);
System.out.println("Status: " + statusFor(letter));
}
// === Non-void instance methods (return values) ===
/** Returns current average as a double; 0.0 if no assignments yet. */
public double getAverage() {
if (numAssignments == 0) return 0.0;
return (double) totalPoints / numAssignments;
}
/** Returns a letter grade based on the grading scale. */
public String getLetterGrade() {
double avg = getAverage();
if (numAssignments == 0) return "N/A";
if (avg >= 90) return "A";
if (avg >= 80) return "B";
if (avg >= 70) return "C";
if (avg >= 60) return "D";
return "F";
}
// === Helpers (private) ===
private static String format2(double x) {
return String.format("%.2f", x);
}
private static String statusFor(String letter) {
switch (letter) {
case "A": return "Excellent work!";
case "B": return "Great job!";
case "C": return "Keep working hard!";
case "D": return "Needs improvement.";
case "F": return "See me for help.";
default: return "No grades yet.";
}
}
// === Demo / main ===
public static void main(String[] args) {
System.out.println("=== Student Grade Tracker System ===\n");
// Student 1: Emma
System.out.println("Creating student: Emma Rodriguez");
Student emma = new Student("Emma Rodriguez");
System.out.println("Student created successfully!\n");
System.out.println("--- Adding Grades for Emma ---");
emma.addGrade(95);
emma.addGrade(88);
emma.addGrade(92);
emma.addGrade(85);
emma.printReport();
System.out.println("\n========================================\n");
// Student 2: James
System.out.println("Creating student: James Wilson");
Student james = new Student("James Wilson");
System.out.println("Student created successfully!\n");
System.out.println("--- Adding Grades for James ---");
james.addGrade(78);
james.addGrade(82);
james.addGrade(75);
james.printReport();
System.out.println("\n========================================\n");
// Final summary
System.out.println("Final Summary:");
System.out.println(emma.name + " - Average: " + format2(emma.getAverage()) + " (" + emma.getLetterGrade() + ")");
System.out.println(james.name + " - Average: " + format2(james.getAverage()) + " (" + james.getLetterGrade() + ")");
}
}
Student.main(null);
=== Student Grade Tracker System ===
Creating student: Emma Rodriguez
Student created successfully!
--- Adding Grades for Emma ---
Adding grade: 95 points
Adding grade: 88 points
Adding grade: 92 points
Adding grade: 85 points
--- Emma Rodriguez's Grade Report ---
Student Name: Emma Rodriguez
Total Points: 360
Assignments Completed: 4
Current Average: 90.00
Letter Grade: A
Status: Excellent work!
========================================
Creating student: James Wilson
Student created successfully!
--- Adding Grades for James ---
Adding grade: 78 points
Adding grade: 82 points
Adding grade: 75 points
--- James Wilson's Grade Report ---
Student Name: James Wilson
Total Points: 235
Assignments Completed: 3
Current Average: 78.33
Letter Grade: C
Status: Keep working hard!
========================================
Final Summary:
Emma Rodriguez - Average: 90.00 (A)
James Wilson - Average: 78.33 (C)
| Criteria | Percent Weight | Description | Self-Grade | Comments |
|---|---|---|---|---|
| Functionality | 40% | Program runs without errors, creates multiple Student objects, correctly adds grades, calculates averages, and assigns letter grades | 40/40 | Code compiles cleanly; tested with multiple students; outputs match expected results. |
| Method Implementation | 30% | Includes all required methods (addGrade, getAverage, getLetterGrade, printReport) that properly access/modify instance variables | 30/30 | All methods work as intended, returning accurate averages and letter grades. |
| Code Quality | 20% | Clean code with meaningful variable names, proper constructor, and helpful comments explaining method purposes | 20/20 | Code is clear and well-commented; minor improvement possible in formatting consistency. |
| Output & Presentation | 10% | Clear, well-formatted output showing multiple students with different grades and formatted reports | 10/10 | Output mirrors sample with spacing, dividers, and clear structure. |