Difference between revisions of "IB Computer Science 2"

From WLCS
Line 1: Line 1:
== Monday (10/4/10) ==
+
<!--
'''Warmup:'''
+
* [https://docs.google.com/presentation/d/1L56lS56iPx8NzfERe12D_mPeQnwq9SUyngEiBkVMF34/edit?usp=sharing Collected Bui Advice]
* Complete any missing assignments:
+
* [https://drive.google.com/open?id=15qiqHJeaICoR_1uhLK5ZPVY4DEjGayKcoEbdYxLtD-M Personal Finance]
** [[AddressBook class lab assignment]]
+
-->
** SelectionSort
+
== Monday - Friday (5/4/20 - 5/29/20) : Self-distancing : Weeks 8, 9, 10, 11 ==
 +
* Complete the [https://forms.gle/QfxPPyjFTsH3rLnz7 Graduating Senior Survey] if you have not already done so
 +
* Canvas assignments have been created for submission of the [https://docs.google.com/document/d/1UBXUyC8LJbQnqTwEr9ERHtt1jwLS8h7Nh4oPfyoyIZs/edit?usp=sharing Optional Software Design & Implementation Project]
 +
** You may e-mail Mr. Bui drafts for early feedback
 +
* Here are two resources you should explore if you have the time:
 +
** [https://missing.csail.mit.edu/ The Missing Semester of Your CS Education (MIT)]
 +
** [https://leetcode.com/ LeetCode]
  
'''Agenda:'''
+
== Monday - Friday (4/20/20 - 5/1/20) : Self-distancing : Weeks 6 & 7 ==
* SelectionSort Review
+
* Complete the [https://forms.gle/QfxPPyjFTsH3rLnz7 Graduating Senior Survey] if you have not already done so
* Introduction to Bubble Sort
+
* [https://docs.google.com/document/d/1UBXUyC8LJbQnqTwEr9ERHtt1jwLS8h7Nh4oPfyoyIZs/edit?usp=sharing Optional Software Design & Implementation Project]
# Initialize the front to be the top or beginning of the array
+
** This is for optional final grade elevation
# Now go to the bottom/end of the array
+
** You may e-mail Mr. Bui drafts for feedback
# Compare the two adjacent elements to see if they are in proper sequential order
+
* Here are two resources you should explore if you have the time:
## Swap the elements if they are out of order (bigger number to the left of smaller number)
+
** [https://missing.csail.mit.edu/ The Missing Semester of Your CS Education (MIT)]
# Move to the next pair of adjacent elements/numbers
+
** [https://leetcode.com/ LeetCode]
# Repeat steps 3 and 4 until the smallest number has "floated" to the top/front
 
# After you traverse the entire array
 
## Move the front so that the sorted numbers are ignored
 
## Go back to the end of the array
 
## Repeat steps 2 through 6 for the unsorted part of the array
 
<!--* [http://web.engr.oregonstate.edu/~minoura/cs162/javaProgs/sort/BubbleSort.html Bubble Sort Animation]-->
 
* [http://math.hws.edu/TMCM/java/xSortLab/ Sorting Animations]
 
* [http://www.cs.pitt.edu/~kirk/cs1501/animations/Sort2.html More Sorting Animations]
 
* Download [[Media:BubbleSort.java]]
 
** Fill in the commented parts of the BubbleSort.java file. Where there is a comment, you need to write code.
 
** Demo to Mr. Bui at the end of class
 
 
 
== Thursday (9/30/10) ==
 
'''Warmup:'''
 
* Pickup 5 playing cards from Mr. Bui
 
* Use the SelectionSort algorithm to hand-sort the cards from least to greatest
 
 
 
'''Agenda:'''
 
* Turn in field trip slips
 
* Turn in quiz corrections
 
* Demo [[AddressBook class lab assignment]]
 
* Demo ArrayPractice exercises
 
* Demo SelectionSort
 
* Add a (s)ort option to your AddressBook
 
** In order to compare Strings:
 
<source lang="Java">
 
if (str1.compareTo(str2) < 0)
 
{
 
  System.out.println(str1 + " goes before " + str2);
 
}
 
</source>
 
* So inside your AddressBook, you'd have something like this:
 
<source lang="Java">
 
if (myContacts[i].getLastName().compareTo(myContacts[j].getLastName()) < 0)
 
</source>
 
 
 
== Back To School Night (9/29/10) ==
 
* [[Media:B2snIBCS2.ppt]]
 
 
 
== Tuesday (9/28/10) ==
 
'''Warmup:'''
 
* Create a Java file with a main() called SelectionSort
 
* Create an array of 20 ints
 
* Use your own numbers in the array
 
 
 
'''Agenda:'''
 
* Introduction to Selection Sort
 
# Find the smallest element
 
# Move to the front of the array (swap with front)
 
# Repeat Steps 1&2, but ignoring the sorted front
 
* [http://www.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/Sort2-E.html Selection Sort Animation]
 
* [http://www.cs.ust.hk/faculty/tcpong/cs102/summer96/aids/select.html Another Selection Sort Animation]
 
* [http://math.hws.edu/TMCM/java/xSortLab/ Sorting Animations]
 
* Download [[Media:SelectionSort.java]]
 
** Fill in the commented parts of the SelectionSort.java file. Where there is a comment, you need to write code.
 
 
 
== Friday (9/24/10) ==
 
'''Warmup:'''
 
* You will be creating a user interface menu for use with your AddressBook
 
* Open / create your AddressBook's main method
 
* Inside the main method, create an AddressBook variable:
 
 
 
<source lang="java">
 
AddressBook book = new AddressBook();
 
</source>
 
 
 
* Print out a message that explains the program (e.g. "Welcome to YOUR_NAME's address book!")
 
* Print out a menu with the following options:
 
 
 
<pre>
 
(a)dd to address book
 
(f)ind a Contact
 
(p)rint address book
 
(q)uit
 
 
 
What would you like to do?
 
</pre>
 
 
 
* You should prompt for input after the menu is printed.  Review [[Media:JavaIOExample.java]] for examples of input/output
 
*# Add '''import java.io.*;''' at the very top
 
*# Add '''private static BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) );''' before main()
 
*# Add '''throws IOException''' so that main() reads like '''public static void main(String [] args) throws IOException'''
 
*# You may now use '''stdin.readLine();''' to read in a String
 
*# To compare Strings, use .equals() like so: '''myStr.equals("a")'''
 
* If the user inputs 'a', then print a message that says "USER SELECTED ADD"
 
* If the user inputs 'f', then print a message that says "USER SELECTED FIND"
 
* If the user inputs 'p', then print a message that says "USER SELECTED PRINT"
 
* If the user inputs 'q', then print a message that says "USER SELECTED QUIT"
 
 
 
'''Agenda:'''
 
* Complete [[AddressBook class lab assignment]]
 
* Create the '''Contact remove(String fn, String ln)''' method for the AddressBook
 
*# Using a for loop, find the Contact that matches fn and ln, and save it in a variable
 
*# Once you have found the Contact, you should remember its index (location) in the array
 
*# Check if the Contact was found in the array
 
*## If it was found, you must use a loop to shift all the array elements down one index
 
*## HINT: myContacts[i] = myContacts[i+1] //where i is a loop counter
 
*# Be sure to set the last element to null (so that there isn't a duplicate Contact in the end)
 
*#* HINT: myContacts[size-1] = null;
 
*# Decrement size
 
*# Return the removed Contact
 
* Demo all assignments
 
 
 
'''Homework:'''
 
* Install the [http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html Java JDK] on your computer (be sure to choose your corresponding operator system)
 
* Install [http://www.eclipse.org/downloads/packages/eclipse-classic-360/heliosr Eclipse Classic] on your computer (be sure to choose your corresponding operator system on the right)
 
* Test it out, and let Mr. Bui know if you run into problems
 
 
 
== Wednesday (9/22/10) ==
 
'''Warmup:'''
 
* Begin working on the [[AddressBook class lab assignment]]
 
 
 
'''Agenda:'''
 
* Demo ArrayPractices and any other assignments
 
* [[AddressBook class lab assignment]]
 
 
 
== Monday (9/20/10) ==
 
'''Agenda:'''
 
* Demo [[Person class lab assignment]]
 
* Demo [[Car class lab assignment]]
 
* Demo [[Contact class lab assignment]]
 
* Review Arrays
 
** [[Media:IntroArrays.ppt]]
 
* Array practice activities
 
*# Create a new Java class named ArrayPractice1.  Create an array of 10 Strings (Use names of students in the room).  Using a for loop, print out all the Strings in the array.
 
*# Create a new Java class named ArrayPractice2.  Create an array of 10 integers (make a bunch of numbers up).  Using a for loop and an if statement, print print out only numbers greater than 10.
 
*# Create a new Java class named ArrayPractice3.  Create an array of 10 integers.  Using a for loop, calculate the sum and average.
 
* [[AddressBook class lab assignment]]
 
 
 
'''Homework:'''
 
* Install the [http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html Java JDK] on your computer (be sure to choose your corresponding operator system)
 
* Install [http://www.eclipse.org/downloads/packages/eclipse-classic-360/heliosr Eclipse Classic] on your computer (be sure to choose your corresponding operator system on the right)
 
* Test it out, and let Mr. Bui know if you run into problems
 
  
== Thursday (9/16/10) ==
+
== Tuesday - Friday (4/14/20 - 4/17/20) : Self-distancing : Week 5 ==
'''Warmup:'''
+
* Complete the [https://forms.gle/QfxPPyjFTsH3rLnz7 Graduating Senior Survey]
* Be sure you have completed the [[Person class lab assignment]]
+
* [https://docs.google.com/document/d/1UBXUyC8LJbQnqTwEr9ERHtt1jwLS8h7Nh4oPfyoyIZs/edit?usp=sharing Optional Software Design & Implementation Project]
* If you have *not* completed it, then finish it for your warmup
+
** This is for optional final grade elevation
* If you have already completed, then try the following warmup:
 
*# Review [[Media:JavaIOExample.java]]
 
*# In your Warmups project in Eclipse, create a new Java class named Warmup_9_16_10
 
*# Prompt the user for an int
 
*# Using an if statement, print out whether or not the user's number is positive or negative
 
  
'''Agenda:'''
+
== Monday - Friday (4/6/20 - 4/10/20) : Self-distancing : Week 4 ==
* toString() methods
+
* Spring Break
* Demo [[Person class lab assignment]]
 
* Demo [[Car class lab assignment]]
 
* Demo [[Contact class lab assignment]]
 
  
== Tuesday (9/14/10) ==
+
== Monday - Friday (3/29/20 - 4/3/20) : Self-distancing : Week 3 ==
'''Warmup:'''
+
* See Ms. Cantor's e-mail concerning IB exams
* Open Eclipse
+
* Mr. Bui is finishing grading all IAs this week
* Create a new project named Warmups
 
* Create a new Java filed name Warmup9_14_10 (be sure to include the public static void main())
 
* Write a for loop that prints out all the even numbers from 100 DOWN to 0
 
  
'''Agenda:'''
+
== Monday - Friday (3/23/20 - 3/27/20) : Self-distancing : Week 2 ==
* Create a new project named ClassesReview
+
* Mr. Bui is in the process of closing out 3rd Quarter grades
* Create a new Java class named Circle
+
* '''Your 4th Quarter grade will contain an IA grade after Mr. Bui is done grading them'''
* Complete the Circle class with the following methods (You may use the auto-generating setter/getter feature!):
+
* There are updates and announcements coming soon from the IBO...stay tuned (and stay healthy)
** Circle()
+
** See Ms. Cantor's e-mail sent out to IB students
** getRadius()
 
** setRadius()
 
** getDiameter()
 
** getArea()
 
* Download [[Media:CircleMain.java]] to the src folder in your ClassesReview project (OR download and then import it through Eclipse)
 
* [[Person class lab assignment]]
 
* [[Car class lab assignment]]
 
* [[Contact class lab assignment]]
 
  
'''Homework:'''
+
== Tuesday - Friday (3/17/20 - 3/20/20) : Self-distancing : Week 1  ==
* Install the [http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html Java JDK] on your computer (be sure to choose your corresponding operator system)
+
* 3rd Quarter ends '''Friday (3/20/20)'''
* Install [http://www.eclipse.org/downloads/packages/eclipse-classic-360/heliosr Eclipse Classic] on your computer (be sure to choose your corresponding operator system on the right)
+
** If you do not submit your Final Internal Assessment, then you will receive an Incomplete for the 3rd quarter
* Test it out, and let Mr. Bui know if you run into problems
+
** The Cryptocurrency Case Study Slide will be credited for both the 3rd and 4th quarters. Not turning it in will yield a zero grade also for both 3rd and 4th quarters.
 +
** All IB CS 2 grades are currently being entered for the 3rd quarter, so if you check and notice a grade is incorrect, then please e-mail Mr. Bui
 +
** Recheck your IB CS 2 grade daily because Mr. Bui is updating it right now.
 +
** 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)
  
== Friday (9/10/10) ==
+
== Monday (3/16/20) : Self-distancing : Week 1 ==
'''Warmup:'''
+
* All students are still expected to have submitted their Final Internal Assessments to Canvas
* Cram for Software Development Quiz
+
* All students are still expected to complete the Case Study Slide Assignment (see previous date below) and submit it to Canvas
 +
* Mr. Bui is developing a weekly schedule of review tasks and exam preparation. <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:'''
* Turn in any signed syllabi sheets
+
* Your Final IAs should have been turned into Mr. Bui this morning
* Software Development Quiz
+
** Late IA submissions will incur a penalty for every day that it is late
* Introduction to Eclipse/BlueJ/JEdit?
+
* Today, you will be receiving your case study key term for which you will be creating a study slide and presentation
* Java Review...uh oh!
+
* Check [https://docs.google.com/spreadsheets/d/11UaHFb4bz_FgmvuQcZccMM2La0u_aG9uS8aKGk5xyLk/edit?usp=sharing the list of assigned key terms and students here]
** semicolons!
+
* Case Study Slide Assignment
** public static void main( String [] args );
+
** You will need to research your term and create slides to teach the rest of the class (1-3 slides)
** Hello, world! - printing / outputting to screen
+
** You will also present your slides in class (~5 minutes)
** Prompting for input
+
** Your slide(s) must contain the following:
** if statements
+
*** Definition: What does the term mean or do? (2 pts)
** while loops
+
*** Describe: How does it work? (2 pts)
** for loops
+
*** Image(s) or graphic(s) to help explain/describe the term (2 pts)
** classes, attributes, setters, & getters!
+
*** Importance or application of the term within the context of the case study (2 pts)
 
+
*** Paste links to useful resources about your term within the the notes section of your slides (2 pts)
'''Homework:'''
+
** Submit your slide(s) to Canvas. They are due by the end of the period; however, you may use the weekend if you do not finish it in class
* Install the [http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html Java JDK] on your computer (be sure to choose your corresponding operator system)
 
* Install [http://www.eclipse.org/downloads/packages/eclipse-classic-360/heliosr Eclipse Classic] on your computer (be sure to choose your corresponding operator system on the right)
 
* Test it out, and let Mr. Bui know if you run into problems
 
 
 
== Wednesday (9/8/09) ==
 
'''Warmup:'''
 
* List as many different places and/or ways to obtain information during the problem analysis phase of any project
 
  
 +
== Thursday - Wednesday (3/5/20 - 3/11/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Turn in [[IBCS2 Summer Assignment]]
+
* Full IA will be due '''8AM - Friday (3/13/20)''' on Canvas!
* Name cards
+
** [[Media:IBCS_InternalAssessmentGuidelines.pdf]]
* Complete the [http://spreadsheets.google.com/viewform?key=p6_k1SMbS2zvMHJNJBBkFPA student survey]
+
** [https://ibpublishing.ibo.org/live-exist/rest/app/tsm.xql?doc=d_4_comsc_tsm_1201_1_e&part=4&chapter=4 IA Assembly Guidelines]
* Introduction to Software Development
+
** IA Checklist - [[Media:IBCS_InternalAssessmentChecklist.doc]]
** [[Media:SoftwareDevelopment.ppt]]
+
** IA Forms - [[Media:IBCS_IA_Forms.zip]]
* Software Development Quiz on Friday (9/10/10)
+
** [http://ibpublishing.ibo.org/live-exist/rest/app/tsm.xql?doc=d_4_comsc_tsm_1201_1_e&part=4&chapter=5 IA Criteria (Rubric)]
 
+
* Submitting your IA after the '''8AM - Friday (3/13/20)''' deadline will incur a cumulative daily penalty (i.e. each late day will cost you points)
== Tuesday (9/7/09) ==
+
* What to expect in Canvas to submit your IA...
* Introductions
+
** Individual criterion sections that must have submissions (A through E)
* Turn in [[IBCS2 Summer Assignment]]
+
** Project code uploaded as a single zip (required)
* [[IB Computer Science II Syllabus]]
+
** Appendix (optional)
* Lab setup/config
 
** Login username is your first initial and lastname (e.g. pbui)
 
** Your password is your student ID number
 
** Go to System -> Preferences -> About Me -> Change Password
 
  
== Summer ==
+
== [[IBCS2 - Archives]] ==
* [[IBCS2 Summer Assignment]]
+
* [[IBCS2 - 1920 - February]]
 +
* [[IBCS2 - 1920 - January]]
 +
* [[IBCS2 - 1920 - December]]
 +
* [[IBCS2 - 1920 - November]]
 +
* [[IBCS2 - 1920 - October]]
 +
* [[IBCS2 - 1920 - September]]
 +
* [[IBCS2 - Archives|IBCS2 - Previous Years]]

Revision as of 22:32, 24 May 2020

Monday - Friday (5/4/20 - 5/29/20) : Self-distancing : Weeks 8, 9, 10, 11

Monday - Friday (4/20/20 - 5/1/20) : Self-distancing : Weeks 6 & 7

Tuesday - Friday (4/14/20 - 4/17/20) : Self-distancing : Week 5

Monday - Friday (4/6/20 - 4/10/20) : Self-distancing : Week 4

  • Spring Break

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

  • See Ms. Cantor's e-mail concerning IB exams
  • Mr. Bui is finishing grading all IAs this week

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

  • Mr. Bui is in the process of closing out 3rd Quarter grades
  • Your 4th Quarter grade will contain an IA grade after Mr. Bui is done grading them
  • There are updates and announcements coming soon from the IBO...stay tuned (and stay healthy)
    • See Ms. Cantor's e-mail sent out to IB students

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

  • 3rd Quarter ends Friday (3/20/20)
    • If you do not submit your Final Internal Assessment, then you will receive an Incomplete for the 3rd quarter
    • The Cryptocurrency Case Study Slide will be credited for both the 3rd and 4th quarters. Not turning it in will yield a zero grade also for both 3rd and 4th quarters.
    • All IB CS 2 grades are currently being entered for the 3rd quarter, so if you check and notice a grade is incorrect, then please e-mail Mr. Bui
    • Recheck your IB CS 2 grade daily because Mr. Bui is updating it right now.
    • 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 submitted their Final Internal Assessments to Canvas
  • All students are still expected to complete the Case Study Slide Assignment (see previous date below) and submit it to Canvas
  • Mr. Bui is developing a weekly schedule of review tasks and exam preparation. 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:

  • Your Final IAs should have been turned into Mr. Bui this morning
    • Late IA submissions will incur a penalty for every day that it is late
  • Today, you will be receiving your case study key term for which you will be creating a study slide and presentation
  • Check the list of assigned key terms and students here
  • Case Study Slide Assignment
    • You will need to research your term and create slides to teach the rest of the class (1-3 slides)
    • You will also present your slides in class (~5 minutes)
    • Your slide(s) must contain the following:
      • Definition: What does the term mean or do? (2 pts)
      • Describe: How does it work? (2 pts)
      • Image(s) or graphic(s) to help explain/describe the term (2 pts)
      • Importance or application of the term within the context of the case study (2 pts)
      • Paste links to useful resources about your term within the the notes section of your slides (2 pts)
    • Submit your slide(s) to Canvas. They are due by the end of the period; however, you may use the weekend if you do not finish it in class

Thursday - Wednesday (3/5/20 - 3/11/20)

Agenda:

IBCS2 - Archives