CS+I+-+Foundations

=Computer Science I - Foundations=

This course is designed to give a broad introduction to the field of computer science. This project based course will cover a basic understanding of computer science theory, a study of algorithms and other problem solving techniques, current research topics of interest in computer science, an introduction to digital electronics, and the role of computers in today's society. Students will learn how to use programming languages such as Pascal, HyperText, Logo, Java and Scratch. This course is useful to all students -- those who will study or work with computers in college, those who desire a general knowledge of computer science, or those who are interested in computer science as it applies to other fields.


 * Overarching Essential Questions that motivate all our computing education**

Goals
Students will:
 * Develop teamwork and collaboration skills for developing and writing programs.
 * Develop skills in structured thinking and creative problem solving.
 * Learn various tools and approaches to solving problems, and determine the most appropriate tool for the challenge at hand.
 * Develop a greater appreciation for the increasing impact of computers and computer science on our global society.

Essential Questions

 * Why is logical thinking a desired trait in programming?
 * How is logic used in design?
 * What effect do variables have on the operation of a program?

Course Modules
Module I: Train Station project - Program will ask user for preferred departure time and date of travel. Program would then assign the user a train, print (on screen) a ticket with travel information, and show the train eaving the station. (Graphics for train map, text and numeric variables, input and output, nested proceedures and animation).

Module II: MAZE project - Students create simple single-player maze in a gaming environment incorporating different levels of difficulty. (Sound, video, effects, variables, random number generator, if-then statements)

Module III: Math Tutor Project - Students will write a program to tutor students in solving math problems. The four areas to be included are addition, subtraction, multiplication and division. Three levels of difficulty, i.e. beginner level, medium difficulty, and hard will be included in the final program with the choices being made from an onscreen menu. Instant feed back of "too high or too low" will be given after each try. A correct answer will present a new problem to be solved. A summary of missed answers and correct answers will be posted at the end of each session. (Variables, random numbers, nested procedures).

Module IV: Introduction to the programming language "HyperCard" In HyperCard, students write a program that will use "buttons" begin various actions, in this case to change the face of a cat. i.e. Button labeled "smiling cat" would change the face of the cat to a smile. A button labeled "tail in motion" would have the tail move etc.....two or more buttons on first card. (Use as many cards as needed - at least five.) Programmers will organize stacks so that there are no "dead ends" (i.e. button will be available to get back to the first card. (Buttons, organizated paths).

HyperSchool project. Using HyperCard students will write a program that will use "buttons to move from room to room on a school floor plan. Programmers will include a "button" that will take viewers through a daily upper school schedule. Students may use as many cards as needed - (minimum seven). The programmer will organize the cards so that there are no "dead ends" (i.e. button to get back to the first card.) Two class periods are developed with buttons leading to explanations or demonstrations of what is happening in those courses.

HyperTic-Tac-Toe project - In this project the programmer will code: a. 2 player Tic-Tac-Toe program (computer announces winner) b. 1 player - 2 level of play against the computer (easy-hard) The computer will announce when someone has won and print our appropriate congratulations etc. The student will develop a flow chart of programming ideas used in one button.

Module V World Clock Tower(s) project - The student will write a program that will show the correct time in four parts of the world. (There should be four clock faces digital and analog that will display time. An input by the user of a time, i.e. 4:10 in Atlanta. Immediately activates the four clock faces will display the time in the proper time zone. If the time is "on the hour" i.e. 5:00 one of the clocks will chime the hour by playing the Westminster Chime Peal. The clock sounding the chime should visually change in some way to indicate that it is the clock chiming.

Module VI Cash Register project - The student will write a cash register program to do the following: 1. Enter a price. 2. Enter a "sales discount" (i.e. 5%) 3. Print: The sales price is ...... 4. Ask: "What do you need change for? 5. Print: "Your Change is ........ 6. Include an eight percent sales tax on the purchase.

Course Cognitive Benchmarks Compare and evaluate the quality of the proceedures and functions in the code. Evaluate the programs success as related to the problems needs.