Difference between revisions of "IB Computer Science 1"

From WLCS
 
Line 1: Line 1:
== Wednesday (4/11/12) ==
+
== [[IBCS1 - Archives]] ==
'''Warmup:'''
 
*
 
 
 
'''Agenda:'''
 
* Return work
 
 
 
== Friday (3/30/12) ==
 
* Turn in your 3rd Quarter Project if you have not already done so
 
* Download: The true Story of the Internet: Part 1
 
 
 
== Wednesday (3/28/12) ==
 
'''Agenda:'''
 
* '''Turn in 3rd Quarter Project today'''
 
* You will need to print out all your documentation and code.  Include the following in your deliverable:
 
** Menu system flow chart
 
** Modular organization class diagram
 
** Modular organization class tables describing the class, its attributes, and methods
 
** Code (which is also commented)
 
 
 
== Tuesday - Monday (3/20/12 - 3/26/12) ==
 
'''Agenda:'''
 
* 3rd Quarter Exam Project
 
** You will design and implement a database program of your own choosing
 
** You will need to design the menu system
 
*** Add
 
*** Remove
 
*** Edit
 
*** Print all
 
*** Search for one
 
*** Calculations of some sort
 
** You will need to design the modules to be used
 
*** Data container classes
 
*** Menu system
 
** You will implement the designed program and all of its necessary classes
 
* '''Deadline: Wednesday (3/28/12)'''
 
* You will need to print out all your documentation and code.  Include the following in your deliverable:
 
** Menu system flow chart
 
** Modular organization class diagram
 
** Modular organization class tables describing the class, its attributes, and methods
 
** Code (which is also commented)
 
 
 
== Friday (3/16/12) ==
 
'''Agenda:'''
 
* Designing and implementing a database solution
 
*# Front-end vs. Back-end review
 
* Documentation
 
** User documentation (manual)
 
** Design documentation
 
** System documentation
 
* System documentation
 
*# Create flow chart that illustrates the options and flow of the menu system (Don't forget to show that it loops!)
 
*# Create a chart that has each class/file as a box and link them to show how they interact
 
*# Create a set of tables that describes each class/file that we created
 
*#* Class name - describe the purpose of the class
 
*#* Attributes - describe each attribute
 
*#* Methods - describe each method and what it does
 
* Go through and comment your code
 
** Put a commented header at the top of each file
 
** The header should have the filename, purpose of the file, and author's name (you!)
 
* Print out and put everything together into one packet (menu flow chart, modular organization, all the code)
 
 
 
== Monday - Wednesday (3/12/12 - 3/14/12) ==
 
'''Agenda:'''
 
* Demo Gradebook
 
* Add a (s)ort feature to your gradebook
 
* Searching and editing students
 
 
 
== Tuesday - Thursday (3/6/12 - 3/8/12) ==
 
'''Agenda:'''
 
* Gradebook System
 
** Course class
 
** Student class
 
* Gradebook Menu
 
*# Add a menu system to our gradebook example.  The menu will allow the teacher to add students to a list of students
 
*# Print out a menu with the following options
 
*#* (a)dd student
 
*#* (r)emove student
 
*#* (p)rint student list
 
*#* (q)uit
 
*# Prompt the user what they would like to do
 
*# Check what they input and then perform the task they want to do
 
*#* If they want to add a student, then you must create a new student and prompt the user for a name and id number.  You should then add it to your list of students
 
*#* If they want to remove a student, then you must prompt the user for a name or id number.  You must then use a linear search to find the student in the list.  (Hint: Look at [[Advanced Python List Exercises]]).  After finding the student, then you can '''del''' it from the list.  You should also print a message in case the student was not found
 
*#* If they want to print the student list, then write a loop that prints all the students in the list
 
*#* If they want to quit, then break out of the loop
 
*# Continually repeat the entire menu system forever
 
 
 
== Friday (3/2/12) ==
 
'''Agenda:'''
 
* Rectangle class practice
 
** Attribute(s): width, height
 
** Method(s):
 
*** __init__(self, width=0, height=0)
 
*** __str__(self) - returns a string like "Rectangle WIDTH by HEIGHT"
 
*** getWidth(self) - returns the width
 
*** setWidth(self, newWidth) - saves newWidth into self.width
 
*** getHeight(self) - returns the height
 
*** setHeight(self, newHeight) - saves newHeight into self.height
 
*** getArea(self) - returns the area of the rectangle
 
*** isSquare(self) - returns True if the width is equal to the height, otherwise return False
 
 
 
* Gradebook System
 
 
 
== Monday - Wednesday (2/27/12 - 2/29/12) ==
 
'''Warmup:'''
 
* What is Object-Oriented Programming?  Describe in layman's terms.
 
 
 
'''Agenda:'''
 
* Object-Oriented Programming Review
 
* Parts of a class
 
** Class declaration at the top: '''class CLASSNAME:'''
 
** Initializer: '''def __init__(self, PARAMS):'''
 
*** Give default or initialize values of attributes
 
** Methods: '''def METHODNAME(self, PARAMS):'''
 
*** A function inside a class
 
* Python Class References
 
** [http://openbookproject.net/thinkcs/python/english3e/classes_and_objects_I.html HTTLACS: Classes: Part 1]
 
** [http://openbookproject.net/thinkcs/python/english3e/classes_and_objects_II.html HTTLACS: Classes: Part 2]
 
** [http://docs.python.org/py3k/tutorial/classes.html Python Classes]
 
* Class-wide construction of an object-oriented program
 
** Point class example review
 
* Circle class practice
 
** Attribute(s): radius
 
** Method(s):
 
*** __init__(self, radius=0)
 
*** __str__(self)
 
*** getRadius(self) - returns the radius of the circle
 
*** setRadius(self, newRadius) - changes the self.radius to newRadius
 
*** getDiameter(self) - returns the diameter of the circle
 
*** getArea(self) - returns the area of the circle
 
* Rectangle class practice
 
** Attribute(s): width, height
 
** Method(s):
 
*** __init__(self, width=0, height=0)
 
*** __str__(self) - returns a string like "Rectangle WIDTH by HEIGHT"
 
*** getWidth(self) - returns the width
 
*** setWidth(self, newWidth) - saves newWidth into self.width
 
*** getHeight(self) - returns the height
 
*** setHeight(self, newHeight) - saves newHeight into self.height
 
*** getArea(self) - returns the area of the rectangle
 
*** isSquare(self) - returns True if the width is equal to the height, otherwise return False
 
* Create a Student class with the attributes on the board
 
 
 
== Thursday (2/23/12) ==
 
'''Agenda:'''
 
* List, nested list, and for loop quiz
 
* Demo missing assignments
 
* Introduction to Object-Oriented Programming
 
** [http://openbookproject.net/thinkcs/python/english3e/classes_and_objects_I.html HTTLACS: Classes]
 
** [http://docs.python.org/py3k/tutorial/classes.html Python Classes]
 
* Class-wide construction of an object-oriented program
 
** Point class example
 
** Circle class example
 
** Rectangle class example
 
** Create a Student class with the attributes on the board
 
 
 
== Tuesday (2/21/12) ==
 
'''Warmup:'''
 
* Assume you have a '''matrix = [ [2, 4, 6], [1, 3, 5], [0, 1, 2] ]'''
 
* Write a nested loop that sums all the elements
 
 
 
'''Agenda:'''
 
* Complete Nested List demos (multiplying matrices is optional)
 
* Nested Loops review
 
* Pig Latin Translator w/ Lists
 
* List Surprise
 
* Closed-book Quiz on Thursday (2/23/12)
 
** Lists
 
** Nested Lists
 
** String Lists
 
** for loops
 
 
 
== Tuesday - Thursday (2/14/12 - 2/16/12) ==
 
'''Warmup:'''
 
* Assume you are given the following code:
 
 
 
<syntaxhighlight lang="Python">
 
a = ???
 
b = ???
 
 
 
#Using an additional variable, swap the values in a and b (even though you don't know what they are)
 
</syntaxhighlight>
 
 
 
'''Agenda:'''
 
* Complete [[Advanced Python List Exercises]]
 
* Introduction to Nested Lists
 
** Nested List Practice
 
** Application in matrices
 
** Other applications
 
* Nested List Practice
 
*# Create a program that calculates the determinant of a 2x2 matrix.  Be sure to test your program.
 
*# Create a program that calculates the determinant of a 3x3 matrix.  Be sure to test your program.
 
*# Create a program that multiplies two matrices against each other
 
 
 
== Wednesday - Friday (2/8/12 - 2/10/12) ==
 
'''Warmup:'''
 
* [http://codingbat.com/prob/p108886 Python > List-2 > sum67]
 
 
 
'''Agenda:'''
 
* Demo [[Advanced Python List Exercises]] through Min/Max
 
* Demo [[Turtle - List Assignment]]
 
* Complete [[Advanced Python List Exercises]]
 
* For loop
 
 
 
== Monday (2/6/12) ==
 
'''Warmup:'''
 
* On a separate sheet of paper, write out the algorithm to find the minimum number in a list of numbers
 
 
 
'''Agenda:'''
 
* [[Advanced Python List Exercises]]
 
** You should be completed through Min/Max
 
* [[Turtle - List Assignment]]
 
 
 
== Tuesday - Thursday (1/31/12 - 2/2/12) ==
 
'''Warmup:'''
 
* Create a Python Turtle program that tells the turtle to move forward 100
 
* Don't forget about exitonclick()
 
 
 
'''Agenda:'''
 
* [[Advanced Python List Exercises]]
 
** You should be completed through Min/Max
 
* [[Turtle - List Assignment]]
 
 
 
== Archives ==
 
* [[IBCS1 - 1112 - January]]
 
* [[IBCS1 - 1112 - December]]
 
* [[IBCS1 - 1112 - November]]
 
* [[IBCS1 - 1112 - October]]
 
* [[IBCS1 - 1112 - September]]
 

Latest revision as of 08:28, 13 September 2023