1.1.1: Preface and Acknowledgements

This section had nothing of real note.

1.1.2: About the Exam

This section covers what the exam will be, as well as how CS Awesome intends to cover the information contained within. I tried to summarize it here, but it would likely be more helpful to get this information directly from a textbook, especially if you’re reading this after the 2022 exam season has already passed.

The Exam

  • 3 hours long
  • 2 sections
    • Multiple Choice
      • 40 MCQs
      • 50% of total score
    • Free Response
      • 4 FRQs
      • Writing Java code by hand
      • 50% of total score
  • You will have access to the Java Quick Reference Sheet during the exam
  • This course does not cover abstract classes, interfaces, and binary/hex conversion (as of 2020 and onward)

Curriculum

Unit Title Exam Weight Class Days Lab Days
1 Primitive Types 2.5–5% 8-10 0
2 Using Objects 5–7.5% 13-15 0
3 Boolean Exprs/ifs 15–17.5% 11-13 3-5
4 Iteration 17.5–22.5% 14-16 4-6
5 Writing Classes 5-7.5% 12-14 3-6
6 Array 10–15% 6-8 0
7 ArrayList 2.5–7.5% 10-12 3-6
8 2D Array 7.5–10% 10-12 4-7
9 Inheritance 5-10% 14-15 3-6
10 Recursion 5–7.5% 3-5 0

There are also 4 FRQs:

  1. Methods and Control Structures, where students call methods and work with control structures without the added complexity of data structures.
  2. Class, where students design and implement a described class.
  3. Array/ArrayList, where students complete program code that uses array or ArrayList objects.
  4. 2D Array, where students complete program code that uses 2D arrays.

1.1.3: Transitioning from CSP to CS A

This section acknowledges the differences between block-based code (Which is used in a majority of AP CSP curriculums) and text-based languages. In summary:

  • You need to spell commands correctly
  • A majority of text based languages (including java) are case sensitive
    • A variable myvar and myVar are not the same!!
  • Your code needs to follow a specific format: (These rules are specific to Java, as well as some other languages)
    • You need to use a semicolon to end a statement
    • You need to use curly brackets to define different stanzas

It then proceeds to show comparisons between Java syntax and block syntax of different block-based languages.

1.1.4: Java Development Environments

this section covers the basics on how Java code is developed, and acknowledges many IDEs (Independent Development Environments) to assist in Java programming.

For my two cents, I will mainly be using Intellij Idea Community Edition for the majority of my Java programming outside of CS Awesome. It is very useful for a variety of Java programming tasks, providing a lot of super useful utilities right out of the box. That said, it is quite heavy on system resources.

That said, I have used Visual Studio Code extensively for FRC development as it is the IDE provided by FIRST themselves. It also works quite well, given you install the Java extension pack. Being an editor and not an IDE, VSCode has no built in functionality to assist in writing Java. It is also the editor I use to write this blog.

Summary

  • You need to compile Java source code into a Java class file in order to run it
    • This is done using a compiler
  • Most programmers use IDEs to assist in development
    • These include many useful tools like compilers, debuggers, and functionality to more easily run code
  • While CS Awesome does include interactive coding sections, it is important to write code outside of what the textbook asks for.
    • As with all things, the only way to get better at programming is to practice!
  • replit
    • Online IDE
      • Only requires a web browser
    • Has utilities for online classrooms
    • Great for Chromebooks/locked down school computers
    • Likely can’t do UI stuff
  • CodingRooms
    • Online IDE
    • Has both free and paid versions
    • has utilities for virtual classrooms
      • Has a classroom template for AP CSA
  • Dr. Java
    • Free, simple, easy IDE
  • BlueJ
    • Beginner Java IDE
    • Built to help with the exploration of objects and OOP (Object Oriented Programming)
    • Has many teaching resources surrounding it
  • jGRASP
    • Free, lightweight IDE
    • Provides software visualizations for code
    • Has a variety of videos and tutorials
  • Intellij Idea
    • Free Java IDE
    • Used by professionals
    • Easy to set up and use
  • Netbeans
    • One of the original Java IDEs
  • Eclipse
    • A very popular Java IDE
    • Complex to set up

1.1.5: Growth Mindset and Pair Programming

This section covers two videos to introduce concepts which would be used in a normal CS A class. As someone doing an independent study I will not get a chance to do pair programming. That said, it was very useful for me when I was starting out, so I would still recommend it if possible.

Growth mindset

  • Your intelligence can change
    • If you struggle with concepts, you actually get smarter
  • Your brain grows more when you get a question wrong than getting something right
    • It is good to do hard things
    • It is OK (and beneficial) to struggle with something

Pair programming

  • Two roles
    • Driver
      • Person actually writing code
    • Navigator
      • Keeps track of the big picture
      • Directing the driver through writing code
    • It is important to switch roles

1.1.6: Pretest

I don’t really have any comments, just take the pretest in the book! (Make sure you’re logged in so it saves)

1.1.7: Survey

Sisters Rise Up

  • Sisters Rise Up is a study to help women of color succeed in CS A
    • It offers one-hour help sessions twice a week led by undergraduates at the University of Michigan

Survey

This is an interactive, optional, and anonymous survey to record demographic information & gauge past programming experience.

TL;DR and closing thoughts

This section covers all of the non-code stuff and things to keep in mind while getting started in Computer Science A. This section does not get into Java specifically, but is useful to read nonetheless. The pretest is also helpful in getting an idea of both the kinds of topics this course will cover and questions will be asked.