Course Syllabus AP Computer Science A Workshop Summer of 2015 Instructor: Susie Cunningham scunningham@bsu.edu susie.a.cunningham@gmail.com Office Phone: 765-285-7459 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 2015 Summer Workshop Tentative Syllabus Agenda: Topics for Monday/Magpie Day! - 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 Programming Projects: Project #1 – Magpie Activity #1 Talk to Captain Kirk. - Program ASCII Art picture. Project #2 – Magpie Activity #2 Look at Magpie2 and Magpierunner2 code. Make changes to code. Discuss if/else statements, loops, .equals, methods Sub Activities: 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.] Project #3 – Magpie Activities #3&#4 Look at Magpie3, Magpierunner3, Magpie4, and Magpierunner4 code. Make changes to code. Discuss substring, indexOf, length(), Math.random(), compareTo() and public vs private Sub Activities: Create a simple encryption/decryption program. Project #4 – Magpie Activity #5 Look at Magpie5 and Magpierunner5 code. Add additional random responses. Topics for Tuesday/Picture Lab Day! - Using Graphics + using mouse - 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 Project #5 – Picture Lab Activities #1-#5 Sub Activities: Discuss binary. Complete binary worksheet. Make a simple applet. Project #6 – Picture Lab Activities #6 & #7 Project #7 – Picture Lab Activities #8 & #9 Sub Activity: 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 Wednesday/Elevens Lab Day! - Sorting - Recursion Programming Projects: Project #8 – Play Elevens Game Discuss components that make up a card game. Sub Activities: Participants will learn how to sort themselves. 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. 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.] Project #9 – Elevens Lab Activities #1 - #6 and #11 Project #10 – Elevens Lab Activities #7 - #9 Project #11 – Elevens Lab Activities #10 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. - What’s new in Java 8.0? - AP Audit and Resubmission of Syllabus - General wrap-up.