Course Syllabus AP Computer Science A Workshop Summer of 2014 Instructor: Susie Cunningham scunningham@bsu.edu susie.a.cunningham@gmail.com Office Phone: 765-285-7459 Cell Phone: 317-335-9298 Description: The AP Computer Science A course/workshop is designed for participants with none or some programming experience. Participants will learn to program using an object-oriented approach using the JAVA programming language. Topics will include using basic variables, loops, if/else statements, strings, arrays, arraylists, methods, inheritance, abstract classes, interfaces, recursion, sorting and basic input/output files. Class discussions will include topics on how to present AP Computer Science A topics in a classroom setting, what has worked well in a classroom setting and receiving feedback from other class participants. The NEW 3 LAB components will be presented. Suggested Text: JAVA Software Solutions for AP Computer Science, Lewis, Loftus, and Cocking, Addison Wesley. JAVA Concepts, Horstmann, Wiley. Barron’s How to Prepare for the AP Computer Science Advanced Placement Examination Java Version, Teukolsky, Barron’s Educational Series, Inc.. Course Methodology: Course methodology will include hands-on activities, lectures, outside readings, classroom discussion, and programming projects. AP Computer Science A 2014 Summer Workshop Tentative Syllabus Agenda: Topics for Monday: - Where did JAVA come from? A brief history of JAVA will be presented. - Why learn JAVA? - What is Object Oriented Programming (OOP)? - Procedural Programming vs. OOP - What compilers are available for JAVA? - Discussion of AP topics for the AP Computer Science A program. - Introduction to the AP Computer Science A web site. Brief overview of the following topics: - What is ASCII? Using binary 0’s and 1’s. - Variables and Constants - Passing variables - Strings - Methods - User Input from a Keyboard - If, for, case/switch, while, and do/while statements - Using Graphics + using mouse Programming Projects: Project #1 (5 pts.) Create an ASCII Art picture. Project #2 (5 pts.) Complete ASCII Worksheet. Project #3 (10 pts.) Option A: Create an RPG (Role Playing Game) program using methods, if/else statements, loops, and arrays. [Participants will gain skills with creating, calling methods and classes, working with object relationships, and passing variables and arrays.] Option B: Create a dice/card game program using methods, if/else statements, loops, and arrays. Suggested games could be Bunco, Yahtzee, Farkel, Black Jack, etc. [Participants will gain skills with creating, calling methods and classes, working with object relationships, and passing variables and arrays.] Topics for Tuesday - Arrays - ArrayLists - Searching arrays and information in a file. - Working with strings - Reading and writing from a file - Inheritance - Using external classes - Interface - Abstract Class - Wrapper Class Programming Projects: Project #4 (10 pts.) Option A: Write a JAVA program(s) to: Create a Virtual Pet using inheritance. This project will require creating various types of external classes and using various ways to pass variables between classes and using the super command. [Participants will gain skills with creating, calling methods and classes, working with constructors, object relationships, inheritance, and passing variables. Option B: Write a JAVA program(s) to: Demonstrate the use of working with strings using inheritance. This project will require creating various types of external classes and using various ways to pass variables between classes and using the super command. Suggested ideas could include a Pig Latin Translator, Encryption/De-encryption program(s), etc. Project #5 (10 pts.) Write a JAVA program(s) to: Demonstrate the use of interface and abstract classes. An idea would be to create your own universal remote control. [Participants will gain skills with creating and using interface and abstract classes. Also, participants will examine the process of managing a computer project.] Topics for Wednesday: - Sorting - Recursion - The 3 NEW Lab Components Magpie Chatbox Picture Lab Elevens Lab Programming Projects: Project #6 (10 pts.) Complete one of the student programming homework assignments from one of the 3 new lab components. [Participants will gain skills working with the 3 new labs.] Project #7 (50 pts.) Option A: Write a major programming project using the JAVA programming language that would demonstrate a specific JAVA AP Computer Science A topic that could be used in a classroom setting. (A class participant may want to distribute/share this final project with the other class participants.) Option B: Create class materials or handouts that could be used in a classroom setting on a specific JAVA AP Computer Science A topic . (A class participant may want to distribute/share this final project with the other class participants.) Thursday: - AP Computer Science A Test What is on the test? How is the test graded? Participants will work in groups and solve free response AP questions from previous AP tests. - Discussion of classroom projects and teaching pedagogy of AP Computer Science topics. - Have participants share their major projects with the class. - General wrap-up.