Chapter 0 Course Policies¶
- 0.1. Understanding this Course
- 0.1.1. Read the Course Syllabus
- 0.1.2. Who Is This Class For?
- 0.1.3. Students of Many Experience Levels
- 0.1.4. Weekly Schedule
- 0.1.5. Attendance and In-Class Participation
- 0.1.6. Reading Activities
- 0.1.7. Lab Assignments
- 0.1.8. Program Assignments
- 0.1.9. Quizzes
- 0.1.10. Programming Language and Environment
- 0.1.11. Cheating and The Virginia Tech Honor Code
- 0.1.12. AI and Long-Term Learning
- 0.1.13. AI Use Policy: Learning Support Only
Chapter 1 Objects, Classes, and Micro-Worlds¶
- 1.1. Objects, Classes, and Micro-Worlds
- 1.1.1. Installing BlueJ
- 1.1.2. Introducing LightBot
- 1.1.3. From LightBot to Micro Worlds
- 1.1.4. A Bit More LightBot
- 1.1.5. Textually Representing Programs
- 1.1.6. What Does LightBot Say About Programming?
- 1.1.7. A Programmable LightBot in Java
- 1.1.8. Creating New Objects
- 1.1.9. Calling Methods on an Object
- 1.1.10. Putting it All Together
- 1.1.11. We All Make Mistakes: Errors Happen
- 1.1.12. A Word on Making Code Easy to Read
- 1.1.13. Comparing Visual and Textual Programming
- 1.1.14. The Jeroos of Santong Island
- 1.1.15. Building Your Skills Through Practice
- 1.1.16. Programming Practice 1
Chapter 2 Methods, Selection, and Repeating Actions¶
- 2.1. Methods, Selection, and Repeating Actions
- 2.1.1. Creating Smarter Jeroos (Subclassing Basics)
- 2.1.2. Summarizing: What is Inheritance?
- 2.1.3. Creating and Using Jeroo Methods
- 2.1.4. Selection
- 2.1.5. Conditions Using Sensor Methods
- 2.1.6. An Overview of Conditional Statements
- 2.1.7. Java’s Syntax for the If-Then-Else Structure
- 2.1.8. Creating Optional Statements With If-then
- 2.1.9. Java’s Syntax for the If-then Structure
- 2.1.10. Java’s Syntax for the Multi-way Selection Structure (a cascaded if)
- 2.1.11. Your Opinions on Course Grading Policies
- 2.1.12. Repeating Actions
- 2.1.13. Generic Repetition Structures
- 2.1.14. Java’s Syntax for the While Loop
- 2.1.15. A First Taste of Testing: Verifying Jeroo Behavior
- 2.1.16. Programming Practice 2
Chapter 3 Software Testing¶
Chapter 4 Variables, Primitive Types, Parameters, and Logic¶
- 4.1. Variables, Primitive Types, Parameters, and Logic
- 4.1.1. Variables
- 4.1.2. Boolean Operators: AND, OR, NOT & Short-Circuiting
- 4.1.3. Fields Versus Local Variables
- 4.1.4. Changing Private Variables: Mutator Methods
- 4.1.5. Accessor Methods
- 4.1.6. The Return Keyword
- 4.1.7. Using Fields in Testing
- 4.1.8. Constructors in Subclasses & super(…)
- 4.1.9. More About Methods
- 4.1.10. Good Habits for Conditionals
- 4.1.11. A Different Type of Complex If-Statement
- 4.1.12. Short Circuit Evaluation
- 4.1.13. Programming Practice 4
Chapter 5 Fields, Encapsulation, and 2D Pixel Grids¶
Chapter 6 Reactive Agent Simulations and Delegation¶
Chapter 7 Object-Oriented Inheritance, Overriding, and Interfaces¶
Chapter 8 Grouping Objects: Lists, Aggregation, and Strings¶
- 8.1. Grouping Objects: Lists, Aggregation, and Strings
Chapter 9 Fixed-Size 1D Arrays and Array Idioms¶
- 9.1. Fixed-Size 1D Arrays and Array Idioms
- 9.1.1. Creating An Array
- 9.1.2. Accessing Items in Arrays
- 9.1.3. Setting Items in an Array
- 9.1.4. Arrays Compared to Lists (or ArrayList)
- 9.1.5. Putting It All Together
- 9.1.6. Iterating Over Arrays
- 9.1.7. Initializing Array Contents
- 9.1.8. Printing Arrays
- 9.1.9. Copying Array Variables
- 9.1.10. Naming Array Variables
- 9.1.11. Writing Test Assertions Involving Arrays
- 9.1.12. Applying Arrays in a Problem
- 9.1.13. Programming Practice 9
Chapter 10 Multi-Dimensional Arrays and Matrix Algorithms¶
Chapter 11 Abstract Classes, Frameworks, and Command Patterns¶
Chapter 12 Maps, Sets, and Associative Data Modeling¶
- 12.1. Maps, Sets, and Associative Data Modeling
- 12.1.1. The Map and Set Interfaces
- 12.1.2. The Map Interface
- 12.1.3. Adding and Accessing Pairs in a Map
- 12.1.4. Checking for and Removing Pairs in a Map
- 12.1.5. A Visual Summary of Using Map and HashMap
- 12.1.6. Looping Over Map Contents
- 12.1.7. The Set Interface
- 12.1.8. Adding Values to a Set
- 12.1.9. Checking Values in a Set
- 12.1.10. Removing Values from a Set
- 12.1.11. Looping Over Sets
- 12.1.12. Programming Practice 12
Chapter 13 Variable Scoping, File Input/Output, and Streams¶
- 13.1. Variable Scoping, File Input/Output, and Streams
- 13.1.1. Variable Scoping
- 13.1.2. Summarizing Scope Concepts
- 13.1.3. Your Opinions on Course Grading Policies
- 13.1.4. Java Input and Output
- 13.1.5. Output Using PrintWriters
- 13.1.6. Input Using Scanners
- 13.1.7. A Complete Input Example
- 13.1.8. A Complete Input/Output Example
- 13.1.9. Testing I/O-based Operations
- 13.1.10. Programming Practice 13
