Difference between revisions of "IB Computer Science 1"

From WLCS
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Thursday (10/26/17) ==
+
== Tuesday (11/21/17) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Some students will be taking the Pre-Test Workplace Readiness Skills Assessment
+
* Introduction to While Loops
** The sub will hand out test tickets
+
** [[Media:PythonWhileLoops.pptx]]
* Complete [https://docs.google.com/document/d/1wCZWJbwxWv6xqrbuQOKC8jgqdNdVUzSKE4L6UC-yX2s/edit?usp=sharing Animation: Gravity Ball with Mouse Launcher] if you have not already done so
+
* While Loop practice (using Wing IDE)
* Complete [https://docs.google.com/document/d/1uWpr7pX91LzklGwR6InKvsu7M9IRn2y55xgHHq0MAcQ/edit?usp=sharing Input: Keyboard Variables]
+
** Write a loop that prints 0 to 10
* Work on [https://docs.google.com/document/d/13zLTnm_mxURSFxEWJ24MUBOAK1Y6jbfk8NxL-wS_U7g/edit?usp=sharing Media: Loading & Displaying Images]
+
** Write a loop that prints 10 to 0
 +
** Write a loop that prints from 19 to 77
 +
** Write a loop that prints the first 50 even numbers
 +
** Prompt a user for a number N. Write a loop that then prints out the first N even numbers (Hint: Use multiple variables)
 +
* Work on [[Prime numbers assignment]] (using Wing IDE)
 +
* Demo Mario Side Scroller
 +
* Jump walk-through
  
== Tuesday (10/24/17) ==
+
== Wednesday - Friday (11/15/17 - 11/17/17) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Complete and demo [https://docs.google.com/document/d/1wCZWJbwxWv6xqrbuQOKC8jgqdNdVUzSKE4L6UC-yX2s/edit?usp=sharing Animation: Gravity Ball with Mouse Launcher]
+
* Make sure you have completed all assignments thus far
** Work on the additional challenges after you demo
+
** Bouncing Image Lab
** Be sure to save a clean, working version of your program in case you mess it up
+
** Mario Side Scroller
 +
* Work on implementing the extra challenges in the Mario Side Scroller (see below)
  
== Friday (10/20/17) ==
+
== Wednesday - Monday (11/8/17 - 11/13/17) ==
'''Agenda:'''
 
* Demo your Color Quadrant program for credit
 
** If you finish early, then attempt the challenges
 
* Review Color Quadrant additional challenges
 
* [https://docs.google.com/document/d/1wCZWJbwxWv6xqrbuQOKC8jgqdNdVUzSKE4L6UC-yX2s/edit?usp=sharing Animation: Gravity Ball with Mouse Launcher]
 
 
 
== Wednesday (10/18/17) ==
 
'''Agenda:'''
 
* Review how to create [https://docs.google.com/document/d/1RCVlD8xOl4mzuIm2kxQUtyccOOJa_6bBFVa3S57Sj_E/edit?usp=sharing Project: Simple Paint App] features
 
* Color Quadrant Practice
 
*# Create a Processing program that tracks your mouse and changes the color of the background based on the mouse's location
 
*# There should be 4 quadrants in your window
 
*# When the mouse is in a quadrant, change your background color to a color of your choice
 
*# Additional challenge: Instead of discrete quadrants, use a math formula to change the color of the background based on the mouse location (you should basically see gradual color changes as the mouse moves)
 
*# Additional challenge: Map your 2D (x, y) mouse location to emulate the RGB color wheel such that the background color follows the RGB color wheel based on the mouse's location
 
 
 
== Thursday - Monday (10/12/17 - 10/16/17) ==
 
 
'''Agenda:'''
 
'''Agenda:'''
 
* Demo missing assignments
 
* Demo missing assignments
* Complete [https://docs.google.com/document/d/1RCVlD8xOl4mzuIm2kxQUtyccOOJa_6bBFVa3S57Sj_E/edit?usp=sharing Project: Simple Paint App]
+
* Demo completed Bouncing Image Lab
** Be sure to move on and work on the additional challenges located at the bottom of the lab
+
* Mario Side-scroller
 +
*# Create a Processing program named MarioSideScroller
 +
*# Download the [[Media:Mario-1-1.gif]] and add the file to your Processing program (or any wide, panoramic image of your choice)
 +
*# Download the small Mario image [[Media:MarioSprite_right.png]] and add the file to your Processing program (or any character sprite of your choice)
 +
*# Create and initialize global variables:  
 +
*#* bg_x, bg_y (background x and y-coordinates)
 +
*#* sprite_x, sprite_y (sprite x and y-coordinates)
 +
*#* Note: "sprite" is a movable computer graphic
 +
*# Set your window size to 600 x 448 (the image has a height of 448 pixels)
 +
*# Load and display the background image using the image() function (use the variables!)
 +
*#* Verify that you are display background image properly (you should only be seeing a portion of the level)
 +
*# Load and display the sprite image (use the variables!)
 +
*# Add keyboard detecting code:
 +
*## if the RIGHT key is pressed, then move the sprite to the right by manipulating the sprite_x
 +
*## if the LEFT key is pressed, then move the sprite to the left by manipulating the sprite_x
 +
*# if the sprite touches the right edge of the screen (or wherever you want)
 +
*## Manipulate the bg_x so that background image moves to the left
 +
*## You must also manipulate the sprite_x so that it does not keep moving beyond that point
 +
*# if the sprite touches the left edge of the screen (or wherever you want)
 +
*## Manipulate the bg_x so that background image moves to the right
 +
*## You must also manipulate the sprite_x so that it does not keep moving beyond that point
 +
*# Additional challenges:
 +
*## Use an image editing program to create a flipped mirror Mario image (or simply find one). Load the image such that when Mario goes left, you use the flipped image instead of the right-facing image
 +
*## Implement a jump feature (hint: you can use the Gravity Launcher program to help you)
  
== Friday (10/6/17) ==
+
== Wednesday - Friday (11/1/17 - 11/3/17) ==
 
'''Agenda:'''
 
'''Agenda:'''
* Demo missing assignments
+
* Demo [https://docs.google.com/document/d/1uWpr7pX91LzklGwR6InKvsu7M9IRn2y55xgHHq0MAcQ/edit?usp=sharing Input: Keyboard Variables]
* Demo [[Python Functions Assignment]]
+
* Demo [https://docs.google.com/document/d/13zLTnm_mxURSFxEWJ24MUBOAK1Y6jbfk8NxL-wS_U7g/edit?usp=sharing Media: Loading & Displaying Images]
* Complete [https://docs.google.com/document/d/1yxestu4zbLljylbwmSUnskOcwiTnwf-wOTFvyHF1xoo/edit?usp=sharing Animation: My First Animation]
+
* Bouncing Image Lab
* Complete [https://docs.google.com/document/d/1xRSA_Ti8l5002jcAftcUtCTdujCojghzoTpUZwJvHQ4/edit?usp=sharing Animation: Bouncing Ball]
+
*# You will be creating a new Processing sketch that combines multiple labs. You will create a bouncing Image (of your choice) on the screen that responds to keyboard clicks
 
+
*# Display a background image (of your choice)
== Wednesday (10/4/17) ==
+
*# Display a smaller image on the screen that will move around
'''Agenda:'''
+
*# Make the smaller image bounce around on the screen (for testing purposes only). After the image successfully bounces around, set dx and dy to 0 so that it no longer moves
* [[Media:PythonFunctions.pptx]]
+
*# Add the following keyboard functionalities:
* Complete and demo [https://docs.google.com/document/d/1Rlt_UvfeGlMgN3upOR4rF9-M9w72CfH3aJbot_6_Tk0/edit?usp=sharing Processing House Assignment]
+
*#* Pressing the up arrow makes the image's dy variable decrease by decrementing (decreasing) dy by 1
** Instead of house, you may convert your emoji code into a function that draws the emoji at specific (x, y) coordinates
+
*#* Pressing the down arrow makes the image's dy variable increase by incrementing (increasing) dy by 1
* Complete and demo [[Python Functions Assignment]]
+
*#* Pressing the left arrow makes the image's dx variable decrease by decrementing (decreasing) dx by 1
* More [[Processing Labs]]
+
*#* Pressing the right arrow makes the image's dx variable increase by incrementing (increasing) dx by 1
 
+
*#* Pressing the letter w increases the height of the image (Note: you will need to keep track of the height of the image using a new variable)
== Monday (10/2/17) ==
+
*#* Pressing the letter s decreases the height of the image
'''Agenda:'''
+
*#* Pressing the letter d increases the width of the image (Note: you will need to keep track of the width of the image using a new variable)
* Programming Club & CyberPatriot Meeting
+
*#* Pressing the letter a decreases the width of the image
** After schools, Mondays, Room 4209
+
*# The image should bounce of the sides of the screens accordingly
* Interims closing
+
*#* Ensure that the bouncing off the sides is based on the image's width and height such that when the image's width or height changes, the bouncing will correctly occur at the edge of the image
** Last assignment of interim is the Processing emoji
+
*#* Hint: You should use screen's width, height, and the image's width and height of the image to mathematically determine the bounce
* Period 1
 
** Demo missing assignments (e.g. [[Tech Support Flow Chart Assignment]])
 
** Demo your emoji in Processing
 
** Introduction to Functions
 
*** [https://docs.google.com/document/d/1Rlt_UvfeGlMgN3upOR4rF9-M9w72CfH3aJbot_6_Tk0/edit?usp=sharing Functions: House Assignment]
 
*** Instead of house, you may convert your emoji code into a function that draws the emoji at specific (x, y) coordinates
 
* Period 5
 
** Introduction to Functions
 
** [[Media:PythonFunctions.pptx]]
 
** Processing Smiley Example
 
** [https://docs.google.com/document/d/1Rlt_UvfeGlMgN3upOR4rF9-M9w72CfH3aJbot_6_Tk0/edit?usp=sharing Functions: House Assignment]
 
*** Instead of house, you may convert your emoji code into a function that draws the emoji at specific (x, y) coordinates
 
 
 
== Thursday (9/28/17) ==
 
'''Agenda:'''
 
* Period 1
 
** Nested if-statements
 
** Work on [[Tech Support Flow Chart Assignment]]
 
** Introduction to Processing - Python Mode
 
**# Download and install [https://processing.org/download Processing]
 
**# Install Python Mode (upper right corner)
 
** '''HOMEWORK:''' Draw your favorite emoji using Processing
 
* Period 5
 
** Introduction to Processing
 
** Draw and demo your favorite emoji using Processing
 
== [https://docs.google.com/presentation/d/1PoA335gHnDCoWpGEpgHLDDaVzxjZ7fdE-oDaQaiENaQ/edit?usp=sharing Back to School Night (9/27/17)] ==
 
 
 
== Tuesday (9/26/17) ==
 
'''Agenda:'''
 
* Java Pre-Assessment
 
* Demo Letter Grade Calculator
 
* Nested if-statements
 
* Work on [[Tech Support Flow Chart Assignment]]
 
* Introduction to Processing - Python Mode
 
*# Download and install [https://processing.org/download/?processing Processing]
 
*# Install Python Mode (upper right corner)
 
 
 
== Friday (9/22/17) ==
 
'''Agenda:'''
 
* if statements
 
** [[Media:PythonIfStatements.pptx]]
 
** if-statement examples
 
** if-else examples
 
* Logic operators: and, or, not
 
** [[Media:PythonBooleanLogic.pptx]]
 
** Complete Logical operators assignment on Canvas
 
** Evaluate the following comparisons with logic operators (assume x = 2; y = 5)
 
**# x + 2 > y or y < 10
 
**# not(x < y) and y > 2 * x
 
**# y > 0 and y < 10 or x > 10 and x < 20
 
**# x + y != 5 and x - y < 0
 
**# x == 2 and y != 5
 
**# x != y or y >= x
 
* Letter Grade Calculator
 
*# Prompt the user for a number (0-100) (if you don't remember, look at past notes and lectures)
 
*#* Note: Your program should be able to handle floating-point numbers!
 
*# Use if-statements, comparison operators, and logical operators (and, or, not)
 
*# Print out the appropriate letter grade for the number (A, B+, B, C+, C, D+, D, E)
 
*#* Note: Your program should round letter grades appropriately (Example: grade >= 89.5 is an A)
 
* [[Tech Support Flow Chart Assignment]]
 
 
 
== Wednesday (9/20/17) ==
 
'''Agenda:'''
 
* [[Quadratic Formula Assignment]]
 
** Demo to Mr. Bui when completed
 
* Introduction to Booleans & Conditionals
 
** Comparison operators (<, >, <=, >=, ==, !=)
 
** Boolean values: True, False
 
** Complete Comparison operators assignment on Canvas
 
* if statements
 
** [[Media:PythonIfStatements.pptx]]
 
** if-statement examples
 
** if-else examples
 
* Logic operators: and, or, not
 
** [[Media:PythonBooleanLogic.pptx]]
 
** Complete Logical operators assignment on Canvas
 
** Evaluate the following comparisons with logic operators (assume x = 2; y = 5)
 
**# x + 2 > y or y < 10
 
**# not(x < y) and y > 2 * x
 
**# y > 0 and y < 10 or x > 10 and x < 20
 
**# x + y != 5 and x - y < 0
 
**# x == 2 and y != 5
 
**# x != y or y >= x
 
* Letter Grade Calculator
 
*# Prompt the user for a number (0-100) (if you don't remember, look at past notes and lectures)
 
*#* Note: Your program should be able to handle floating-point numbers!
 
*# Use if-statements, comparison operators, and logical operators (and, or, not)
 
*# Print out the appropriate letter grade for the number (A, B+, B, C+, C, D+, D, E)
 
*#* Note: Your program should round letter grades appropriately (Example: grade >= 89.5 is an A)
 
 
 
== Monday (9/18/17) ==
 
'''Agenda:'''
 
* Mad Libs exercise
 
*# Prompt the user to enter a noun and store it in a variable named '''noun'''
 
*# Prompt the user to enter a verb and store it in a variable named '''verb'''
 
*# Prompt the user to enter another noun and store it in a variable named '''noun2'''
 
*# Print out a message that contains noun, verb, and noun2
 
* Circle calculations exercise
 
*# Prompt the user to enter the radius of a circle (this should be a float)
 
*# Calculate and print out the circumference of the circle.  Make sure your output looks like: "Circumference: ###"
 
*# Calculate and print out the area of the circle.  Make sure your output looks like: "Area: ###"
 
* [[Quadratic Formula Assignment]]
 
** Demo to Mr. Bui when completed
 
 
 
== Thursday (9/14/17) ==
 
'''Warmup:'''
 
* Complete the Identifying Types assignment on Canvas if you have not already done so
 
 
 
'''Agenda:'''
 
* Introduction to Values, Types, and Variables
 
** [https://docs.google.com/a/apsva.us/presentation/d/1iJGcl4qxBXeP1Ex4R6n9FK8RiRVV43hpYKpZlobZQVc/edit?usp=sharing Values, Types & Variables]
 
** Complete Variable Naming assignment on Canvas
 
* Input and Output
 
** [https://docs.google.com/a/apsva.us/presentation/d/18oxLyc3PCjcpSEsXHNpsu-Op97dCbo-VwYKjmU_-d5A/edit?usp=sharing Input/Output (Python)]
 
* Math Operations
 
** Addition +
 
** Subtraction -
 
** Multiplication *
 
** Division /
 
** Exponential **
 
** Order of operations!
 
* Mad Libs exercise
 
*# Prompt the user to enter a noun and store it in a variable named '''noun'''
 
*# Prompt the user to enter a verb and store it in a variable named '''verb'''
 
*# Prompt the user to enter another noun and store it in a variable named '''noun2'''
 
*# Print out a message that contains noun, verb, and noun2
 
* Circle calculations exercise
 
*# Prompt the user to enter the radius of a circle (this should be a float)
 
*# Calculate and print out the circumference of the circle.  Make sure your output looks like: "Circumference: ###"
 
*# Calculate and print out the area of the circle.  Make sure your output looks like: "Area: ###"
 
* [[Quadratic Formula Assignment]]
 
** Demo to Mr. Bui when completed
 
 
 
== Tuesday (9/12/17) ==
 
'''Agenda:'''
 
* Introduction to Python
 
** [http://www.pythontutor.com http://www.pythontutor.com] - Code Visualizer
 
** [http://en.wikipedia.org/wiki/Hello_world_program Hello world program]
 
* Experienced Students Option
 
** Go to Links->Programming Practice
 
** Or work ahead as fast as you can by accessing Links->Archived Websites
 
* [[https://docs.google.com/a/apsva.us/presentation/d/1HHm45Q9RClDLRcVdk8BbJX8On4_D-XQB9nYvYzQjta0/edit?usp=sharing Basic Programming Terms]]
 
* Introduction to Values, Types, and Variables
 
** [[https://docs.google.com/a/apsva.us/presentation/d/1iJGcl4qxBXeP1Ex4R6n9FK8RiRVV43hpYKpZlobZQVc/edit?usp=sharing Values, Types & Variables]]
 
** Complete assignments on Canvas
 
 
 
== Friday (9/8/17) ==
 
'''Warmup:'''
 
# Login to Canvas
 
# Complete the Collaboration
 
 
 
'''Agenda:'''
 
* Quick Pic Intros
 
* Introduction to Python
 
** [http://www.pythontutor.com http://www.pythontutor.com] - Code Visualizer
 
** [http://en.wikipedia.org/wiki/Hello_world_program Hello world program]
 
* Experienced Students Option
 
** Go to Links->Programming Practice
 
** Or work ahead as fast as you can by accessing Links->Archived Websites
 
* [[Media:BasicProgrammingTerms.ppt]]
 
* Introduction to Values, Types, and Variables
 
** [[Media:ValuesTypesVariables.ppt]]
 
** [[Values, Types, and Variables Identification assignment]]
 
 
 
== Wednesday (9/6/17) ==
 
'''Agenda:'''
 
* Attendance
 
* Misc logistics
 
** 20/10 no pass policy
 
** Location of bathrooms
 
** Sign in/out sheets
 
** Mr. Bui has A Lunch (1st Lunch) on W-days
 
** Mr. Bui has 4th period planning on L-Days (so whatever lunch he feels like having that day)
 
* [[IB Computer Science I Syllabus]]
 
** Sign electronic form by next Monday (9/11/17)
 
* Introduction to Canvas
 
** Profiles
 
** Notifications
 
** Assignments
 
** etc.
 
* Introductions w/ Pictures
 
*# You will be given a group Google presentation
 
*# Create a new slide
 
*# Use your first and last name as your title
 
*# Paste 4 or more images that describe who you are
 
 
 
'''Homework:'''
 
* Signed electronic syllabus by Monday (9/11/17)
 
* Introductions w/ Pictures collaboration found in Canvas
 
 
 
== Tuesday (9/5/17) ==
 
'''Agenda:'''
 
* 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)
 
  
 
== Archives ==
 
== Archives ==
 +
* [[IBCS1 - 1718 - October]]
 +
* [[IBCS1 - 1718 - September]]
 
* [[IBCS1 - 1617]]
 
* [[IBCS1 - 1617]]

Revision as of 09:24, 21 November 2017

Tuesday (11/21/17)

Agenda:

  • Introduction to While Loops
  • While Loop practice (using Wing IDE)
    • Write a loop that prints 0 to 10
    • Write a loop that prints 10 to 0
    • Write a loop that prints from 19 to 77
    • Write a loop that prints the first 50 even numbers
    • Prompt a user for a number N. Write a loop that then prints out the first N even numbers (Hint: Use multiple variables)
  • Work on Prime numbers assignment (using Wing IDE)
  • Demo Mario Side Scroller
  • Jump walk-through

Wednesday - Friday (11/15/17 - 11/17/17)

Agenda:

  • Make sure you have completed all assignments thus far
    • Bouncing Image Lab
    • Mario Side Scroller
  • Work on implementing the extra challenges in the Mario Side Scroller (see below)

Wednesday - Monday (11/8/17 - 11/13/17)

Agenda:

  • Demo missing assignments
  • Demo completed Bouncing Image Lab
  • Mario Side-scroller
    1. Create a Processing program named MarioSideScroller
    2. Download the Media:Mario-1-1.gif and add the file to your Processing program (or any wide, panoramic image of your choice)
    3. Download the small Mario image Media:MarioSprite_right.png and add the file to your Processing program (or any character sprite of your choice)
    4. Create and initialize global variables:
      • bg_x, bg_y (background x and y-coordinates)
      • sprite_x, sprite_y (sprite x and y-coordinates)
      • Note: "sprite" is a movable computer graphic
    5. Set your window size to 600 x 448 (the image has a height of 448 pixels)
    6. Load and display the background image using the image() function (use the variables!)
      • Verify that you are display background image properly (you should only be seeing a portion of the level)
    7. Load and display the sprite image (use the variables!)
    8. Add keyboard detecting code:
      1. if the RIGHT key is pressed, then move the sprite to the right by manipulating the sprite_x
      2. if the LEFT key is pressed, then move the sprite to the left by manipulating the sprite_x
    9. if the sprite touches the right edge of the screen (or wherever you want)
      1. Manipulate the bg_x so that background image moves to the left
      2. You must also manipulate the sprite_x so that it does not keep moving beyond that point
    10. if the sprite touches the left edge of the screen (or wherever you want)
      1. Manipulate the bg_x so that background image moves to the right
      2. You must also manipulate the sprite_x so that it does not keep moving beyond that point
    11. Additional challenges:
      1. Use an image editing program to create a flipped mirror Mario image (or simply find one). Load the image such that when Mario goes left, you use the flipped image instead of the right-facing image
      2. Implement a jump feature (hint: you can use the Gravity Launcher program to help you)

Wednesday - Friday (11/1/17 - 11/3/17)

Agenda:

  • Demo Input: Keyboard Variables
  • Demo Media: Loading & Displaying Images
  • Bouncing Image Lab
    1. You will be creating a new Processing sketch that combines multiple labs. You will create a bouncing Image (of your choice) on the screen that responds to keyboard clicks
    2. Display a background image (of your choice)
    3. Display a smaller image on the screen that will move around
    4. Make the smaller image bounce around on the screen (for testing purposes only). After the image successfully bounces around, set dx and dy to 0 so that it no longer moves
    5. Add the following keyboard functionalities:
      • Pressing the up arrow makes the image's dy variable decrease by decrementing (decreasing) dy by 1
      • Pressing the down arrow makes the image's dy variable increase by incrementing (increasing) dy by 1
      • Pressing the left arrow makes the image's dx variable decrease by decrementing (decreasing) dx by 1
      • Pressing the right arrow makes the image's dx variable increase by incrementing (increasing) dx by 1
      • Pressing the letter w increases the height of the image (Note: you will need to keep track of the height of the image using a new variable)
      • Pressing the letter s decreases the height of the image
      • Pressing the letter d increases the width of the image (Note: you will need to keep track of the width of the image using a new variable)
      • Pressing the letter a decreases the width of the image
    6. The image should bounce of the sides of the screens accordingly
      • Ensure that the bouncing off the sides is based on the image's width and height such that when the image's width or height changes, the bouncing will correctly occur at the edge of the image
      • Hint: You should use screen's width, height, and the image's width and height of the image to mathematically determine the bounce

Archives