COURSE OVERVIEW. Successful completion of this course may provide one semester of college credit for computer science.

Similar documents
Foundations of object orientation

Objects First with Java

Introduction to Programming System Design CSCI 455x (4 Units)

IMACS: AP Computer Science A

3D Graphics Programming Mira Costa High School - Class Syllabus,

AP Computer Science A Sample Syllabus 4

AP Computer Science A Syllabus DRAFT 0.3 June 27th, 2015 Course Overview

Mathematics/Science Department Kirkwood Community College. Course Syllabus. Computer Science CSC142 1/10

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Curriculum Map Grade(s): Subject: AP Computer Science

AP Computer Science A

Course materials Reges, Stuart, and Stepp, Martin. Building Java Programs: A Back to Basics Approach. 2d ed. (Boston: Addison-Wesley, 2011).

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

Java Programming. Price $ (inc GST)

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

AP COMPUTER SCIENCE A: SYLLABUS

This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Java 2. Course Outcome Summary. Western Technical College. Course Information. Course History. Course Competencies

AP COMPUTER SCIENCE GRADES 10 12

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

B. Knowledge of basic algebra and experience in problem solving is beneficial. Students should also possess competence in written communication.

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

Syllabus Honors Java Programming 1 & 2

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

College Board. AP CS A Labs Magpie, Elevens, and Picture Lab. New York: College Entrance Examination Board, 2013.

"Charting the Course... Java Programming Language. Course Summary

CS Exam 1 Review Suggestions

Instructor. Course Description. Learning Outcomes

AP Computer Science Course Syllabus

Curriculum Mapping for National Curriculum Statement Grades R-12 and Oracle Academy.

AP Computer Science A Syllabus

AP Computer Science A Syllabus

Language Features. 1. The primitive types int, double, and boolean are part of the AP

TeenCoder : Java Programming (ISBN )

ITT Technical Institute. SD2720 Advanced Software Development Using Java Onsite and Online Course SYLLABUS

Boca Raton Community High School AP Computer Science A - Syllabus 2009/10

AP Computer Science in Java Course Syllabus

AP Computer Science A (Java) Scope and Sequence

Software Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)

CO Java SE 8: Fundamentals

AP Computer Science AB

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS


SCHEME OF COURSE WORK

NJCCCS AREA: Mathematics. North Brunswick Township Public Schools AP COMPUTER SCIENCE. Acknowledgements. Vivian Morris, Mathematics Teacher

WA1278 Introduction to Java Using Eclipse

MyProgram m i ng Lab. get with the programming. Through the power of practice and immediate personalized

Objects First with Java A Practical Introduction using BlueJ

CompuScholar, Inc. 9th - 12th grades

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Building Java Programs

Contents Chapter 1 Introduction to Programming and the Java Language

AP Computer Science A Mira Costa High School - Class Syllabus,

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

Syllabus & Curriculum for Certificate Course in Java. CALL: , for Queries

Homeschool Programming, Inc.

INSTITUTE OF AERONAUTICAL ENGINEERING

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

COWLEY COLLEGE & Area Vocational Technical School

AP Computer Science Summer Work Mrs. Kaelin

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Core Java SYLLABUS COVERAGE SYLLABUS IN DETAILS

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

Programming Exercise 14: Inheritance and Polymorphism

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

AP Computer Science A Course Syllabus

Course: AP Computer Science A Description and Syllabus Description of Course:

Mobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE

Samples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

EECS168 Exam 3 Review

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

CS 180 Final Exam Review 12/(11, 12)/08

This page intentionally left blank

CGS 2405 Advanced Programming with C++ Course Justification

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

AP Computer Science A Syllabus

Object-Oriented Programming for Managers

Oklahoma City Community College

San Jose State University - Department of Computer Science

Oracle 10g: Java Programming

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

VALLIAMMAI ENGINEERING COLLEGE

Basics of Java Programming CS129 LTPC:

Chapter 6 Introduction to Defining Classes

JAVA. Duration: 2 Months

Internet Application Developer

Murach s Beginning Java with Eclipse

Building Graphical User Interfaces. Overview

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

Core Java Contents. Duration: 25 Hours (1 Month)

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3

104. Intermediate Java Programming

CS 241 Data Organization using C

Computer Programming II C++ (830)

Transcription:

Bishop Montgomery High School AP Computer Science A 2015/2016 Course Syllabus (revision 02/04/2015) COURSE OVERVIEW Students interested in careers related to: business, engineering, computer science, information technology, bioinformatics, genetics, physics, chemistry, or math should take AP Computer Science. However, almost all occupations use some form of computer science and software. Knowledge about how software is designed, created and maintained will provide useful background. AP Computer Science is a yearlong college level course that teaches students how to program in the Java language. At the conclusion of the course students must take the AP Computer Science A examination. Students passing this is examination may receive college credit for one semester of computer science. It is a recommended to take AP Computer Science before your senior year. Your AP score can be a significant factor in scholarships and college entrance applications. Credit Successful completion of this course may provide one semester of college credit for computer science. Prerequisites Honors Algebra II: Completed, passing grade B or A Honors or AP English: Currently enrolled, passing grade B or A Student must be able to touch type. 40+ WPM is recommended. You need to be able to type without looking at the keyboard. You need to be free to watch what is happening on the screen and not thinking (most of the time) about where which key is on the keyboard. This is a college level class and not a beginner or an application class (such as word processing, graphic design, etc.). Students should be familiar with basic computer terms and operations and preferably have some experience programming before they start. A strong mathematics background with a PSAT math score of 58 or higher is a positive indication of readiness for the class. Course Objectives (AP Curricular Requirements) CR1 Students will be able to design and implement computer based solutions to problems CR2 Students will be able to use and implement common algorithms

CR3 Students will be able to use common data structures CR4 Students will be able to select appropriate algorithms and data structures to solve problems CR5 Students will be able to code fluently in an object oriented paradigm using the programming language Java {AP SUBSET} CR6 Students will be able to use elements of the standard Java library from the AP Java subset in Appendix A of the AP Computer Science A Course Description CR7 Students will participate in a minimum of 20 hours {PROBLEM BASED} hands on lab experiences CR8 Students will be able to recognize and discuss the social and ethical implications of computer use Required Text(s) Barnes, D., & Kolling, M. (2012). Objects first with Java: A practical introduction using BlueJ (5th ed.). Boston: Pearson. Litvin, G. Litvin, M. (2014). Be prepared for the AP computer science exam in Java (6th ed.). Andover, Mass.: Skylight Pub. Required Materials USB Thumb Drive (>1Gb recommended) You will be responsible to back up your programs/code. 3x5 cards Flash cards used for new vocabulary, code snippets, and other information to use for studying for tests and the AP exam. Students are not required to have a computer with an internet connection at home. It is recommended. Grading Comprehensive examinations at the conclusion of Unit 8 and Unit 14 will be the largest component of a student s grade. Examinations will be written as closely to the AP exam standards as possible. Both examinations will be pencil and paper/scantron. Your comprehensive examination grade will give you an indication of your standing in for the AP exam in enough time to take corrective action if needed. Course work will generally be finished by Week 28, leaving the rest of the year for review, AP Computer Science A, and completion of the major project. The final grade will consist primarily of Unit 14 comprehensive examination grade and the personal software project. Generally, there is a high correlation between the practice exams and your grade on the AP test. It will be nearly impossible to get an A in this course and not pass the AP examination. Every unit will have a moderate sized programming assignment/lab which will be due at the start of the following unit. The assignments, homework, and requirements are listed on the BMHS AP Computer

Science webpage (see below). Time will be allotted in class to work on these programs but work will be required outside of allotted class time. No late homework will be accepted. Class Work Students will frequently have brief programming assignments in class to illustrate a specific objectives. These will normally be due no later than the next class session. Personal software project Each student will be required to design and create a Personal Software Project which answers a research question or meets a defined purpose such a game or education program. Click here for a detailed description of the project. Be aware that the project will seriously impact the second semester grade. It will be impossible to get an a without completing this project. AP Exam The examination will be given on Tuesday, May 3, 2016 at 8AM. You must arrive 30 minutes early. The exam last three hours and consists of two parts. The AP exam contains a free response (essay, problem solving, oral responses, etc.) as well as multiple choice questions. AP Exam Grades: 5 Extremely well qualified 4 Well qualified Internet Resources 3 Qualified 2 Possibly qualified 1 No recommendation Practice typing awkward characters in code: https://typing.io/ AP Computer Science Java Subset: bit.ly/bmhs_javasubset AP Computer Science Quick Reference: bit.ly/bmhs_javareference BMHS AP Computer Science Webpage: TBD Daily/Weekly Objectives, Exercises, and Assignments: TBD Textbook Webpage: http://www.bluej.org/objects first/ IDE Software (BlueJ): http://www.bluej.org/

COURSE OUTLINE Unit 01 Week(s): 0 2 Topic(s): objects, methods, classes, parameters Fundamental concepts of object orientation Students will be given a hands on introduction to objects, classes, and method concepts. Students will exam source code, and introduced to syntax. Students will use an example of graphic shapes which can be interactively drawn. Students will discuss the schools technology usage policy, the Association for Computing Machinery s Code of Ethics, and write a small paper discussing computer ethics [CR7]. Reading: BlueJ section(s), 1.1 1.11 Lab: Classroom Enrollment System [CR6] (BlueJ 1.12 1.15) Exercise(s): BlueJ exercise(s), 1.1 1.29, syntax flash cards, base conversion worksheet [CR1], error messages worksheet [CR1] Assessment: BlueJ short answer exercise(s), 1.30 1.36 Terms: object, class, instance, method, signature, parameter, type, state, source code, return value, compiler Unit 02 Week(s): 3 4 Topic(s): fields, constructors, parameters, methods (accessor, mutator), assignment and condition statement Creating behavior Students will be introduced to class definitions and investigate how source code is written to create behavior of objects. Students will discuss how to define fields and implement methods. Students will be introduced to the first types of statements [CR2a]. The main example from this chapter is an implementation of a ticket machine. Reading: BlueJ section(s), 2.1 2.23 Lab: Ticket machine design [CR1][CR2a][CR6] (BlueJ 2.12 2.63) Exercise(s): BlueJ exercise(s), 2.1 2.82, syntax flash cards Assessment: BlueJ short answer exercises 2.83 2.93

Java Constructs: field, constructor, comment, parameter, assignment (=), block, return statement, void, compound assignment operators (+=, =), if statement Terms: field, instance variable, constructor, method, method header, method body, actual parameter, formal parameter, accessor, mutator, declaration, initialization, block, statement, assignment statement, conditional statement, return statement, return type, comment, expression, operator, variable, local variable, scope, lifetime Unit 03 Week(s): 5 6 Topic(s): abstraction, modularization, object creation, object diagrams, method calls, debuggers Multiple objects Students will expand on their understanding and discussion of how multiple objects interact [CR4]. Students will see how objects collaborate and perform common tasks. Students will discuss how one object can create or spawn another object. A LED alarm clock display is discussed, using a two number display to show hours and minutes. Another major discussion is a simulation of an email system in which messages are sent between mail clients. Reading: BlueJ section(s), 3.1 3.14 Lab: LED Clock [CR1][CR4][CR5][CR6] (BlueJ 3.8.4 3.11.3) Lab: Mail system [CR1][CR4][CR5][CR6] (BlueJ 3.12.1 3.14) Exercise(s): BlueJ exercise(s), 3.1 3.42, syntax flash cards Assessment: BlueJ short answer exercises 3.43 4.46 Java Constructs: class types, logic operators (&&, ), string concatenation, module operator (%), object construction (new), method calls (dot notation), this Terms: field, instance variable, constructor, method, method header, method body, actual parameter, formal parameter, accessor, mutator, declaration, initialization, block, statement, assignment statement, conditional statement, return statement, return type, comment, expression, operator, variable, local variable, scope, lifetime Unit 04 Week(s): 7 8 Topic(s): collections, loops, iterators, arrays Collections of objects Students will continue to build more extensive structures of objects, and begin to use collections of objects (ArrayList) [CR2b][CR5]. Students will implement a music player and auction system to

introduce collections. Students will discuss iterations over collection and have an introduction to loops. A web log analyzer is used from an example of array use. Reading: BlueJ section(s), 4.1 4.17 Lab: Web log analyzer [CR1][CR2b][CR6] (BlueJ 4.16.4 4.16.8) Exercise(s): BlueJ exercise(s), 4.1 4.80, syntax flash cards Assessment: BlueJ short answer exercises 4.81 4.87 Java Constructs: ArrayList, Iterator, while loop, null, cast, anonymous object, array, for loop, for each loop, ++ Terms: collection, array, iterator, for each loop, while loop, for loop, index, import statement, library, package, anonymous object, definite iteration, indefinite iteration Unit 05 Week(s): 9 10 Topic(s): using library classes, reading documentation, writing documentation Libraries and interfaces Students will be introduced to the Java standard library and discuss library classes [CR5]. Students will be able to read and understand library documentation. The importance and value of writing documentation in software development is discuss, and students will practice how to write suitable documentation for our own classes. Classes in this chapter are Random, Set, and Map. Reading: BlueJ section(s), 5.1 5.13 Lab: Web log analyzer [CR1][CR5][CR6] (BlueJ 4.16.4 4.16.8) Exercise(s): BlueJ exercise(s), 5.1 5.70, syntax flash cards Assessment: BlueJ short answer exercises 5.71 5.73 Java Constructs: String, ArrayList, Random, HashMap, HashSet, Iterator, Arrays, static, final Terms: interface, implementation, map, set, javadoc, access modifier, information hiding, coupling, class variable, static, constant, final

Unit 06 Week(s): 11 12 Topic(s): responsibility driver design, cohesion, coupling, refactoring Designing classes Students will discuss more formally the issues of dividing a problem domain into classes for implementation. Students will be introduced to issues of designing classes, including concepts such as responsibility driven d3esign, coupling, cohesion, and refactoring. World of Zuul will be used for this discussion. Students will go through several iterations of improving the internal class structure of the game and extending its functionality, and end with a long list of proposals for extensions that may be done as student projects [CR1][CR3][CR4]. Reading: BlueJ section(s), 6.1 6.15 Lab: World of Zuul [CR1][CR3][CR4][CR6] (BlueJ 6.2 6.15.3) Exercise(s): BlueJ exercise(s), 6.1 6.48, syntax flash cards Assessment: BlueJ short answer exercises 6.54 6.56 Java Constructs: static (for methods), Math, enumerated types, switch Terms: code duplication, coupling, cohesion, encapsulation, responsibility driven design, implicit coupling, refactoring, class method Unit 07 Week(s): 13 14 Topic(s): testing, debugging, unit testing, test automation Well behaved objects Dealing with a whole group of uses connected to producing correct, understandable, and maintainable classes. Students will cover issues ranging from writing clear, understandable code (including style and commenting) to testing and debugging. Testing strategies are introduced and a number of debugging methods are discussed in detail [CR4]. Lab: Online shopping site, and implementation of electronic calculator Reading: BlueJ section(s), 7.1 7.11 Lab: Online shopping site unit testing [CR1][CR4][CR6] (BlueJ 7.3 7.4.4) Lab: Electronic calculator debugging [CR1][CR4][CR6] (BlueJ 7.5 7.11) Exercise(s): BlueJ exercise(s), 6.1 7.37, syntax flash cards

Assessment: Cumulative examination Java Constructs: no new Java constructs are introduced in this unit Terms: syntax error, logical error, testing, debugging, unit testing, JUnit, positive testing, negative testing, regression testing, manual walkthrough, call sequencing Unit 08 Week(s): 15 16 Topic(s): inheritance, subtyping, substitution, polymorphic variables Inheritance and Polymorphism Students are introduced to the concepts of inheritance and polymorphism with many of the related issues. Students will discuss a part of the implementation of a social networking site to illustrate the concepts. Detailed discussion of code inheritance, subtyping, polymorphic method calls, and overriding [CR2a][CR2b][CR4]. Reading: BlueJ section(s), 8.1 8.10 Lab: Social network newsfeed [CR1][CR4][CR6] (BlueJ 8.1 8.7.5) Exercise(s): BlueJ exercise(s), 8.1 8.15, syntax flash cards Assessment: BlueJ short answer exercises 8.16 8.19 Java Constructs: extends, super (in constructor), cast, Object, autoboxing, wrapper classes Terms: inheritance, superclass (parent), subclass (child), is a, inheritance hierarchy, abstract class, subtype substitution, polymorphic variable, type loss, cast, autoboxing, wrapper classes Unit 09 Week(s): 17 18 Topic(s): method polymorphism, static and dynamic type, overriding, dynamic method lookup More about inheritance. Continuing with the social network newsfeed lab work, students will discuss their understanding of inheritance, and why it is central to understanding and using object oriented languages. Students will further develop their understanding on inheritance and polymorphism [CR2a][CR2b][CR4]. Reading: BlueJ section(s), 9.1 9.11

Lab: Social network newsfeed (continued) [CR1][CR2a][CR2b][CR4][CR6] (BlueJ 9.1 9.10) Exercise(s): BlueJ exercise(s), 9.1 9.12, syntax flash cards Assessment: BlueJ short answer exercises 9.11 9.13 Java Constructs: super (in method), tostring, protected, instanceof Terms: static type, dynamic type, overriding, redefinition, method lookup, method dispatch, method polymorphism, protected Unit 10 Week(s): 19 20 Topic(s): abtract classes, interfaces, multiple inheritance Predator/prey simulation Discussing additional abstraction mechanisms based on inheritance, namely interfaces and abstract classes [CR2a][CR2b][CR4]. Reading: BlueJ section(s), 10.1 9.11 Lab: Foxes and rabbits [CR1][CR2a][CR2b][CR4][CR6] (BlueJ 10.2 10.8) Exercise(s): BlueJ exercise(s), 10.1 10.66, syntax flash cards Assessment: BlueJ short answer exercises 9.67 9.72 Java Constructs: abstract, implements, interface Terms: abstract method, abstract class, concerte class, abstract subclass, multiple inheritance, interface (Java construct), implements Unit 11 Week(s): 21 22 Topic(s): constructing GUIs, interface components, GUI layout, event handling GUIs Using an image viewer and sound player, students will use these examples to discuss how to build graphical user interfaces. Reading: BlueJ section(s), 11.1 11.10

Lab: Image Viewer [CR1][CR6] (BlueJ 11.4 11.8) Lab: Music Player [CR1][CR6] (BlueJ 11.9) Exercise(s): BlueJ exercise(s), 11.1 11.76, syntax flash cards Assessment: BlueJ short answer exercises 11.77 11.79 Java Constructs: JFrame, JLabel, JButton, JMenuBar, JMenu, JMenuItem, ActionEvent, Color, FlowLayout, BorderLayout, GridLayout, BoxLayout, Box, JOptionPane, EtchedBorder, EmptyBorder, anonymous inner classes, final variables Terms: GUI, AWT, Swing, component, layout, event, event handling, event listener, from, menu bar, menu, menu item, content pane, modal dialog, anonymous inner class, final variable Unit 12 Week(s): 23 24 Topic(s): defensive programming, error reporting, exception throwing and handling, basic file processing Error handling Possible problems and solutions are discussed, and Java s exception handling mechanism is discussed in detailed [CR4]. Reading: BlueJ section(s), 12.1 12.10 Lab: Address Book application [CR1][CR4][CR6] (BlueJ 12.1 12.8.2) Exercise(s): BlueJ exercise(s), 12.1 12.53, syntax flash cards Assessment: BlueJ short answer exercises 12.54 Java Constructs: TreeMap, TreeSet, SortedMap, assert, exception, throw, throws, try, catch, File, FileReader, FileWriter, Path, Scanner, stream Terms: exception, unchecked exception, checked exception, exception handler, assertion, serialization Unit 13 Week(s): 25 26 Topic(s): discovering classes, designing interfaces, CRC cards, patterns Abstraction, structuring problems into classes and methods

Starting from a clean slate, students will discuss what the classes should be to implement an application, how they interact, and how responsibilities should be distributed. Class responsibility collaborators (CRC) cards are used approach this problem, while designing a cinema booking system. Reading: BlueJ section(s), 13.1 13.7.6 Lab: Cinema booking system [CR1][CR4][CR6] (BlueJ 13.1.2 13.1.5) Exercise(s): BlueJ exercise(s), 13.1 13.17, syntax flash cards Assessment: BlueJ short answer exercises 13.8 Java Constructs: no new Java constructs are introduced in this unit Terms: analysis and design, verb/noun method, CRC card, scenario, use case, method stub, design pattern Unit 14 Week(s): 27 28 Topic(s): whole application development Concluding the course, students will integrate many topics into a cohesive project. Application design, design of class interfaces, functional and non functional characteristics and implementation details will be discussed. Additionally, topics covered earlier in the year like be applied in a new context [CR2a][CR2b][CR3][CR4][CR5]. Reading: BlueJ section(s), 14.1 14.6 Lab: Taxi company model [CR1][CR2a][CR2b][CR3][CR4][CR5][CR6] (BlueJ 14.2 13.1.5) Exercise(s): BlueJ exercise(s), 14.1 14.28 Assessment: Comprehensive examination Java Constructs: no new Java constructs are introduced in this unit Terms: no new Java terms and introduced in this unit

Unit 15 Week(s): 28+ Topic(s): AP Computer Science A Exam Prep Students will begin to focus on and prepare for the AP Computer Science A Exam. AP Computer Science A Examination is on Tuesday, May 3, 2015 at 8:00AM. Students will have approximately three to four weeks working with practice examinations and working on problems sets provided by their instructor or their text Be Prepared for the AP Computer Science Exam in Java. Reading: BlueJ section(s), 14.1 14.6 Lab: Taxi company model [CR1][CR2a][CR2b][CR3][CR4][CR5][CR6] (BlueJ 14.2 13.1.5) Exercise(s): BlueJ exercise(s), 14.1 14.28 Assessment: Comprehensive examination Java Constructs: no new Java constructs are introduced in this unit Terms: no new Java terms and introduced in this unit