Computer Programming I
Course Information: 2010-2011
Coach Payne
(Subject to Revision)
Computer Programming I will involve the students in the following activities.
Grading for Computer Programming I is based upon a total points scheme rather than individual assignment percent values. The point totals will generally be as follows:
Major Tests…..………80-120 points
Projects…….…...……80-120 points
Quizzes……………....20-50 points
Daily assignments…...10-50 points
Homework……….……5-10 points
The following items are required:
3-Ring notebook
Notebook paper
Pen or Pencil
A flash or thumb drive is highly recommended, but optional.
Most assignments and class information may be found at the site http://coachpaynes.blogspot.com/ .
Absolutely no food, drink (other than water, with permission), or electrical devices are allowed in the classroom.
Unauthorized internet use is not allowed, and can result in having computer time at school removed.
Course Guide
Unit 1 (~0.5 weeks) - Introduction to Computer Programming - During the first portion of the course we will introduce the following concepts, including terminology:
1. How computers work
1. What is a computer?
2. Terminology (There are many sites. These are just a few!)
1. http://www.techterms.com/
2. http://webopedia.com/
3. http://en.wikipedia.org/wiki/Computer_terminology
4. http://whatis.techtarget.com/definitionsCategory/0,289915,sid9_tax281874,00.html
2. Major hardware components in computing systems
3. Introduction to program design
1. Reading and understanding a problem description
2. Establishing goals
3. Algorithms
4. Documentation best practices
4. Declaring variables, constants, and methods
5. Introduction to coding concepts:
1. Commands
2. Methods
3. Loops
6. The social and ethical ramifications of computer use
7. Introduction to testing and debugging
Unit 2 (~5 weeks) - Learning to Program with Ruby – Console-based languages were used for many years to train students in both terminology and coding. Ruby is a dynamic, reflective, general purpose object-oriented programming language. It is an open source programming language with a focus on simplicity and productivity, and it has an elegant syntax that is natural to read and easy to write. (from WikiPedia and the Ruby website (http://www.ruby-lang.org/en/)).
Part I: Introduction to Ruby
o Getting Started with Ruby
Downloading
Mapping to the H:// drive or a flash drive
The interpreter, console, and textpad
A First Program
Part II: Programming in Ruby: Program Design and Implementation
Numbers
• Simple Arithmetic
• Short Assignments and Projects
Letters
• String Arithmetic
• Numbers and Digits
• Short Assignments and Problems
Variables, Assignments, and Methods
• Usage
• Conversions
• Built-in Methods
• Fancy Methods
• Mathematical Methods, Random Numbers, and the Math Object
• Short Assignments and Problems
Flow Control
• Comparison Methods
• Branching
• Looping
• Introduction to Logic
• Short Assignments and Problems
Arrays and Iterators
• Array Methods
• Short Assignments and Problems
Writing Methods
• Method Parameters
• Local Variables
• Return Values
• Recursion
• Sorting
• Short Assignments and Problems
Files
• Reading, Writing, Saving, Loading
• Short Assignments and Problems
Classes
• More Built-In Classes
• Writing Classes
• Short Assignments and Problems
Blocks and Procs
• Methods that take Procs
• Methods that Return Procs
• Passing Blocks into Methods
• Short Assignments and Problems
Unit 3 (~5 weeks) - Learning to Program with Alice - "Visual" coding languages such as Alice, Karel the Robot, and Scratch have been used in high school and college computer science classrooms to immerse students in programming prior to exposing them to an abstract programming language like Java. Alice is object oriented and puts students on the approach for continuing forward with AP computer science using Java. The class will follow an eight week Alice curriculum designed to familiarize students with the following concepts:
● Part I: Introduction to Alice
o Getting Started with Alice
Introduction
Alice Concepts
o Text and 2D Graphic Images
o Programming in Alice: Program Design and Implementation
Scenarios and Storyboards
A First Program
Programming In Alice: Putting Together the Pieces
Built-in Questions and Expressions
Simple Control Structures
Engineering Look and Feel
• Part II: Object-Oriented and Event-driven Programming Concepts
Classes and Objects
o Methods and Parameters
World-level Methods
Parameters
Class-level Methods and Inheritance
Visible and Invisible Objects
o Interactive Programs: Events and Event-Handling
Interactive Programming: Events and Event Handlers
Passing Parameters to Event Handlers
Events
• Part III: Using Questions and Control Statements
o Questions (Functions) and If/Else
Questions
Execution Control with If/Else and Boolean Questions
Random Numbers and Random Motion
o Repetition: Definite and Indefinite Loops
Loops
While – an Indefinite Loop
Events and Repetition
o Repetition: Recursion
Introduction to Recursion
Another Flavor of Recursion
Camera and Animation Controls
• Part IV: Advanced Topics
o Lists and List Processing
Lists
List Search
Poses
o Variables and Revisiting Inheritance
Variables
An Array Visualization Using an Index Variable
Debugging with Watch and Text Output
Unit 4 (~5 weeks) – Karel J Robot
• Configure Karel J Robot API to work with chosen IDE
• Basic programming through Karel J Robot API
o Learn primitive robot instructions and simple programs
Create robot world with walls and beepers
Changing positions
Tuning in place
Beeper handling
Robot Java class descriptions
Executing and completing program
Learning program form
Error shut offs and programming errors
Bugs and debugging
• Extending robot programming through Java
o Defining new classes of robots
o Defining new methods
o Creating and modifying inherited methods
o Stepwise program refinement
A technique for planning, implementing and analyzing programs
o Advantages of using new instruction
o Creating understandable programs through formatting and documentation
• Learning conditionally executed instructions
o IF instructions
o Methods for robot condition testing
o Writing new predicates
o Understanding the faceNorth method through recursive and non-recursive implementation
o Determine correctness of the IF instruction
o IF/ELSE instruction
o Nesting IF instructions
o Analyzing more complex tests
• Learning Instructions that Repeat
o The FOR-Loop instruction
o The WHILE instruction using a 4 step process
o Understanding infinite executions
o Nesting while Loop
Integrated Project: (3 days)
The Great Maze Escape Project
• Major Project
Unit 4 (~2 weeks) – Scratch
• Unit 1
o Lesson 1: Motion and Sound
o Lesson 2: Repeating Actions
o Lesson 3: Playing with Color
o Lesson 4: Creating Your Own Sprites
o Lesson 5: Speaking and Thinking
o Lesson 6: Creating Image Effects
o Lesson 7: Sounds, Voices and Music
o Lesson 8: Creating Animations
• Unit 2
o Lesson 1: Move, Turn and Point
o Lesson 2: Go and Glide, Changing Positions
o Lesson 3: Bouncing, Locating the Sprite
o Lesson 4: Changing Costumes
o Lesson 5: Speaking, Thinking and Graphic Effects
o Lesson 6: Size, Presence and Layers
• Unit 3
o Lesson 1: Playing Sounds
o Lesson 2: Playing Drums
o Lesson 3: Playing Instruments
o Lesson 4: Pen and Color Control
o Lesson 5: Pen Size, Shade, Stamp
• Unit 4
o Lesson 12: Beginning and Waiting
o Lesson 13: Repeating Actions
o Lesson 14: Broadcasting
o Lesson 15: Conditional Actions
o Lesson 16: Stopping
The reminder of the semester will be devoted to Java and a Major Project…
No comments:
Post a Comment