Overview of Book: What`s in Each Chapter

advertisement
New Paltz Central High School
New Paltz Central School District 196 Main Street, New Paltz, New York 12561
Tel: 845-256-4000, Fax: 845-256-4009
Instructor: Joseph M Haas
Phone: (845) 256-4175 ext. 69524
Mathematics / Science Teacher
Email: jhaas@newpaltz.k12.ny.us
Welcome to Computer Science I
Computer Science I is a hands-on project based course designed to introduce students to computer
programming. Students will begin by using Build Your Own Blocks (a/k/a SNAP!), an advanced
offshoot of Scratch!, a visual programming language developed to allow students to focus on the "Big
Ideas" of computing in a user friendly purely graphical, drag and drop, environment.
In our next unit of study students will be programming in JavaScript. JavaScript is the most popular
scripting language on the internet, and works in all major browsers.
Students will design, write, test, and debug computer code to perform a desired function. The highly
structured and sequential process required in programming helps students strengthen their problem
solving and logical reasoning skills. This project/problem based approach is directly aligned with the
Common Core Learning Standards for Mathematics.
Many of the labs and projects used in this class are based on The Beauty and Joy of Computing (BJC),
an introductory computer science curriculum developed at the University of California, Berkeley. It is
currently slated as the new AP CS Principles course being developed by the College Board and the
National Science Foundation.
Topic Outline:
Unit I - Build Your Own Blocks
Broadcast, Animations, and Music!
 Get comfortable with the Scratch user interface.
 Learn to use Broadcast blocks to communicate between sprites and make a movie.
Loops and Variables
 Learn to use key listeners to move the characters around the screen.
 Learn to use the movement and drawing commands in Scratch to draw complex images and
geometric shapes.
 Learn to use variables that change dynamically within a program.
 Use layers of abstraction in programs to draw complex images.
Random, If and Input
 Learn to use the if block in the context of forever loops and when working with variables.
 Learn to use the random block to generate randomness in a game.
Build Your Own Blocks
 Discover how to use the BYOB block interface to, create different shaped blocks, create inputs
of different types, create inputs with initial values.
 Employ blocks and data abstraction to break problems down into smaller problems and thus
write more beautiful and elegant code.
 Explore some of the complexities of managing block variables.
Lists




Practice writing and reading functions with different input types.
Determine how to break problems down into individual functions.
Gain experience working with a new data structure and the large repository of blocks that work
on this data structure.
Develop the techniques and functions to draw a game board.
Algorithms
 Solidify understanding of what an algorithm is and why they’re important to computer science
and other fields.
 Gain a basic understanding of why certain algorithms perform better than others.
 There’s often more than one way to solve the same problem. Certain solutions will be superior to
others, but very often choosing a solution will require evaluating a list of trade-offs relevant to
your particular situation.
 Practice implementing algorithms that were discussed verbally.
Lists II
 Get more practice with making Lists, accessing elements and inserting items.
 Learn patterns of looping over an entire list or part of a list.
 Write and analyze code that sorts a list.
Recursion
 Explore the idea of representing a problem in terms of itself.
 Practice planning and coding recursive blocks.
Unit II - JavaScript
 Variable declaration and initialization, Comments, JavaScript I/O
 Working with Strings and variables
 Using Math Functions and equations to solve problems
 Strings, Integers, and Floating point numbers
 Conditional statements: if...else
 Logical Operations: OR, AND, NOT
 Loop statements: for and while
 Using Forms For Input/Output
 Functions
 Arrays
All assignments and related course materials for this class are posted on my website.
There are typically 15 to 20 assignments due per quarter, requiring students to complete
one project almost every class period. Short quizzes will be given periodically, and are
announced the class period before they are given.
Grades are determined from a combination projects and quizzes. Each assignment will be
given a specific point value. Your average can be determined at any time by adding up
the number of points earned and dividing by the total number of possible points.
Late assignments will receive a 1 point deduction for each day late.
Class Expectations
During class time, computers are only to be used for the purpose of this class. If you are
using a computer for anything other than work directly relating to this class you will lose
credit for the project you are working on and possibly lose your computer privileges.
Students should be attentive to all directions and class discussions, be on time and ready
for the beginning of class, be quiet and respectful while others are speaking.
Download