Difference between revisions of "IB Computer Science 1"

From WLCS
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
== Monday - Friday (3/29/20 - 4/3/20) : Self-distancing : Week 3 ==
 +
* Free Online Java Textbook: https://books.trinket.io/thinkjava2/
 +
* for loop review and exercises
 +
** https://www.youtube.com/watch?v=h4ApLHe8tbk
 +
** Complete the 4 for loop repl.its
 +
* Java Arrays
 +
** Read [https://drive.google.com/open?id=1Ayzvd1q-6RwZKplUtLHDCCLyO5XIR5kyeKUi8-htErY Java arrays]
 +
** Complete Java arrays exercises in repl.it
 +
* Java Methods (functions)
 +
** Read through [https://docs.google.com/presentation/d/1L-tbBp51YuUoTWldXFBr6JGcyHF5sBy_flfPGiqlVAQ/edit?usp=sharing Java methods]
 +
** Complete the Static Methods repl.it assignment
 +
 +
== Monday - Friday (3/23/20 - 3/27/20) : Self-distancing : Week 2 ==
 +
* Mr. Bui is in the process of closing out 3rd Quarter grades
 +
* Watch [https://www.youtube.com/watch?v=y-exbVWzPJ4 Java Method Signatures]
 +
* Complete the [https://docs.google.com/document/d/1QdwkorQtCghHqfqZ5QSH-RfuRoNUXGsXRjaLZ6MDJNI/edit?usp=sharing Java Processing: Bouncing Ball Lab]
 +
* Java References (if you feel like they'll be useful or you want to skim them to see what's there)
 +
** [https://introcs.cs.princeton.edu/java/11cheatsheet/ Java Cheatsheet (Princeton)]
 +
** [http://interactivepython.org/runestone/static/java4python/index.html Java for Python Programmers]
 +
** [https://processing.org/reference/ Processing (Java) Reference]
 +
* You will be converting several of your old Python Processing animations to Java Processing. '''You do not need to turn them in yet.  Simply verify that it works yourself.'''
 +
** Convert your Python Processing Emoji to Java
 +
** Convert your Python Processing Hover Buttons to Java
 +
** Convert your Python Processing Tic-Tac-Toe to Java
 +
* If you do not have your Python Processing versions of the assignments above, then you may use somebody else's Python Processing code just to practice porting it to Java. You may find the Python version of some programs [https://drive.google.com/drive/folders/1Y_RKhGeK8snV4rc85zmZltlXFvsTvjWL?usp=sharing here]
 +
* Make sure you successfully execute and test each of the programs that you convert over to Java
 +
* Feel free to practice converting other Python Processing programs to Java
 +
 +
== Tuesday - Friday (3/17/20 - 3/20/20) : Self-distancing : Week 1  ==
 +
* 3rd Quarter ends '''Friday (3/20/20)'''
 +
** All IB CS 1 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 1 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 completed all the repl.its assigned when school was still in session last week (see previous date below)
 +
* Mr. Bui is developing a weekly schedule of Java-related programming tasks and resources. <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 any questions right now, 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.
 +
 +
== Thursday (3/12/20) ==
 +
'''Agenda:'''
 +
* Scanner review
 +
* All repl.its through quadratic formula should be done at this point
 +
* Java Conditionals (booleans, comparisons, logic ops, if, while)
 +
* Complete the following repl.its
 +
** 2 x Conditional Statement repl.its
 +
** 4 x While Loop Practices
 +
** Taylor Series Pi (4th quarter)
 +
** Taylor Series E (4th quarter)
 +
 +
== Tuesday (3/10/20) ==
 +
'''Agenda:'''
 +
* Java's Input Scanner
 +
** Read every line of https://repl.it/@paulbui/Java-Scanner-Input
 +
* Be able to answer the following questions about https://repl.it/@paulbui/Java-Scanner-Input
 +
*# What statement is used at the top of the file to import the Scanner? (Line 1)
 +
*# How do we declare a Scanner variable and initialize it? (Line 9)
 +
*# How do we print message prompts to the user? (Lines 12, 17, 20)
 +
*# How do we scan the keyboard for an inputted String? (Line 13)
 +
*# How do we scan the keyboard for an inputted int? (Line 18)
 +
*# How do we scan the keyboard for an inputted double? (Line 21)
 +
* Complete the My First Scanner Java repl.it (should be done by the end of class period)
 +
* Complete the Rectangle Area Calculate Java repl.it (should be done by the end of class period)
 +
* Complete the Distance Formula Java repl.it (should be done by the end of class period)
 +
* Work on the Quadratic Formula Java repl.it (most people should be done with this too by the end of the period)
 +
 +
'''Homework:'''
 +
* Complete the Quadratic Formula by next class (or have questions if you are stuck)
 +
 
== Wednesday - Friday (3/4/20 - 3/6/20) ==
 
== Wednesday - Friday (3/4/20 - 3/6/20) ==
 
'''Agenda:'''
 
'''Agenda:'''
Line 5: Line 80:
 
* Introduction to Java
 
* Introduction to Java
 
** Join the [https://repl.it/classroom/invite/m8cStYC new Java repl.it course]
 
** Join the [https://repl.it/classroom/invite/m8cStYC new Java repl.it course]
** Basic syntax 1
+
** Basic syntax - Hello World
 
** Variable declaration and initialization
 
** Variable declaration and initialization
 
** Integer division
 
** Integer division
Line 20: Line 95:
 
* Watch the videos and complete the worksheets in Canvas if you did not finish them in class. Due on '''Wednesday 3/4/20'''
 
* Watch the videos and complete the worksheets in Canvas if you did not finish them in class. Due on '''Wednesday 3/4/20'''
  
== Tuesday - Thursday (2/25/20 - 2/27/20) ==
 
'''Agenda:'''
 
* Last day for missing assignments before interim grades
 
* Benford's Law Assignment
 
*# Read and watch [http://www.kirix.com/blog/2008/07/22/fun-and-fraud-detection-with-benfords-law/ Benford's Law and Fraud Detection]
 
*# Further reading [http://mathworld.wolfram.com/BenfordsLaw.html Benford's Law]
 
*# Research and find a set of naturally occurring numbers.  Here are some ideas, but you can come up with your own:
 
*#*[http://testingbenfordslaw.com/ Testing Benford's Law]
 
*#*[http://www.data.gov U.S. Government's Open Data]
 
*#** [https://catalog.data.gov/dataset?res_format=CSV Data.gov Datasets]
 
*#* [http://www.census.gov/ U.S. Census Bureau]
 
*#* [https://www.tableau.com/learn/articles/free-public-data-sets Tableau: Free Public Data Sets]
 
*#* [https://www.springboard.com/blog/free-public-data-sets-data-science-project/ Springboard: Free Public Data Sets]
 
*#* Heights of mountains
 
*#* Atomic weights in the periodic table
 
*#* Baseball statistics
 
*#* etc.
 
*# Create a text file that contains a list of your numbers (try to have a list of ~1000 numbers if possible)
 
*#* There are many different ways to do this...some people use Excel, Google Sheets, Sublime, Notepad, etc.
 
*# Write a program that loads your text file, reads the data, extracts the leading digit(s) of the data set, and displays each digit's frequency as a percentage
 
*## Can you successfully load a file? and print its contents?
 
*## Can you split apart the contents and access each individual numerical string?
 
*## Can you access just the first character of each string?
 
*## Can you check what the character is and increase its corresponding count appropriately?
 
*## Can you print out all the frequency percentages using all your counts?
 
*# Additional challenges:
 
*#* Look for any repeating patterns in your code and see if you can refactor your code to eliminate "bad code"
 
*#* Use Processing to load a file, determine the frequencies, and then visually display a bar graph (note: read the Processing documentation to load a file)
 
 
== Wednesday - Friday (2/19/20 - 2/21/20) ==
 
'''Agenda:'''
 
* Missing Robots + Item Collection Game (Top Down) w/ lists and loops demo
 
* Strings and Lists notes - https://docs.python.org/3/library/stdtypes.html#string-methods
 
** split()
 
* File Reading and Writing - https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
 
** [[Media:Constitution.txt]]
 
*** How many times does the word "the" appear in the constitution?  (capitalized or not)
 
** http://courses.washington.edu/b517/Datasets/datasets.html
 
* Practice with the datasets...
 
** Average length of a group of sharks - http://courses.washington.edu/b517/Datasets/sharklengths.csv
 
** Birthdata - http://courses.washington.edu/b517/Datasets/BirthsKingCounty2001.txt
 
*** Male : Female birth ratio
 
*** Racial/ethnic percentages
 
* Benford's Law Assignment
 
*# Read and watch [http://www.kirix.com/blog/2008/07/22/fun-and-fraud-detection-with-benfords-law/ Benford's Law and Fraud Detection]
 
*# Further reading [http://mathworld.wolfram.com/BenfordsLaw.html Benford's Law]
 
*# Research and find a set of naturally occurring numbers.  Here are some ideas, but you can come up with your own:
 
*#*[http://testingbenfordslaw.com/ Testing Benford's Law]
 
*#*[http://www.data.gov U.S. Government's Open Data]
 
*#** [https://catalog.data.gov/dataset?res_format=CSV Data.gov Datasets]
 
*#* [http://www.census.gov/ U.S. Census Bureau]
 
*#* [https://www.tableau.com/learn/articles/free-public-data-sets Tableau: Free Public Data Sets]
 
*#* [https://www.springboard.com/blog/free-public-data-sets-data-science-project/ Springboard: Free Public Data Sets]
 
*#* Heights of mountains
 
*#* Atomic weights in the periodic table
 
*#* Baseball statistics
 
*#* etc.
 
*# Create a text file that contains a list of your numbers (try to have a list of ~1000 numbers if possible)
 
*#* There are many different ways to do this...some people use Excel, Google Sheets, Sublime, Notepad, etc.
 
*# Write a program that loads your text file, reads the data, extracts the leading digit(s) of the data set, and displays each digit's frequency as a percentage
 
 
== Wednesday - Friday (2/12/20 - 2/14/20) ==
 
'''Agenda:'''
 
* Python Lists Quiz in Canvas
 
* Re-implement Robots + Item Collection Game (Top Down) w/ lists and loops
 
** Demo your game
 
* Strings and Lists notes - https://docs.python.org/3/library/stdtypes.html#string-methods
 
** split()
 
* File Reading and Writing - https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
 
** [[Media:Constitution.txt]]
 
** http://courses.washington.edu/b517/Datasets/datasets.html
 
 
== Monday (2/10/20) ==
 
'''Agenda:'''
 
* Lists quiz on '''Wednesday (2/12/20)'''
 
** List basics (creating, accessing, modifying, etc.)
 
** List traversal (loops w/ lists)
 
** List summation, search, and/or min/max
 
* Lists of Objects
 
** Bouncing Ball w/ lists
 
** Flappy Bird w/ lists
 
* Assignment: re-implement Robots + Item Collection Game (Top Down) w/ lists and loops
 
** You should have 3 lists: allObjects, robots, & items
 
 
== Tuesday - Thursday (2/4/20 - 2/6/20) ==
 
'''Warmup:'''
 
* Complete the bigger() and isDigit() repl.its
 
 
'''Agenda:'''
 
* Course Request Forms
 
** Rising Seniors -> IB CS 2 and/or AP CS A and/or AP CS Principles
 
** Rising Juniors -> AP CS A and/or AP CS Principles
 
* Review [[Python List Exercises]]
 
* Complete List Repl.its by '''Thursday 2/6/20'''
 
** List Review Exercises
 
** List Search
 
** List Minimum
 
** List Maximum
 
** List Reverse
 
* Optional List Challenge:
 
** Complete Random Number List and List Surprise from [[Advanced Python List Exercises]]
 
* Lists of Objects
 
** Bouncing Ball w/ lists
 
** Flappy Bird w/ lists
 
 
== [[IBCS1 - 1920 - January]] ==
 
== [[IBCS1 - 1920 - December]] ==
 
== [[IBCS1 - 1920 - November]] ==
 
== [[IBCS1 - 1920 - October]] ==
 
== [[IBCS1 - 1920 - September]] ==
 
 
== [[IBCS1 - Archives]] ==
 
== [[IBCS1 - Archives]] ==
 +
* [[IBCS1 - 1920 - February]]
 +
* [[IBCS1 - 1920 - January]]
 +
* [[IBCS1 - 1920 - December]]
 +
* [[IBCS1 - 1920 - November]]
 +
* [[IBCS1 - 1920 - October]]
 +
* [[IBCS1 - 1920 - September]]
 +
* [[IBCS1 - Archives|IBCS1 - Previous Years]]

Revision as of 14:23, 31 March 2020

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

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

  • Mr. Bui is in the process of closing out 3rd Quarter grades
  • Watch Java Method Signatures
  • Complete the Java Processing: Bouncing Ball Lab
  • Java References (if you feel like they'll be useful or you want to skim them to see what's there)
  • You will be converting several of your old Python Processing animations to Java Processing. You do not need to turn them in yet. Simply verify that it works yourself.
    • Convert your Python Processing Emoji to Java
    • Convert your Python Processing Hover Buttons to Java
    • Convert your Python Processing Tic-Tac-Toe to Java
  • If you do not have your Python Processing versions of the assignments above, then you may use somebody else's Python Processing code just to practice porting it to Java. You may find the Python version of some programs here
  • Make sure you successfully execute and test each of the programs that you convert over to Java
  • Feel free to practice converting other Python Processing programs to Java

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

  • 3rd Quarter ends Friday (3/20/20)
    • All IB CS 1 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 1 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 completed all the repl.its assigned when school was still in session last week (see previous date below)
  • Mr. Bui is developing a weekly schedule of Java-related programming tasks and resources. 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 any questions right now, 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.

Thursday (3/12/20)

Agenda:

  • Scanner review
  • All repl.its through quadratic formula should be done at this point
  • Java Conditionals (booleans, comparisons, logic ops, if, while)
  • Complete the following repl.its
    • 2 x Conditional Statement repl.its
    • 4 x While Loop Practices
    • Taylor Series Pi (4th quarter)
    • Taylor Series E (4th quarter)

Tuesday (3/10/20)

Agenda:

  • Java's Input Scanner
  • Be able to answer the following questions about https://repl.it/@paulbui/Java-Scanner-Input
    1. What statement is used at the top of the file to import the Scanner? (Line 1)
    2. How do we declare a Scanner variable and initialize it? (Line 9)
    3. How do we print message prompts to the user? (Lines 12, 17, 20)
    4. How do we scan the keyboard for an inputted String? (Line 13)
    5. How do we scan the keyboard for an inputted int? (Line 18)
    6. How do we scan the keyboard for an inputted double? (Line 21)
  • Complete the My First Scanner Java repl.it (should be done by the end of class period)
  • Complete the Rectangle Area Calculate Java repl.it (should be done by the end of class period)
  • Complete the Distance Formula Java repl.it (should be done by the end of class period)
  • Work on the Quadratic Formula Java repl.it (most people should be done with this too by the end of the period)

Homework:

  • Complete the Quadratic Formula by next class (or have questions if you are stuck)

Wednesday - Friday (3/4/20 - 3/6/20)

Agenda:

  • App Catalog -> JGrasp
  • Turn in Download worksheets!
  • Introduction to Java
    • Join the new Java repl.it course
    • Basic syntax - Hello World
    • Variable declaration and initialization
    • Integer division
    • Casting

Monday (3/2/20)

Agenda:

Homework:

  • Watch the videos and complete the worksheets in Canvas if you did not finish them in class. Due on Wednesday 3/4/20

IBCS1 - Archives