Computer Science A
Course Progress
0/0
Sprint 1 intro
W0 Onboarding & Readiness 0/6
W1 AP Introduction 0/8
W2 Java / Spring Basics 0/1
W3 Spring Boot Challenges 0/6
W4 Retrospective and Assessment 0/11
Sprint 3 intro
W9 Week 9 0/1
W10 Week 10 0/1
W12 System Contributions, Curriculum Connections, and Retrospective 0/1
Sprint 4 intro
W13 Integration Design 0/6
Week 13 intro
3.01 Abstraction and Program Design
3.01 Abstraction and Program Design
FRQ 1 - Methods and Control Structures - 2019 Exam Q1 - CS112
FRQ 1 - Methods and Control Structures - 2019 Exam Q1 - CS112
FRQ 1 - Methods and Control Structures - AP Review - CS112
FRQ 2 - Class Writing and Design - AP Review - CS112
2 assignments due
W14 Connected Web Features 0/18
Week 14 intro
4.08 ArrayList Methods
4.08 ArrayList Methods
FRQ 2 - Class Writing and Design - 2014 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2014 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2015 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2015 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2019 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2019 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2021 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2021 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2022 Exam Q2 - CS112 - Inheritance
FRQ 2 - Class Writing and Design - 2022 Exam Q2 - CS112 - Inheritance
FRQ 2 - Class Writing and Design - 2023 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2023 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2024 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2024 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2025 Exam Q2 - CS112
FRQ 2 - Class Writing and Design - 2025 Exam Q2 - CS112
2 assignments due
W15 Search and Sort Integration 0/4
W16 Summative Mini-Project Review and Retrospective 0/1
Sprint 5 intro
W17 Prep and OCS Requirements 0/11
Week 17 intro
3.08 Scope and Access
3.08 Scope and Access
Abstract Fibonaccii Hack
Collectables Interfaces
FRQ 2 - Class Writing and Design - 2015 Exam Q4 - CS112 - Interfaces
FRQ 2 - Class Writing and Design - 2015 Exam Q4 - CS112 - Interfaces
FRQ 2 - Class Writing and Design - 2016 Exam Q1 - CS112 - Inheritance
FRQ 2 - Class Writing and Design - 2017 Exam Q2 - CS112 - Interfaces
FRQ 2 - Class Writing and Design - 2017 Exam Q2 - CS112 - Interfaces
FRQ 2 - Class Writing and Design - 2018 Exam Q3 - CS112 - Interfaces
FRQ 2 - Class Writing and Design - 2018 Exam Q3 - CS112 - Interfaces
2 assignments due
W18 Peer Teaching 0/3
W20 Summative Assessment and Retrospective 0/1
Sprint 6 intro
W21 Design Checkpoint 0/4
W22 Functional Checkpoint 0/17
Week 22 intro
Collectable Types and Collections
FRQ 3 - Array or ArrayList Manipulation - 2014 Exam Q1 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2014 Exam Q1 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2016 Exam Q2 - CS112 - Strings and Lists
FRQ 3 - Array or ArrayList Manipulation - 2017 Exam Q1 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2017 Exam Q1 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2018 Exam Q2 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2018 Exam Q2 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2019 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2019 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2021 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2021 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2022 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2022 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2025 Exam Q3 - CS112
FRQ 3 - Array or ArrayList Manipulation - 2025 Exam Q3 - CS112
Sorts Part 2
W23 Final Prototype Push 0/9
Week 23 intro
4.13 Implementing 2D Algorithms
4.13 Implementing 2D Algorithms
4.16 Recursion
4.16 Recursion
FRQ 4 - 2D Array Operations - 2015 Exam Q1 - CS112
FRQ 4 - 2D Array Operations - 2015 Exam Q1 - CS112
FRQ 4 - 2D Array Operations - 2019 Exam Q4 - CS112
FRQ 4 - 2D Array Operations - 2019 Exam Q4 - CS112
JQuery
4 assignments due
W24 N@tM Community Presentations and Reflection 0/1
Sprint 7 intro
W25 Project Data Structure Layers 0/3
W26 Hashing for Web Data 0/1
W27 Tree, Priority, and Network Models 0/3
W28 Summative Structures Review and Retrospective 0/1
W29 Evidence Consolidation and AP Review Handoff 0/1
Sprint 8 intro
W30 AP Review: Methods and Classes 0/1
W31 AP Review: Arrays and ArrayLists 0/1
W32 AP Review: Search, Sort, and Recursion 0/1
W33 AP Review: 2D Arrays and Readiness 0/1
Sprint 9 intro
W34 Efficient Project Algorithms 0/1
W35 Structure and Algorithm Alternatives 0/1
W36 N@tM Community Presentations and Reflection 0/1
W37 Finals: Assessment Only 0/1
FRQ 2 - Class Writing and Design - 2014 Exam Q2 - CS112
1 min read
- FRQ Question 2
- Code Runner Challenge
FRQ Question 2
This question involves reasoning about the GridWorld case study. Reference materials are provided in the appendixes.

Write the complete Director class, including the zero-parameter constructor and any necessary instance
variables and methods. Assume that the Color class has been imported.
Code Runner Challenge
GridWorld Style
View IPYNB Source
// CODE_RUNNER: GridWorld Style
public class Main {
// Minimal stubs so the code runs in this environment
static class Actor {
private java.awt.Color color = java.awt.Color.RED;
public java.awt.Color getColor() {
return color;
}
public void setColor(java.awt.Color c) {
color = c;
}
public void turnRight() {
System.out.println("Actor turned right");
}
}
static class Rock extends Actor {
public java.util.ArrayList<Actor> getNeighbors() {
// For demonstration, return a couple of dummy neighbors
java.util.ArrayList<Actor> neighbors = new java.util.ArrayList<>();
neighbors.add(new Actor());
neighbors.add(new Actor());
return neighbors;
}
}
// Director class
static class Director extends Rock {
/** Constructs a Director with an initial color of RED */
public Director() {
setColor(java.awt.Color.RED);
}
/** Alternates color and turns neighbors right if color is GREEN */
public void act() {
if (getColor().equals(java.awt.Color.GREEN)) {
turnNeighborsRight();
setColor(java.awt.Color.RED);
} else {
setColor(java.awt.Color.GREEN);
}
}
/** Turns all neighboring actors 90 degrees to the right */
private void turnNeighborsRight() {
for (Actor a : getNeighbors()) {
a.turnRight();
}
}
}
// Main method for testing
public static void main(String[] args) {
Director d = new Director();
System.out.println("Initial color: " + d.getColor());
d.act();
System.out.println("After first act: " + d.getColor());
d.act();
System.out.println("After second act: " + d.getColor());
}
}
Main.main(null);
Lines: 1
Characters: 0
Output
Click "Run" in code control panel to see output ...