Difference between revisions of "AP Computer Science"

From WLCS
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Tuesday (2/18/20) ==
+
== Monday - Friday (3/30/20 - 4/3/20) : Self-distancing : Week 3 ==
'''Warmup:'''
+
* [https://www.youtube.com/user/advancedplacement Free AP Review Classes]
* Complete the Circle class repl.it warmup
+
** '''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:'''
* Inheritance and Polymorphism
+
* You will be practicing AP CS FRQs today
** Extending classes - extends keyword
+
** Complete #1, 2, 4 (skip #3) of the [https://secure-media.collegeboard.org/apc/ap18-frq-computer-science-a.pdf 2018 AP CS FRQ]
** super() method call
+
** You must write your responses by hand (make sure your name and the question numbers are at the top)
** Complete Activity 17: Airplanes
+
** You may use the AP CS Java Quick Reference
* Demonstrate Employee and Company classes
+
** Spend no more than 22.5 minutes per question
  
== Thursday (2/13/20) ==
+
'''Homework:'''
 +
* If you do not complete the 3 FRQs in class, then you may work on them at home
 +
 
 +
== Wednesday (3/11/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Work on and complete the Employee & Company classes (specifications below)
+
* 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
** Prepare your own main() to demonstrate that everything works
+
* Read [https://www.khanacademy.org/computing/computer-science/algorithms/merge-sort/a/overview-of-merge-sort Khan Academy - Merge Sort]
** Classes should be completed as homework and over the long weekend
+
* Watch https://www.youtube.com/watch?v=7LN9z140U90
** Code will be submitted (details to come)
+
* Watch https://www.youtube.com/watch?v=iMT7gTPpaqw
** Demonstrations will begin on Tuesday (2/18/20)
+
* Read https://codehs.gitbooks.io/apjava/content/Algorithms-and-Recursion/mergesort.html
  
== Tuesday (2/11/20) ==
+
== Monday (3/9/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* NetBeans review
+
* Recursion quiz
* Complete the ArrayList repl.its
+
* APCS FRQ 2019 #3 [https://apcentral.collegeboard.org/pdf/ap19-sg-computer-science-a.pdf grading rubric]
** sum()
+
** [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf #3 question]
** min() & max()
+
* Merge sort
* ArrayList<Card> examples
+
** Possible MC question where they ask you to trace a merge sort execution
** Total the value of your hand
+
* Quick...
** Finding the smallest Card (minimum)
+
*# Create a two dimensional array of type double (4 x 6)
** Finding the largest Card (maximum)
+
*# Populate the 2D array with random numbers from 0 to 100
** Finding a card (i.e. search)
+
*# Write a nested for loop that sums the entire 2D array and calculates the average
** 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) ==
+
'''Homework:'''
'''Agenda:'''
+
* APCS FRQ 2019 #4 (22 minutes)
* ArrayList Quiz
 
* APS Robotics Day volunteers needed
 
** Saturday, February 8th from 8:30-12:30
 
** Career Center
 
* BrickBreaker w/ ArrayLists demos
 
* 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!
 
  
== Wednesday (2/5/20) ==
+
== Thursday (3/5/20) ==
 
'''Warmup:'''
 
'''Warmup:'''
# Write a Java program that creates an ArrayList<Double>
+
<syntaxhighlight lang="Java">
# Generate 100 random numbers (0 - 1000) and put them in your ArrayList
+
Given the following method declaration, which of the following is printed as the result of the call mystery(1234)?
# Write a loop that finds the minimum and maximum values from your ArrayList
+
 
# Print them out
+
//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.
 +
</syntaxhighlight>
  
 
'''Agenda:'''
 
'''Agenda:'''
* ArrayList Quiz on '''Friday 2/7/20'''
+
* Finish APCS FRQ 2019 #2 (5 minutes)
* [https://repl.it/@paulbui/Card-Example Card example]
+
** Self-grade rubric
*# Create a new repl.it called ArrayList Card Practice
+
* Recursion quiz on '''Monday (3/9/19)'''
*# Create a new file within the repl.it named Card.java
+
* Recursion review & HW questions?
*# Copy and paste Mr. Bui's incomplete Card.java file into yours
+
* Recursion practice problems
* public vs private
+
** Write a recursive method that returns the sum of all the numbers from N down to 1: int sum(int N)
** examples
+
** Write a recursive method that prints every other letter of a string: void printSkipping(String s)
* ArrayList<Card> examples
+
** Write a recursive method that returns true if a particular character is in the String: boolean findChar(char ch, String s)
** 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) ==
+
'''Homework:'''
'''Agenda:'''
+
* APCS FRQ 2019 #3 (22 minutes)
* ArrayList Quiz on '''Friday 2/7/20'''
+
 
* Minesweeper demos
+
== Tuesday (3/3/20) ==
* BrickBreaker w/ ArrayLists demos
+
* Super Tuesday (no school for students)
* [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