Difference between revisions of "IB Computer Science 2"

From WLCS
 
Line 1: Line 1:
== Monday (10/19/15) ==
+
== [[IBCS2 - Archives]] ==
'''Agenda:'''
 
* Demo the following:
 
** [[Person class lab assignment]]
 
** [[Car class lab assignment]]
 
** [[Vector class lab assignment]]
 
 
 
== Thursday (10/15/15) ==
 
'''Agenda:'''
 
* Demo any missing assignments to Mr. Bui
 
* Complete the Point class definition from last class
 
* Define more static methods in PointMain.java:
 
** double distance(Point p1, Point p2) - returns distance between p1 and p2
 
** Point midPoint(Point p1, Point p2) - returns a new Point, which is the midpoint between p1 and p2
 
* Test your new methods in the main().  Demonstrate the tests to Mr. Bui
 
* [[Person class lab assignment]]
 
* [[Car class lab assignment]]
 
* [[Vector class lab assignment]]
 
 
 
== Tuesday (10/13/15) ==
 
'''Agenda:'''
 
* Demo missing assignments
 
* IA Progress Assignment (due tomorrow!) - via [http://classroom.google.com Google Classroom]
 
*# You will upload any/all code or tutorial documentation to justify your progress on the Internal Assessment.
 
*# You must submit at least 3 artifacts demonstrating Internal Assessment progress for full credit.
 
*# You may include screenshots of tutorial completions (e.g. CodeAcademy).
 
*# At the top of each file, annotate the code or screenshot, explaining what it is and how it is a reasonable artifact for your Internal Assessment
 
*# You may upload multiple files. Be sure to include your name in each document.
 
*# LATE submissions will be penalized
 
* Java Functions/Methods Review
 
** [[Media:JavaMethods.pptx]]
 
** Method Definitions
 
** Method Return types
 
** Method Parameters
 
** Method Calls
 
* Java Objects
 
** [[Media:IntroObjects.ppt]]
 
** [[Media:ObjectUsageReview.ppt]]
 
** [[Media:ObjectUsageReview2.ppt]]
 
** [[Media:IntroClasses.ppt]]
 
** [[Media:OOP.pptx‎]]
 
* Point Class assignment walk-through
 
*# You will create two java files: '''Point.java''' and '''PointMain.java'''
 
*#* '''Point.java''' - the Point class definition will be here
 
*#* '''PointMain.java''' - only the main() method will be located here
 
*# Declare and initialize the following '''private''' attributes in the Point class
 
*#* double x = 0.0
 
*#* double y = 0.0
 
*# Define two Point() constructors:
 
*#* default constructor: Point()
 
*#* specific constructor Point(double newX, double newY)
 
*# Define the following '''public''' methods in the Point class
 
*#* double getX() - returns the x-coordinate
 
*#* double getY() - returns the y-coordinate
 
*#* void setX(double newX) - sets the x-coordinate to the new x-coordinate parameter
 
*#* void setY(double newY) - sets the y-coordinate to the new y-coordinate parameter
 
*#* String toString() - returns a String representation of the Point object
 
*# Go to your PointMain.java file to test out your Point class
 
*# In the main method, create several new instances of Point objects
 
*# Print out each of your Point objects
 
*# Define a static method in PointMain.java named '''double slope(Point p1, Point p2)''' - returns the slope between p1 and p2
 
*# Test and print out your slope method when you use it with your instantiated Point objects in the main() method
 
 
 
== Thursday (10/8/15) ==
 
'''Agenda:'''
 
* Demo Two-Dimensional Array Assignment
 
 
 
== Tuesday (10/6/15) ==
 
'''Agenda:'''
 
* Search and sort quiz
 
* Two-Dimensional Array Assignment
 
*# Write a function: '''matrixAdd(a, b)''' that returns a new matrix that is the sum of a and b
 
*#* Be sure to check if the two matrices are the same size (if not, then return '''null''')
 
*# Write a function: '''fliplr(m)''' that returns a new matrix that is the horizontal flip (left to right) of matrix '''m'''
 
*#* [http://www.mathworks.com/help/matlab/ref/fliplr.html MATLAB fliplr() description]
 
*# Write a function: '''flipud(m)''' that returns a new matrix that is the vertical flip (up to down) of matrix '''m'''
 
*#* [http://www.mathworks.com/help/matlab/ref/flipud.html MATLAB flipup() description]
 
*# Extra Credit: Write a function: '''matrixMult(a, b)''' that returns the product of matrix a and b
 
*#* Be sure to check the rules of matrix multiplication
 
*#* Return an '''null''' matrix if their sizes are different
 
* Challenge: Write the function '''det(m)''' which returns the determinant of any matrix m
 
 
 
== Friday (10/2/15) ==
 
'''Warmup:'''
 
* Seniors, please take the [http://goo.gl/forms/HJCeVXyeYs student sociology project survey]
 
 
 
'''Agenda:'''
 
* Demo both selection sort and bubble sort
 
* [[Media:Sorting.pptx]]
 
* Quicksort discussion
 
* Search and sort quiz next Tuesday (10/6/15). Be able to describe the step-by-step algorithm
 
** Linear search
 
** Binary search
 
** Selection sort
 
** Bubble sort
 
* Reference variables overview
 
* Two-Dimensional Arrays and Nested Loops
 
*# Accessing all of the individual elements of a two-dimensional list
 
*# Prompt the user to construct a two-dimensional list
 
*## Prompt for the number of rows
 
*## Prompt for the number of columns
 
*## Prompt the user for each number in the two-dimensional list
 
*# Write the function '''matrixPrint(m)'''
 
* Two-Dimensional Array Assignment
 
*# Write a function: '''matrixAdd(m1, m2)''' that returns a new matrix that is the sum of m1 and m2
 
*#* Be sure to check if the two matrices are the same size (if not, then return '''null''')
 
*# Write a function: '''matrixMult(m1, m2)''' that returns the product of matrix m1 and m2
 
*#* Be sure to check the rules of matrix multiplication
 
*#* Return an '''null''' matrix if their sizes are different
 
 
 
== Wednesday (9/30/15) ==
 
'''Warmup:'''
 
# Create a 2-3 person group
 
# Grab ~6 playing cards
 
# Walk-through the "bubble sort" algorithm with your group
 
 
 
'''Agenda:'''
 
* Review selection sort
 
* Discuss bubble sort
 
* [[Media:Sorting.pptx]]
 
* Complete [[JavaBubbleSortAssignment.java]]
 
* Demo selection sort and bubble sort
 
 
 
== Monday (9/28/15) ==
 
'''Warmup:'''
 
# Create a 2-3 person group
 
# Take some (~6) playing cards
 
# Lay them out randomly in a row (out of order)
 
# As a team, discuss an algorithm to sort them
 
# You are only allowed to swap cards (i.e. they cannot be removed or added to a new array)
 
# Sort them in numerical order (Ace is high)
 
# Write down the basic steps to your algorithm
 
 
 
'''Agenda:'''
 
* Introduction to Sorting Activity
 
* [[Media:Sorting.pptx]]
 
* Complete [[JavaSelectionSortAssignment.java]]
 
 
 
== Thursday (9/24/15) ==
 
'''Agenda:'''
 
* Demo your [[JavaSearchAssignment.java]]
 
* If you're done, you should work on your Internal Assessment
 
 
 
== Tuesday (9/22/15) ==
 
'''Warmup:'''
 
* Open and demo your [[Java Arrays Assignment]]
 
 
 
'''Agenda:'''
 
* Searching - [[Media:Searching.pptx]]
 
** Linear Search
 
** Binary Search
 
* Complete [[JavaSearchAssignment.java]]
 
 
 
== Friday (9/18/15) ==
 
'''Agenda:'''
 
* Recreate the [[Guessing Game Assignment]] in Java
 
** You may need to look up how to do random numbers in Java
 
** You can always refer to the [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Programming Cheatsheet]
 
* Review Java Arrays
 
** [[Media:IntroArrays.ppt]]
 
** Complete [[Java Arrays Assignment]]
 
 
 
'''Homework:'''
 
* Complete [[Java Arrays Assignment]]
 
 
 
== Wednesday (9/16/15) ==
 
'''Agenda:'''
 
* Be sure to turn in your Usability assignment to Google Classroom
 
* Quiz on [[Media:SystemDesignBasics.pptx]]
 
* Java Review
 
** Simple main method
 
** [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Programming Cheatsheet]
 
** Java input with Scanner
 
** Circle circumference and area calculator
 
** if statements
 
** while and for loops
 
* Recreate the [[Guessing Game Assignment]] in Java
 
** You may need to look up how to do random numbers in Java
 
** You can always refer to the [http://introcs.cs.princeton.edu/java/11cheatsheet/ Java Programming Cheatsheet]
 
 
 
<!--
 
* Review Java Arrays
 
** [[Media:IntroArrays.ppt]]
 
** [[Java Arrays Assignment]]
 
* Searching - [[Media:Searching.pptx]]
 
** Linear Search
 
** Binary Search
 
* Complete [[JavaSearchAssignment.java]]
 
-->
 
 
 
== Monday (9/14/15) ==
 
* [[Media:SystemDesignBasics.pptx]]
 
** Quiz on [[Media:SystemDesignBasics.pptx]] on '''Wednesday (9/16/15)'''
 
* Usability Assignment ('''due Wednesday (9/16/15''')
 
*# Sign into your APS Google account
 
*# Open a Google Doc and title it '''Usability Assignment'''
 
*# Put your name at the top
 
*# Use [http://www.nngroup.com/articles/ten-usability-heuristics/ Nielsen's 10 Usability Heuristics]
 
*# Find 2 examples of good usability
 
*## Take a screenshot or find a picture of the example
 
*## Paste it into the Google Doc
 
*## Point out or highlight the specific usability aspect somehow (in red or bright green are best)
 
*## State which usability rule the example is following, and describe how it follows it
 
*## Repeat for each of the 2 examples of good usability (each example should be a different usability rule)
 
*# Find 2 examples of bad usability
 
*## Take a screenshot or find a picture of the example
 
*## Paste it into the Google Doc
 
*## Point out or highlight the specific usability aspect failure (in red or bright green are best)
 
*## State which usability rule the example is breaking, and describe how it breaks it
 
*## Repeat for each of the 2 examples of bad usability (each example should be a different usability rule)
 
*# Submit the document through Google Classroom
 
 
 
'''Homework:'''
 
# Syllabus agreement form (due Friday 9/18/15)
 
# Quiz on [[Media:SystemDesignBasics.pptx]] on '''Wednesday (9/16/15)'''
 
# Usability Assignment ('''due Wednesday (9/16/15''')
 
 
 
== Thursday (9/10/15) ==
 
* Complete the [https://docs.google.com/spreadsheet/viewform?key=0ApPgoX5sTp-_cDZfazFTTWJTMnp2TUhKTkpCQmtGUEE Student Survey]
 
* Misc logistics
 
** 20/10 no pass policy
 
** Location of bathrooms
 
** Sign in/out sheets
 
** Mr. Bui has C Lunch (3rd Lunch)
 
* [[IB Computer Science II Syllabus]]
 
** Complete online syllabus agreement form by the end of next week (9/18/15)
 
* [http://classroom.google.com Google Classroom]
 
** Period 4 - 6qu52g
 
** Period 6 - jreke8
 
* [[IBCS2 Summer Assignment]] random checks
 
* [[Media:SystemDesignBasics.pptx]]
 
** Quiz on [[Media:SystemDesignBasics.pptx]] on Wednesday (9/16/15)
 
 
 
== Tuesday (9/8/15) ==
 
* Introductions
 
* Name cards
 
 
 
'''Homework:'''
 
# Go to Syllabus (on the left)
 
# Read it
 
# Complete the agreement form with your parent (you will need your APS Google login)
 
 
 
* [[IBCS2 Summer Assignment]]
 

Latest revision as of 08:28, 13 September 2023