Beginning Programming (Two Semesters) Description: The major goal of this course is for students to develop the computer science skills of algorithm development problem solving and programming. While the emphasis of the course will be on programming, students will also be introduced to other important topics such as; careers, the limits of computing, and the difference between interpreters and compilers. Semester One Module One: Intro to Beginning Programming Does my computer have all of the necessary software for beginning programming? Have I downloaded all of the programs I will need for beginning programming? Download Java JDK Download Alice 2.2 Download Dr. Java Download Bookclasses Questions for Thought: Introduce Yourself Module Two: Computer Careers What are the daily tasks and responsibilities of a professional in the field of computing? What types of computing careers are available? What are the benefits and any drawbacks that exist with these careers? What is the possible impact on a business when a computer programmer leaves a company? Project: Career Presentation Questions for Thought: Computer Careers Module Three: Introduction to 3D Modeling with Alice What is a 3D virtual world? 1
What are the directions that a 3D object can move? How do you add 3D objects to Alice worlds? What is the center of a 3D object? What is animation? Questions for Thought: Alice Scene Creation Assignment: Create an Avatar of Yourself Project: Create Your Own Scene in Alice Test: Introduction to 3D Modeling with Alice Module Four: Program Design and Implementation Why are algorithms important in problem solving? What are the steps that are used to design algorithms? What is the difference between visual and textual storyboards? Why are comments used in programs? Assignment: Storyboard Questions for Thought: Storyboard Techniques Test: Program Design and Implementation Project: Soldiers On Deck Module Five: Classes, Objects, Methods, and Parameters What is inheritance? What is the relationship between classes that utilize inheritance? What are the benefits of inheritance? What are the "is-a" and "has-a" relationships? What are methods and parameters? What is encapsulation? 2
Assignment: Methods Tutorial Part 1 Assignment: Methods Tutorial Part 2 Assignment: Professional Soldier Questions for Thought: Soldier Adaptations Project: Sweeping Test: Classes, Objects, Methods, and Parameters Module Six: Introduction to Java What is the relationship between the Turtle class and the World class? What is the relationship between Turtle and Simple Turtle? How do these classes encapsulate and hide their information and how is it accessed? Assignment: Java Mathematics Worksheet Project: Turtle Drawings Questions for Thought: "Is-a" and "Has-a" Project: Turtle Methods Test: Introduction to Java Module Seven: Drawing in Java What are Strings? What is a fully qualified file name? How do we use Strings to access a Pictures fully qualified file name? How can we use the Graphics class to draw text, circles, rectangles and other shapes on a Picture object? How do we change the color of what we are painting? Assignment: Java Mathematics Worksheet Project: Turtle Drawings Questions for Thought: "Is-a" and "Has-a" 3
Project: Turtle Methods Test: Introduction to Java Module Eight: Conditionals What is the difference between a function and a method? What is a conditional statement? What are relationship and logic operators? How does an if-else statement work? Tutorial: How Tall Are You? If Statement Tutorial Assignment: Relationship and Logic Practice Tutorial: Functions, Events, and Color Questions for Thought: Create Your Own Story Path Project: Scarecrow Program Test: Conditionals Semester Two Module One: Loops and Lists What is a loop? When do we use loops? What is an infinite loop? What is a list? What control structure is used to go through a list? What are the advantages of using a list? How do we search a list? Assignment: For Loop Worksheet Questions for Thought: Loop Examples Tutorial: Bunny Eat Broccoli Repetition Assignment: While Loop Worksheet 4
Questions for Thought: Lists Tutorial: Using Lists Tutorial: Using Arrays and Lists Project: Synchronized Objects Test: Loops and Lists Module Two: Two Dimensional Arrays What is an array? What are 2D arrays? When would we use a for each loop? When would we use for loops vs. while loops? Assignment: Array Worksheet Assignment: Image Representation Worksheet Questions for Thought: Image Representation Project: Picture Manipulation Test: Two-Dimensional Array Module Three: Picture Manipulation and Looping How do we use nested loops to traverse 2D arrays? What does it mean to overload methods? How do we return values from methods? Questions for Thought: Mirroring Project: Mirroring Questions for Thought: Traversing 2D Arrays Project: Rotation and Enlargement Project: Overloaded Methods Test: Picture Manipulation and Looping Module Four: Picture Manipulation and Conditionals 5
What are boolean expressions? How can we use conditional expressions in code? When do we use nested if statements? Questions for Thought: Picture Class Complete Project: Picture Class Methods Project: Picture Collage Module Five: Recursion How do we traverse a recursive method? When is it appropriate to use recursion? Assignment: Recursive Tracing Worksheet Questions for Thought: Drawing a Tree with Recursion Project: Recursive Walking Method in Alice Test: Recursion Module Six: Stacks and Queues What is a stack? What is a queue? What is the purpose of a call stack? What is the purpose of a printer queue? What is the difference between how things are stored in a stack vs. a queue? Assignment: Stacks and Queues Worksheet Questions for Thought: Stacks and Queues Project: Visual Stacks and Queues Test: Stacks and Queues 6
Module Seven: Big-O Notation How many steps will an algorithm take to execute? How is one algorithm faster than another algorithm? What is polynomial time as it relates to computing? What is exponential time as it relates to computing? Final Assessment Test: Big-O Notation 7