APCSA Notes

Introduction

Computer Science A is a course that is broken into 10 units. Below are the units and some notes for each of them.

Unit 1: Primitive Types

  • boolean: true or false
  • byte: complement integer
  • char: one code character
  • short: twos complement integer
  • int: integer
  • long: complement integer
  • float: decimal values up to 7 digits
  • double: decimal values up to 16 digits

Unit 2: Using Objects

  • Java is object-oriented programming (OOP)
  • Class is used to define a new data type
  • Class can be compared to a cookie cutter which makes the cookies (objects)
  • Each class has its own attributes and behaviors
  • Objects are created in class and are often knwon as instances of a class

Unit 3: Boolean Expressions and if Statements

  • Boolean expressions are used to check if something is true or false
import java.util.Scanner;
public class Booleans //define class
{
    public static void main(String[] args) //java main method
{
    boolean isSunny = true; //declare the boolean variables
    boolean isRainy = false; 
    if (isSunny)
    {
        System.out.println("It is sunny.");
    }
    else
    {
        System.out.println("It is rainy.");
    }
}
}
Booleans.main(null);
It is sunny.
  • If statements are used to check if a condition is met. If a condition is met, the code will do something. Else statements can be used with if statements to tell the code to do something if the first condition is not met
import java.util.Scanner;
public class Else 
{
    public static void main(String[] args)
{
    int num = 1; 
    if (num > 2)
    {
        System.out.println("The number is greater than 2");
    }
    else //the computer will run this portion if the number is less than or equal to 2
    {
        System.out.println("The number is not greater than 2"); //This is what the computer will print
    }
}
}
Else.main(null);
The number is not greater than 2

Unit 4: Iteration

  • Repeating actions until a specific condition is met
  • Three types of iterations
    • For Loops
    • While Loops
    • Recursions ## Unit 5: Writing Class
  • Includes
    • Instance variables: stores information about an object created in a class
    • Constructors: create new objects
    • Methods: show the program a new command; you can write specific methods into your classes ## Unit 6: Array
  • Used for storing multiple values in one variable -square brackete [] used to declare
  • commas in between curly brackets to store an array (EX: String[] colors = {"blue", "red" , "orange})
  • you can change an array element with the index number
  • You can figure out how many elements an array has with "length" (EX: System.out.println(color.length);)

Unit 7: ArrayList

  • Can be manipulated and changed in size unlike with arrays
  • Variables can be added or removed
  • Also called dynamic arrays

Unit 8: 2D Arrary

  • [row][column]
  • Basically an array of arrays
  • Can be declared by data_type[][] array_name = new data_type[x][y];

Unit 9: Inheritance

  • Inheritance can be declared by having a child class extend a parent class
  • This can be used with the fibonacci sequence mini-lab that we did
  • This can be useful when you want to inherit the same attributed and methods from another class
  • "this" vs "super"
    • "this" is used when referring to the current object in the method
    • "super" is used to call any superclass method like the parent class

Unit 10: Recursions

  • A method that calls itself
  • Kind of like a method that's reflected to each other like two mirrors facing each other

Project Based Learning Notes

Week 1: Fastpages

  • _notebooks (.ipynb files which lets you use markdown, java, etc.)
  • _posts with markdown files that can be used to help fronted designing
  • _word to save documents to your Fastpages
  • You can edit the front page with the index.html file
  • You can edit sub pages with the _pages folder
  • You can also add images under the images folder

Week 2

  • You can check the versions of different softwares you installed using --version (EX: python --version) for most installations
  • You can do a lot of frontend work with your different calculators by making a frontend menu that houses them

Week 3

  • AWS stands for amazon web services and is useful as a compiler to amke your local server

Week 4

  • Agile methdology can be used to efficently divide up tasks in the scrum team
  • The scrum master acts as the leader, in sort, of the group, making sure the roles are being followed and maintaining the scrum board
  • The DevOps role manages AWS deployment and managing POM files
  • Frontend developers manages what the audience can see and utilize
  • Backend developers work more on the programming side although all of the team should be code code codeing
  • A scrum board can be helpful to manage everyone's thoughts and ideas in a way that everyone's voices are heard. It is also a great way to manage tasks for each person in the group and the group itself.

Week 5

  • Started the trimester project
  • Trying to make the project as real-world applicable as possible while still code code codeing
  • My group came up with ideas that we narrowed down together until we finally came up with a market specifically meant for DNHS students to utilize

Week 6

  • Working with APL and ASCii
  • API: (Application programming interface) a way for multiple computer programs to communcate with each other
  • EX: a weather station has a software to detect weather daily. This can be displayed on the weather app on your phone. The weather app communicates with the weather station's software program
  • RapidAPI: Used to connect API's

Week 7

  • JPA: Java persistant API
  • JPA's can be used with arraylists
  • Class Demonstration: Haha and Bohoo API and frontend

Week 8

  • Deployment using AWS and Docker files

Week 9

  • We had the idea to create an AP Lit website with an organized list of assignments and deadlines that included a place for AP Lit students to chat about different assignments and proects
  • We also had an idea to make a data collector for AP Stats where we are starting our first data collecting project
  • We also considered a website modeled after Goodreads but specifically for DNHS students to find and rate books
  • One of the final ideas we considered was a market place also soley for DNHS students for secondhand books and clothing.

  • We decided on the marketplace as we had more ideas as to how to impliment the design properly

Week 10

  • Continue working on the Java project
  • Making seperate frontend repo and backend repo
  • Using fastpages because of how easy it is to manipulate

Week 11

  • Finishing up our proeject
  • Changing font size and pictures
  • Implementing the API onto fastpages using html