Difference between revisions of "AP Computer Science"

From WLCS
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Wednesday (2/26/20) ==
+
== Monday - Friday (3/30/20 - 4/3/20) : Self-distancing : Week 3 ==
 +
* [https://www.youtube.com/user/advancedplacement Free AP Review Classes]
 +
** '''Note: APCS's exam will only test Units 1-7; however the review videos may cover Units 8-10 because they are good to know for future classes'''
 +
** The review classes are broadcast daily on this [https://apcentral.collegeboard.org/pdf/ap-class-schedule-daily.pdf schedule]
 +
** The review videos are available on-demand, so you can access them any time
 +
* Complete the FRQ repl.its for practice
 +
 
 +
== Monday - Friday (3/23/20 - 3/27/20) : Self-distancing : Week 2 ==
 +
* [https://docs.google.com/document/d/1SaFnCATUMjbnwb88UfANqiFf8WgZDQXgH60RDip4irI/edit?usp=sharing Major AP CS Exam Changes and 4th Quarter distance-learning work!  Please read!]
 +
 
 +
== Tuesday - Friday (3/17/20 - 3/20/20) : Self-distancing : Week 1  ==
 +
* 3rd Quarter ends '''Friday (3/20/20)'''
 +
** All AP CS grades have been entered for the 3rd quarter, so if you check and notice a grade is incorrect, then please e-mail Mr. Bui
 +
** If you wish to update a grade b/c you needed to complete a missing/late assignment, then please e-mail Mr. Bui
 +
** No work for 3rd Quarter will be accepted after '''Friday (3/20/20)'''
 +
* 4th quarter schedule of assignments will be posted soon (after Mr. Bui finishes closing out 3rd quarter grades)
 +
 
 +
== Monday (3/16/20) : Self-distancing : Week 1 ==
 +
* All students are still expected to have completed all 3 of the AP CS FRQs that were assigned when school was still in session last week (see previous date below). Be prepared to take pictures or scan your work to submit to Canvas. More details to come...
 +
* Mr. Bui is developing a weekly schedule of Java-related, AP CS review tasks and resources. <del>A complete schedule should be posted by Tuesday (3/17/20) morning</del>
 +
* Mr. Bui is also developing a question-answer workflow so that students can ask general and specific questions. The workflow will look something like this:
 +
** General questions should be posted in the Canvas Discussion area; however, the student should check if any existing discussion threads already answer their question. If not, then a new thread should be created for their question
 +
** Specific questions about student code will require students to take a screenshot of their own code and message it to Mr. Bui. The Canvas messaging system will likely be used for this because Mr. Bui does not want his inbox to be flooded
 +
* If you have a questions, please feel free to e-mail Mr. Bui or create a Discussion thread. Please note that if you e-mail a question, and it's a good question, then Mr. Bui may create a thread himself to repost and answer your question
 +
* Please note: Mr. & Mrs. Bui have their own children at home with them, so do not expect immediate responses
 +
 
 +
== Friday (3/13/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* static keyword (for methods or for variables)
+
* You will be practicing AP CS FRQs today
** binds the method or variable to the class NAME as opposed to the object instance
+
** Complete #1, 2, 4 (skip #3) of the [https://secure-media.collegeboard.org/apc/ap18-frq-computer-science-a.pdf 2018 AP CS FRQ]
** static methods may *not* modify instance variables
+
** You must write your responses by hand (make sure your name and the question numbers are at the top)
** static method example
+
** You may use the AP CS Java Quick Reference
** static variable exists as a single copy for all objects
+
** Spend no more than 22.5 minutes per question
** static variable example
+
 
* final keyword
+
'''Homework:'''
* makes the variable unchangeable
+
* If you do not complete the 3 FRQs in class, then you may work on them at home
* final variable example
 
  
== Monday (2/24/20) ==
+
== Wednesday (3/11/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Review eIMACS: Test 14: Inheritance & Polymorphism
+
* You will spend class time researching and learning about merge sort and its recursive implementation. By the end of class, you should be able to trace the merge sort algorithm on any given array of numbers. For example, you should be able to demonstrate the algorithm and how it works using some playing cards
* Inheritance & Polymorphism Quiz
+
* Read [https://www.khanacademy.org/computing/computer-science/algorithms/merge-sort/a/overview-of-merge-sort Khan Academy - Merge Sort]
* Complete eIMACS: Activity 18: Components
+
* Watch https://www.youtube.com/watch?v=7LN9z140U90
 
+
* Watch https://www.youtube.com/watch?v=iMT7gTPpaqw
== Thursday (2/20/20) ==
+
* Read https://codehs.gitbooks.io/apjava/content/Algorithms-and-Recursion/mergesort.html
'''Warmup:'''
 
* Complete the Point class repl.it warmup
 
  
 +
== Monday (3/9/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Inheritance & Polymorphism Quiz on '''Monday (2/24/20)'''
+
* Recursion quiz
* Inheritance review
+
* APCS FRQ 2019 #3 [https://apcentral.collegeboard.org/pdf/ap19-sg-computer-science-a.pdf grading rubric]
** Used to create superclasses comprised of common attributes (instance variables) and behaviors (methods)
+
** [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf #3 question]
** extends keyword - subclasses inherit all things public from the super class (except for constructors)
+
* Merge sort
** super() - method can be used to call any of the superclass's constructors (0 or more parameters can be used if it matches)
+
** Possible MC question where they ask you to trace a merge sort execution
* Class Hierarchies
+
* Quick...
** A superclass reference variables can reference a subclass object
+
*# Create a two dimensional array of type double (4 x 6)
* Polymorphism - same method names but different ... (parameters or objects)
+
*# Populate the 2D array with random numbers from 0 to 100
** Overriding methods - subclass method overriding superclass method of the same name
+
*# Write a nested for loop that sums the entire 2D array and calculates the average
** ...casting may be necessary depending on your reference variable type
 
** Where else have we seen overriding methods?
 
* Object super class
 
** equals()
 
** toString()
 
* Animal class example
 
  
 
'''Homework:'''
 
'''Homework:'''
* Complete eIMACS: Test 14: Inheritance & Polymorphism
+
* APCS FRQ 2019 #4 (22 minutes)
  
== Tuesday (2/18/20) ==
+
== Thursday (3/5/20) ==
 
'''Warmup:'''
 
'''Warmup:'''
* Complete the Circle class repl.it warmup
+
<syntaxhighlight lang="Java">
 +
Given the following method declaration, which of the following is printed as the result of the call mystery(1234)?
  
'''Agenda:'''
+
//precondition: x >=0
* Inheritance and Polymorphism
+
public static void mystery (int x)
** Extending classes - extends keyword
+
{
** super() method call
+
  System.out.print(x % 10);
** Complete Activity 17: Airplanes
 
* Demonstrate Employee and Company classes
 
  
== Thursday (2/13/20) ==
+
  if ((x / 10) != 0)
'''Agenda:'''
+
  {
* Work on and complete the Employee & Company classes (specifications below)
+
      mystery(x / 10);
** Prepare your own main() to demonstrate that everything works
+
  }
** Classes should be completed as homework and over the long weekend
+
  System.out.print(x % 10);
** Code will be submitted (details to come)
+
}
** Demonstrations will begin on Tuesday (2/18/20)
 
  
== Tuesday (2/11/20) ==
+
(a) 1441
'''Agenda:'''
+
(b) 43211234
* NetBeans review
+
(c) 3443
* Complete the ArrayList repl.its
+
(d) 12344321
** sum()
+
(e) Many digits are printed due to infinite recursion.
** min() & max()
+
</syntaxhighlight>
* ArrayList<Card> examples
 
** Total the value of your hand
 
** Finding the smallest Card (minimum)
 
** Finding the largest Card (maximum)
 
** Finding a card (i.e. search)
 
** Sort your Cards
 
* Expectation: you should be able to repeat any of the above with any object!
 
* Employee class
 
** instance variables: (these should be private)
 
*** name (text)
 
*** experience (whole number years of experience)
 
*** salary (floating point number)
 
** methods (these should be public)
 
*** constructors (default and specific)
 
*** setters and getters (accessors and mutators) for all instance variables
 
*** String toString() - returns a String that represents the Employee (all the attributes)
 
* Company class
 
** instance variable:
 
*** ArrayList<Employee> employees
 
** methods (these should be public)
 
*** constructors (default and specific) - instantiate your ArrayList
 
*** void addEmployee(Employee e) - adds the Employee object e to your employees ArrayList
 
*** void listAllEmployees() - prints out all the employees
 
*** Employee getMostExperienced() - returns most experienced Employee
 
*** Employee getHighestPaid() - returns the highest paid Employee
 
*** Employee getLowestPaid() - returns the lowest paid Employee
 
*** double getSumOfSalaries() - returns the sum total of all the salaries in employees
 
*** void sortByYearsOfExperience() - sorts employees by years of experience
 
  
== Friday (2/7/20) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
* ArrayList Quiz
+
* Finish APCS FRQ 2019 #2 (5 minutes)
* APS Robotics Day volunteers needed
+
** Self-grade rubric
** Saturday, February 8th from 8:30-12:30
+
* Recursion quiz on '''Monday (3/9/19)'''
** Career Center
+
* Recursion review & HW questions?
* BrickBreaker w/ ArrayLists demos
+
* Recursion practice problems
* ArrayList<Card> examples
+
** Write a recursive method that returns the sum of all the numbers from N down to 1: int sum(int N)
** Total the value of your hand
+
** Write a recursive method that prints every other letter of a string: void printSkipping(String s)
** Finding the smallest Card (minimum)
+
** Write a recursive method that returns true if a particular character is in the String: boolean findChar(char ch, String s)
** Finding the largest Card (maximum)
 
** Finding a card (i.e. search)
 
** Sort your Cards
 
* Expectation: you should be able to repeat any of the above with any object!
 
  
== Wednesday (2/5/20) ==
+
'''Homework:'''
'''Warmup:'''
+
* APCS FRQ 2019 #3 (22 minutes)
# Write a Java program that creates an ArrayList<Double>
 
# Generate 100 random numbers (0 - 1000) and put them in your ArrayList
 
# Write a loop that finds the minimum and maximum values from your ArrayList
 
# Print them out
 
 
 
'''Agenda:'''
 
* ArrayList Quiz on '''Friday 2/7/20'''
 
* [https://repl.it/@paulbui/Card-Example Card example]
 
*# Create a new repl.it called ArrayList Card Practice
 
*# Create a new file within the repl.it named Card.java
 
*# Copy and paste Mr. Bui's incomplete Card.java file into yours
 
* public vs private
 
** examples
 
* ArrayList<Card> examples
 
** Total the value of your hand
 
** Finding the smallest Card (minimum)
 
** Finding the largest Card (maximum)
 
** Finding a card (i.e. search)
 
** Sort your Cards
 
* Expectation: you should be able to repeat any of the above with any object!
 
  
== Monday (2/3/20) ==
+
== Tuesday (3/3/20) ==
'''Agenda:'''
+
* Super Tuesday (no school for students)
* ArrayList Quiz on '''Friday 2/7/20'''
 
* Minesweeper demos
 
* BrickBreaker w/ ArrayLists demos
 
* [https://apcentral.collegeboard.org/pdf/ap-computer-science-a-course-and-exam-description-0.pdf?course=ap-computer-science-a AP CS Guide]
 
** Review Unit 7: ArrayList's Essential Knowledge
 
* AP-expected algorithms:
 
** Min/Max
 
** Searching
 
*** Linear search
 
*** Binary search
 
** Sorting
 
*** Selection sort
 
*** Insertion sort
 
  
== [[APCS - 1920 - January]] ==
 
== [[APCS - 1920 - December]] ==
 
== [[APCS - 1920 - November]] ==
 
== [[APCS - 1920 - October]] ==
 
== [[APCS - 1920 - September]] ==
 
 
== [[APCS - Archives]] ==
 
== [[APCS - Archives]] ==
 +
* [[APCS - 1920 - February]]
 +
* [[APCS - 1920 - January]]
 +
* [[APCS - 1920 - December]]
 +
* [[APCS - 1920 - November]]
 +
* [[APCS - 1920 - October]]
 +
* [[APCS - 1920 - September]]
 +
* [[APCS - Archives|APCS - Previous Years]]

Revision as of 14:24, 31 March 2020

Monday - Friday (3/30/20 - 4/3/20) : Self-distancing : Week 3

  • Free AP Review Classes
    • Note: APCS's exam will only test Units 1-7; however the review videos may cover Units 8-10 because they are good to know for future classes
    • The review classes are broadcast daily on this schedule
    • The review videos are available on-demand, so you can access them any time
  • Complete the FRQ repl.its for practice

Monday - Friday (3/23/20 - 3/27/20) : Self-distancing : Week 2

Tuesday - Friday (3/17/20 - 3/20/20) : Self-distancing : Week 1

  • 3rd Quarter ends Friday (3/20/20)
    • All AP CS grades have been entered for the 3rd quarter, so if you check and notice a grade is incorrect, then please e-mail Mr. Bui
    • If you wish to update a grade b/c you needed to complete a missing/late assignment, then please e-mail Mr. Bui
    • No work for 3rd Quarter will be accepted after Friday (3/20/20)
  • 4th quarter schedule of assignments will be posted soon (after Mr. Bui finishes closing out 3rd quarter grades)

Monday (3/16/20) : Self-distancing : Week 1

  • All students are still expected to have completed all 3 of the AP CS FRQs that were assigned when school was still in session last week (see previous date below). Be prepared to take pictures or scan your work to submit to Canvas. More details to come...
  • Mr. Bui is developing a weekly schedule of Java-related, AP CS review tasks and resources. A complete schedule should be posted by Tuesday (3/17/20) morning
  • Mr. Bui is also developing a question-answer workflow so that students can ask general and specific questions. The workflow will look something like this:
    • General questions should be posted in the Canvas Discussion area; however, the student should check if any existing discussion threads already answer their question. If not, then a new thread should be created for their question
    • Specific questions about student code will require students to take a screenshot of their own code and message it to Mr. Bui. The Canvas messaging system will likely be used for this because Mr. Bui does not want his inbox to be flooded
  • If you have a questions, please feel free to e-mail Mr. Bui or create a Discussion thread. Please note that if you e-mail a question, and it's a good question, then Mr. Bui may create a thread himself to repost and answer your question
  • Please note: Mr. & Mrs. Bui have their own children at home with them, so do not expect immediate responses

Friday (3/13/20)

Agenda:

  • You will be practicing AP CS FRQs today
    • Complete #1, 2, 4 (skip #3) of the 2018 AP CS FRQ
    • You must write your responses by hand (make sure your name and the question numbers are at the top)
    • You may use the AP CS Java Quick Reference
    • Spend no more than 22.5 minutes per question

Homework:

  • If you do not complete the 3 FRQs in class, then you may work on them at home

Wednesday (3/11/20)

Agenda:

Monday (3/9/20)

Agenda:

  • Recursion quiz
  • APCS FRQ 2019 #3 grading rubric
  • Merge sort
    • Possible MC question where they ask you to trace a merge sort execution
  • Quick...
    1. Create a two dimensional array of type double (4 x 6)
    2. Populate the 2D array with random numbers from 0 to 100
    3. Write a nested for loop that sums the entire 2D array and calculates the average

Homework:

  • APCS FRQ 2019 #4 (22 minutes)

Thursday (3/5/20)

Warmup:

Given the following method declaration, which of the following is printed as the result of the call mystery(1234)?

//precondition:  x >=0
public static void mystery (int x)
{
   System.out.print(x % 10);

   if ((x / 10) != 0)
   {
      mystery(x / 10);
   }
   System.out.print(x % 10);
}

(a) 1441
(b) 43211234
(c) 3443
(d) 12344321
(e) Many digits are printed due to infinite recursion.

Agenda:

  • Finish APCS FRQ 2019 #2 (5 minutes)
    • Self-grade rubric
  • Recursion quiz on Monday (3/9/19)
  • Recursion review & HW questions?
  • Recursion practice problems
    • Write a recursive method that returns the sum of all the numbers from N down to 1: int sum(int N)
    • Write a recursive method that prints every other letter of a string: void printSkipping(String s)
    • Write a recursive method that returns true if a particular character is in the String: boolean findChar(char ch, String s)

Homework:

  • APCS FRQ 2019 #3 (22 minutes)

Tuesday (3/3/20)

  • Super Tuesday (no school for students)

APCS - Archives