Difference between revisions of "IB Computer Science 1"

From WLCS
Line 6: Line 6:
 
** Can you improve the computer's AI? (Hint: corners)
 
** Can you improve the computer's AI? (Hint: corners)
 
** Improve your computer's AI by prioritizing corners after the center square
 
** Improve your computer's AI by prioritizing corners after the center square
 
== Friday - Monday (3/28/14 - 3/31/14) ==
 
'''Agenda:'''
 
* Test your 1-player Tic-Tac-Toe game (make sure you have your 2-player version backed up!)
 
* Spend today improving the computer's move algorithm
 
** What moves do you make that allow you to beat the computer?
 
** Can you improve the computer's AI? (Hint: corners)
 
** Improve your computer's AI by prioritizing corners after the center square
 
 
== Wednesday - Thursday (3/26/14 - 3/27/14) ==
 
'''Agenda:'''
 
* Computer AI Walk-through
 
 
== Monday - Tuesday (3/24/14 - 3/25/14) ==
 
'''Agenda:'''
 
* Complete and demo [[Tic-Tac-Toe]] (it is  late at this point)
 
* Planning the Tic-Tac-Toe Artificial Intelligence
 
*# Play [[Tic-Tac-Toe]] with a partner and document the priorities of your moves
 
*# What is the first strategic move you look for?
 
*# What is the next strategic move you look for?
 
*# Are there defensive moves/checks that you look for?  Describe what exactly you are checking.
 
*# Are there offensive moves/checks that you look for?  Describe what exactly you are checking.
 
* Plan using commented pseudocode, the different types of functions that you will create for the artificial intelligence.  Describe each of the functions that you will need for your computer AI
 
 
== Tuesday - Friday (3/18/14 - 3/21/14) ==
 
'''Agenda:'''
 
* Complete and demo [[Tic-Tac-Toe]] by the end of the week
 
* If you are done with [[Tic-Tac-Toe]], then copy and paste your code to create a 1-player version
 
** The 1-player version of [[Tic-Tac-Toe]] should allow the computer to automatically take a turn and move
 
** The simplest way to do this would be to create a new function where the computer makes a move by evaluating the current board
 
 
== Thursday - Friday (3/13/14 - 3/14/14) ==
 
'''Agenda:'''
 
* Setting up [[Tic-Tac-Toe]]
 
* Work on [[Tic-Tac-Toe]]
 
 
== Tuesday - Wednesday (3/11/14 - 3/12/14) ==
 
'''Warmup:'''
 
* Take out a piece of paper
 
* Draw the figure on the board
 
* Determine all the red points of interest
 
 
'''Agenda:'''
 
* Work on [[Tic-Tac-Toe]]
 
 
== Monday (3/10/14) ==
 
'''Warmup:'''
 
# With a partner, play Tic-Tac-Toe
 
# While you are playing Tic-Tac-Toe, create a flowchart to diagram a Tic-Tac-Toe program design
 
# After your flowchart, list variables and functions that you will need to create for your game
 
 
'''Agenda:'''
 
# As a class, we will create the pseudocode for the Tic-Tac-Toe program
 
# After each line of pseudocode, we should ask ourselves:
 
#* What variables do we need? or what pieces of information must we track?
 
#* What functions do we need? What exactly do they need to do?
 
#* Is there something in this step that we do not know how to do?
 
# 2D coordinate math
 
#* Assume you only have the variables cHeight and cWidth
 
#* On paper, calculate all the points of interest in Tic-TacToe using cHeight and cWidth
 
# Create the drawBoard() function that draws the Tic-Tac-Toe board
 
#* You MUST draw the board using the cHeight and cWidth variables (i.e. NO HARD CODED coordinates)
 
 
== Friday (3/7/14) ==
 
'''Agenda:'''
 
* Mozilla References
 
** [https://developer.mozilla.org/en-US/docs/Web/JavaScript JavaScript]
 
** [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial Canvas Tutorials]
 
** [https://developer.mozilla.org/en-US/docs/Web/Reference/Events Event Reference]
 
* Canvas References
 
** [http://joshondesign.com/p/books/canvasdeepdive/toc.html Canvas Deep Dive]
 
** [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas Tutorials]
 
** [http://www.w3schools.com/tags/ref_canvas.asp W3Schools Canvas Reference]
 
 
== Wednesday - Thursday (3/5/14 = 3/6/14) ==
 
'''Agenda:'''
 
* Demo/show Mr. Bui and missing assignments
 
* Introduction to HTML Canvas
 
** Read and complete the tutorial: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
** Don't worry if you don't understand everything...this most important part is getting the '''A skeleton template'''
 
** Also refer to this documentation: [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas], which will explain different parts of the template
 
** More Canvas Documentation: [http://www.w3schools.com/tags/ref_canvas.asp W3Schools Canvas Reference]
 
** If you're interested more canvas tutorials can be found here: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial Mozilla Canvas Tutorials]
 
* Canvas Practice Assignment
 
*# Create an HTML+JavaScript file named '''canvasPractice.html'''
 
*# Use the skeleton template from [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
*# Refer to [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas] for specific functions that will be helpful
 
*# In the canvas, draw a stick figure with filled in squares or rectangles for hands and feet
 
*# Under the stick figure, display a text message in the canvas that says "Computer Science Rocks!"
 
* Canvas + Mouse + Events
 
* [https://developer.mozilla.org/en-US/docs/Web/Reference/Events Mozilla Web Event Reference]
 
<syntaxhighlight lang="JavaScript">
 
      var setup = function()
 
      {
 
        var canvas = document.getElementById('canvas');
 
        var ctx = canvas.getContext('2d');
 
        var windowRect = canvas.getBoundingClientRect();
 
       
 
        var drawRect = function(evt)
 
        {
 
          ctx.fillRect(evt.clientX - windowRect.left, evt.clientY - windowRect.top, 20, 20);
 
        };
 
       
 
        canvas.addEventListener('click', drawRect); 
 
      };
 
</syntaxhighlight>
 
 
== Friday (2/28/14) ==
 
* Paid Focus Group Opportunity
 
** [http://www.mediabarnresearch.com/ MediaBarn] is having a focus group study at 5:30pm on Tuesday (3/4/14). They are interested to talk with students who are interested in majoring in IT/Computer Science/any related topic.
 
** 90-minute focus group, and the compensation is $100
 
** [http://www.mediabarnresearch.com/infotechstudy Registration Here]
 
** Mediabarn Research Services (near Courthouse metro), 2200 Clarendon Blvd, Suite 1200, Arlington, VA 22201
 
* Make sure that you have completed [http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1?curriculum_id=506324b3a7dffd00020bf661 While Loops]
 
* Make sure that you have completed [http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1?curriculum_id=506324b3a7dffd00020bf661 Dragon Slayer]
 
* Introduction to HTML Canvas
 
** Read and complete the tutorial: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
** Don't worry if you don't understand everything...this most important part is getting the '''A skeleton template'''
 
** Also refer to this documentation: [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas], which will explain different parts of the template
 
** If you're interested more canvas tutorials can be found here: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial Mozilla Canvas Tutorials]
 
* Canvas Practice Assignment
 
*# Create an HTML+JavaScript file named '''canvasPractice.html'''
 
*# Use the skeleton template from [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
*# Refer to [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas] for specific functions that will be helpful
 
*# In the canvas, draw a stick figure with filled in squares or rectangles for hands and feet
 
*# Under the stick figure, display a text message in the canvas that says "Computer Science Rocks!"
 
 
== Wednesday - Friday (2/26/14 - 2/28/14) ==
 
'''Warmup:'''
 
* Show Mr. Bui that you have completed [http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1?curriculum_id=506324b3a7dffd00020bf661 Javascript - For Loops]
 
* Show Mr. Bui that you have completed [http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1?curriculum_id=506324b3a7dffd00020bf661 Search Text for Your Name]
 
 
'''Agenda:'''
 
* Paid Focus Group Opportunity
 
** [http://www.mediabarnresearch.com/ MediaBarn] is having a focus group study at 5:30pm on Tuesday (3/4/14). They are interested to talk with students who are interested in majoring in IT/Computer Science/any related topic.
 
** 90-minute focus group, and the compensation is $100
 
** [http://www.mediabarnresearch.com/infotechstudy Registration Here]
 
** Mediabarn Research Services (near Courthouse metro), 2200 Clarendon Blvd, Suite 1200, Arlington, VA 22201
 
* Demo Quadratic Formula web app
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-ASGIv/0/1?curriculum_id=506324b3a7dffd00020bf661 While Loops]
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-mrTNH-6VIZ9/0/1?curriculum_id=506324b3a7dffd00020bf661 Dragon Slayer]
 
* Introduction to HTML Canvas
 
** Read and complete the tutorial: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
** Don't worry if you don't understand everything...this most important part is getting the '''A skeleton template'''
 
** Also refer to this documentation: [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas], which will explain different parts of the template
 
** If you're interested more canvas tutorials can be found here: [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial Mozilla Canvas Tutorials]
 
* Canvas Practice Assignment
 
*# Create an HTML+JavaScript file named '''canvasPractice.html'''
 
*# Use the skeleton template from [https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Basic_usage Basic usage of Canvas]
 
*# Refer to [http://www.w3schools.com/html/html5_canvas.asp W3Schools HTML5 Canvas] for specific functions that will be helpful
 
*# In the canvas, draw a stick figure with filled in squares or rectangles for hands and feet
 
*# Under the stick figure, display a text message in the canvas that says "Computer Science Rocks!"
 
 
== Monday - Tuesday (2/24/14 - 2/25/14) ==
 
'''Agenda:'''
 
* Demo Pythagorean Theorem web app
 
* Demo Quadratic Formula web app
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1?curriculum_id=506324b3a7dffd00020bf661 Javascript - For Loops]
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-NhsaT/0/1?curriculum_id=506324b3a7dffd00020bf661 Search Text for Your Name]
 
 
== Thursday - Friday (2/20/14 - 2/22/14) ==
 
'''Agenda:'''
 
* Pythagorean Theorem Example
 
*# There should be input boxes for a, b, and c (hypotenuse)
 
*# The user should be able to fill in '''any''' two boxes, and hit calculate
 
*# The empty input box should be filled in with the correct answer
 
*# You should validate the input for non-numbers
 
* Quadratic Formula Program
 
*# Create a program that takes three inputs: a, b, and c
 
*# Calculate the quadratic formula
 
*# Check if the solutions are real or imaginary
 
*# Output the 2 real solutions, and either output the imaginary solutions or put a message that says the solutions are imaginary
 
 
== Tuesday - Wednesday (2/18/14 - 2/19/14) ==
 
'''Agenda:'''
 
* More Javascript + HTML Form practice
 
** Slope Calculation Example
 
* parseFloat()
 
* parseInt()
 
* isNaN()
 
* [http://www.w3schools.com/jsref/jsref_obj_math.asp JavaScript Math]
 
 
== Thursday - Friday (2/13/14 - 2/14/14) ==
 
* Snow Days
 
 
== Monday - Wednesday (2/10/14 - 2/11/14) ==
 
'''Agenda:'''
 
* Bring up your [http://www.codecademy.com/ Codecademy] account and show 100% completion of Javascripts 1-3
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/0/1?curriculum_id=506324b3a7dffd00020bf661 Javascript-4: Build "Rock, Paper, Scissors"]
 
* Introduction Javascript + HTML Forms
 
** [http://www.w3schools.com/html/html_forms.asp HTML Forms and Input]
 
** [http://www.w3schools.com/js/js_input_examples.asp JavaScript Examples]
 
** Name & Address Example Form
 
** Slope Calculation Example
 
** Pythagorean Theorem Example
 
 
== Thursday - Friday (2/6/14 - 2/7/14) ==
 
'''Agenda:'''
 
* Python-JavaScript Cheatsheet
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-x9DnD/0/1?curriculum_id=506324b3a7dffd00020bf661 JavaScript-2: Choose Your Own Adventure!]
 
* Complete [http://www.codecademy.com/courses/javascript-beginner-en-6LzGd/0/1?curriculum_id=506324b3a7dffd00020bf661 JavaScript-3: Introduction to Functions in JS]
 
 
== Monday - Wednesday (2/3/14 - 2/5/14) ==
 
'''Agenda:'''
 
* Demo missing [[Hangman]]
 
* Introduction to Web Development
 
** HTML, CSS, & JavaScript
 
* [http://www.codecademy.com/ Codecademy]
 
** Complete [http://www.codecademy.com/courses/getting-started-v2/0/1?curriculum_id=506324b3a7dffd00020bf661 Javascript-1: Getting Started with Programming]
 
  
 
== Archives ==
 
== Archives ==
 +
* [[IBCS1 - 1314 - March]]
 +
* [[IBCS1 - 1314 - February]]
 
* [[IBCS1 - 1314 - January]]
 
* [[IBCS1 - 1314 - January]]
 
* [[IBCS1 - 1314 - December]]
 
* [[IBCS1 - 1314 - December]]

Revision as of 09:05, 2 April 2014

Tuesday (4/1/14)

Agenda:

  • Test your 1-player Tic-Tac-Toe game (make sure you have your 2-player version backed up!)
  • Spend today improving the computer's move algorithm
    • What moves do you make that allow you to beat the computer?
    • Can you improve the computer's AI? (Hint: corners)
    • Improve your computer's AI by prioritizing corners after the center square

Archives