Difference between revisions of "AP Computer Science"

From WLCS
(Thursday (3/5/20))
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
== 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:'''
 +
* You will be practicing AP CS FRQs today
 +
** Complete #1, 2, 4 (skip #3) of the [https://secure-media.collegeboard.org/apc/ap18-frq-computer-science-a.pdf 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:'''
 +
* 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
 +
* Read [https://www.khanacademy.org/computing/computer-science/algorithms/merge-sort/a/overview-of-merge-sort Khan Academy - Merge Sort]
 +
* Watch https://www.youtube.com/watch?v=7LN9z140U90
 +
* Watch https://www.youtube.com/watch?v=iMT7gTPpaqw
 +
* Read https://codehs.gitbooks.io/apjava/content/Algorithms-and-Recursion/mergesort.html
 +
 +
== Monday (3/9/20) ==
 +
'''Agenda:'''
 +
* Recursion quiz
 +
* APCS FRQ 2019 #3 [https://apcentral.collegeboard.org/pdf/ap19-sg-computer-science-a.pdf grading rubric]
 +
** [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf #3 question]
 +
* Merge sort
 +
** Possible MC question where they ask you to trace a merge sort execution
 +
* Quick...
 +
*# Create a two dimensional array of type double (4 x 6)
 +
*# Populate the 2D array with random numbers from 0 to 100
 +
*# 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) ==
 
== Thursday (3/5/20) ==
 
'''Warmup:'''
 
'''Warmup:'''
Line 39: Line 99:
 
* Super Tuesday (no school for students)
 
* Super Tuesday (no school for students)
  
== Friday (2/28/20) ==
 
'''Agenda:'''
 
* Complete rubric grading of Question #1 from [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf 2019 AP CS FRQ]
 
* Introduction to Recursion
 
** [https://drive.google.com/open?id=1lTbHjY4I8bw4vWaXyoe-t5jDDTTCqa6ZcYR3BTyRNZc Recursion slides]
 
** mystery() multiple choice question
 
<syntaxhighlight lang="Java">
 
Consider the following recursive method.
 
public static int mystery(int n)
 
{
 
    if (n == 0)
 
        return 1;
 
    else
 
        return 3 * mystery(n - 1);
 
}
 
What value is returned as a result of the call mystery(5) ?
 
(a) 0
 
(b) 3
 
(c) 81
 
(d) 243
 
(e) 6561
 
</syntaxhighlight>
 
 
* Practice Free Response
 
** 22.5 minutes per question (90 minutes for 4 questions)
 
** Complete Question #2 from [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf 2019 AP CS FRQ]
 
** Rubric grade as a class
 
 
'''Homework:'''
 
* Complete eIMACS: Activity 13: Recursion
 
** You can review recursion concepts in the reading: Java Basics -> Methods -> Recursive Methods
 
* Complete repl.it: Recursion - Counting chars
 
* Complete repl.it: Recursion - Reverse String
 
 
== Wednesday (2/26/20) ==
 
'''Agenda:'''
 
* static keyword (for methods or for variables)
 
** binds the method or variable to the class NAME as opposed to the object instance
 
** static methods may *not* modify instance variables
 
** static method example
 
** static variable exists as a single copy for all objects
 
** static variable example
 
* final keyword
 
** makes the variable unchangeable
 
** final variable example
 
* Practice Free Response
 
** 22.5 minutes per question (90 minutes for 4 questions)
 
** Most questions have multiple parts
 
** Complete Question #1 from [https://apcentral.collegeboard.org/pdf/ap19-frq-computer-science-a.pdf 2019 AP CS FRQ]
 
** Rubric grading
 
 
== Monday (2/24/20) ==
 
'''Agenda:'''
 
* Review eIMACS: Test 14: Inheritance & Polymorphism
 
* Inheritance & Polymorphism Quiz
 
* Complete eIMACS: Activity 18: Components
 
 
== Thursday (2/20/20) ==
 
'''Warmup:'''
 
* Complete the Point class repl.it warmup
 
 
'''Agenda:'''
 
* Inheritance & Polymorphism Quiz on '''Monday (2/24/20)'''
 
* Inheritance review
 
** Used to create superclasses comprised of common attributes (instance variables) and behaviors (methods)
 
** extends keyword - subclasses inherit all things public from the super class (except for constructors)
 
** super() - method can be used to call any of the superclass's constructors (0 or more parameters can be used if it matches)
 
* Class Hierarchies
 
** A superclass reference variables can reference a subclass object
 
* Polymorphism - same method names but different ... (parameters or objects)
 
** Overriding methods - subclass method overriding superclass method of the same name
 
** ...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:'''
 
* Complete eIMACS: Test 14: Inheritance & Polymorphism
 
 
== Tuesday (2/18/20) ==
 
'''Warmup:'''
 
* Complete the Circle class repl.it warmup
 
 
'''Agenda:'''
 
* Inheritance and Polymorphism
 
** Extending classes - extends keyword
 
** super() method call
 
** Complete Activity 17: Airplanes
 
* Demonstrate Employee and Company classes
 
 
== Thursday (2/13/20) ==
 
'''Agenda:'''
 
* Work on and complete the Employee & Company classes (specifications below)
 
** Prepare your own main() to demonstrate that everything works
 
** Classes should be completed as homework and over the long weekend
 
** Code will be submitted (details to come)
 
** Demonstrations will begin on Tuesday (2/18/20)
 
 
== Tuesday (2/11/20) ==
 
'''Agenda:'''
 
* NetBeans review
 
* Complete the ArrayList repl.its
 
** sum()
 
** min() & max()
 
* 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:'''
 
* 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) ==
 
'''Warmup:'''
 
# 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) ==
 
'''Agenda:'''
 
* 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