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

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