Computer Facilities
Each day, we will have a choice between meeting in a computer
lab or in a classroom equipped with a smart board. Both of these rooms are on
the same floor, so we can move between the two during our longer block periods.
We will also have access to a set of laptops and a wireless network. The
computers on our floor are well maintained and proved to be reliable during the
administration of the new online state performance tests. These facilities will
allow for the more than twenty hours of hands-on laboratory experiences planned
for this course.
Text/Resources
Cook,
Charles E. Blue
Pelican Java, Version
7.0.1A. Refugio, TX: Charles E. Cook, 2010.
Horstmann, Cay. Java Concepts, 7th Edition. Hoboken,
N.J.: Wiley, 2013.
Eck, David J. Introduction
to Programming Using Java. Hobart and Williams Smith Colleges, 17 May 2013. Web. 09 July 2013.
Ford, Paul. (2015, June 11). What Is Code? http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
Course Outline
Unit 1 Introduction
to Computer Science (2-3 days) Objectives/Topics
to Cover •
Parts of a computer and their roles in executing
programs •
Fetch and Execute Cycle •
Asynchronous Events and Multitasking •
Machine Language vs High-Level Programming Language •
Definitions of Top-down, Bottom-up, and Object-oriented
Programming •
Compilers and Interpreters •
Java Virtual Machine and Java bytecode •
Using JDK and Eclipse IDE (and installing them on home
computers) •
Computer ethics and social implications This is a short unit of study that will provide students
some context for the more technical objectives in the units to come. Many
topics will be covered using analogous demonstrations. For example, a list of
commands (in English) will be used to teach the first lesson. One at a time, I
will display and blindly follow each command in front of the class. This will
highlight the fetch-and-execute cycle, memory storage and retrieval, and the
importance of unambiguous code. When a student raises their hand, it will also become
a demonstration of handling asynchronous events. Many topics in this unit can
be covered in this manner. The unit will also include an explanation of why the
Java programming language is the main focus of the course, and a tutorial for
installing JDK and Eclipse IDE. Rather than having a single lesson on ethics and social
implications of computers, each unit will include a discussions based on the
Paul Ford article, What is Code?. This
article is more like a small book in its length and format. For this unit,
students will read Chapter 1. After the class discussion, students are required
to comment on the related blog post on my website. This blog will focus on the
following question: Who should learn about computer code? Introduction to Programming Using Java, Chapter 1 •
After reading Chapter 1 of Programming Using Java, students will create commands (in English) for
a lesson that reviews the vocabulary covered in one of these sections (each
student will be assigned a section). Some type of loop should be incorporated
into these commands. These commands will be “executed” in class. •
Comments on the blog post •
Students will install JDK and Eclipse IDE on their home
computers
Unit 2 Programming
Fundamentals (15 days) Objectives/Topics
to Cover •
Use of “println” and “print” •
Compiling and running programs using JDK or Eclipse IDE •
Variable types (String, int, double) and legal names •
Declaring and initializing variables •
String operations and methods •
Mixed data types and casting •
Math class methods (including random()) •
Scanner class and methods •
Computer ethics and social implications Students will be introduced to the above topics with
consideration of the syntax, semantics, and pragmatics needed for usable,
efficient, and understandable code. Most of this unit will be spent writing and
compiling code based on the exercises and labs in Lessons 1-7 of Blue Pelican Java and Chapter 2 of Java Concepts. During this guided
practice in the computer lab, I will help students find and improve upon their
own solutions. The ethics and social implications discussion will be based
on Chapter 2 of What is Code?. The
main theme will be women in computer science (historical and present day). Blue Pelican Java, Lessons 1-7 Introduction
to Programming Using Java, Chapter 2 •
Various exercises in the books •
Comments on the blog post
Unit 3
Conditional
Statements, Loops, and More Programming Fundamentals (20 days)
Objectives/Topics
to Cover •
Boolean and conditional operators •
“For,” “while,” and “do-while” loops •
ASCII codes, char/String conversions, and char methods •
Binary, Hex, and Octal number systems While students develop more complex code using loops and
conditional operators, attention will still be given to creating usable,
efficient, and understandable code. Time will also be spent on methods for
converting to and from various number systems. Most of the work in this unit
will be spent in the computer lab. The ethics and social
implications discussion will be based on Chapter 3 of What is Code?. The main theme will be the practical and social
aspects behind the development and popularity of various programming languages. Blue Pelican Java, Lessons 8-14 Introduction
to Programming Using Java, Sections 3.1-3.5 •
Various exercises in the books •
Students develop a program that uses the Intermediate
Value Theorem to estimate cube roots of values to the nearest thousandth. •
Comments on the blog post
Unit 4
Classes, Objects,
and Arrays (25 days)
Objectives/Topics
to Cover •
Class methods, state variables, constructors,
signatures •
Definitions and uses of public, private, static, and void •
Equality of objects, reassignment of objects, and
setting objects equal •
Advanced String methods •
Arrays and array methods •
Sequence, selection, and iteration •
Computer ethics and social implications Students will practice creating classes with various types
of constructor classes, variables, and methods. Although attributes such as
“void” have been used in previous programs, time will be spent defining and going
over the need for these types. Students will also experiment with instantiating
objects and how assignments are treated when multiple labels are involved. With
the introduction to arrays, they will also utilize “for” loops to start
manipulating and displaying data. The ethics and social
implications discussion will be based on Chapter 4 of What is Code?. The main theme will be based on the following
question: Will the skills learned in this class still be applicable after I
(the student) graduate from college? Blue Pelican Java, Lessons 15-19 Introduction
to Programming Using Java, Sections 3.8-3.9 •
Various exercises in the books •
Students develop a class for bank account objects. Then,
they will create a method to display account information. These will be tested
using a client program that instantiates multiple account objects and displays
them one at a time. •
Comments on the blog post
Unit 5
Introduction
to Object-Oriented Program Design and More Java Methods (30 days)
Objectives/Topics
to Cover •
Encapsulation and information hiding •
Static methods and state variables •
Wrapper classes (including Integer and Double) •
Scanner class for file input •
Formatting numbers, Formatter class, and “printf” •
StringBuffer class and methods •
Boolean algebra, short-circuit evaluation, and
DeMorgan’s Theorem •
Selection in more detail •
Computer ethics and social implications The concept of “the black box” will be defined and
discussed, including the advantages of procedural abstraction. In the computer
lab, students will be given scenarios for which: 1) static variables and
methods are required for problem solving, 2) Java’s wrapper classes are required
for creating objects when primitives are not desired, and 3) methods are
required for reading and writing to files. The ethics and social implications discussion will be based
on Chapter 5 of What is Code?. The
main theme will be based on the following question: Are there situations for
which “enterprise programming” is a requirement? Blue Pelican Java, Lessons 20-32 Introduction
to Programming Using Java, Chapter 4 •
Various exercises in the books •
Students create a “Student” class for objects that each
contain a name, various grades, and a method for calculating final averages.
They will also develop a “Section” class for objects that each contain an array
of “Student” objects and a static method for writing student data to a file. If
time permits, they will also include a method for creating “Student” objects
based on a text file. •
Comments on the blog post
Unit 6
More About
Objects and Object-Oriented Program Design (20 days)
Objectives/Topics
to Cover •
Passing by value and by reference •
Parameter passing terminology and concepts •
Passing arrays to methods •
Inheritance and polymorphism, overriding methods •
Interfaces (Comparable) and Abstract classes •
Object is the superclass of all classes •
Analyzing and testing software •
Error categorization and correction •
Exception handling with “Try” and “Catch” •
Computer ethics and social implications Students will be given examples
for which primitives and objects (including arrays) are passed within and
between methods. They will add lines to experiment with assigning values while
comparing the outputs of all objects and primitives using system.out.println().
This will give them a chance to learn the difference between passing values and
passing references and when each of these occurs in a program. It also serves
as an introduction to debugging, because they will be examining the state of
primitives and objects before and after various lines of execution. Students
will work in the computer lab solving problems related to the remaining topics
of this unit. The ethics and social
implications discussion will be based on Chapter 6 of What is Code?. The main theme will be based on the positive and
negative effects of all electronic devices being connected to the internet. Blue Pelican Java, Lessons 33-37 Introduction
to Programming Using Java, Chapter 5 •
Various exercises in the books •
Students will be given “bad” code for which they will
search for, categorize, and correct errors using the debugging tools in Eclipse
IDE. They will also create “Try” and “Catch” blocks, assertion statements, and
test classes (both unit and integration). •
Comments on the blog post
Unit 7
Standard Operations
and Algorithms (25 days)
Objectives/Topics
to Cover •
Binary versus sequential searching •
Insertion, selection, and merge sort •
ArrayList and List interface •
Computer ethics and social implications Students will analyze
algorithms and determine their Big-Oh values. In the computer lab, students
will be given problems for which recursive methods are the most efficient
solutions. They will also apply insertion, selection, and merge sorts to
various scenarios and, given a sorting algorithm, predict the before and after
state of a given array for each iteration. Students will be introduced to and
use the ArrayList class and the List interface methods. There will also be a
discussion of when an array is a better choice. If time permits, the remaining
topics in Blue Pelican Java will be
covered. However, since these topics are not on the exam, they will probably be
covered in late May and June. The ethics and social
implications discussion will be based on Chapter 7 of What is Code?. The main theme will be based on the following question:
What aspects of our lives should not involve code? Blue Pelican Java, Lessons 38-42, 44, and 50 (some lessons may
be added if time permits) Introduction
to Programming Using Java, Chapter 9 •
Various exercises in the books •
Students will add to their previous programs written
for bank accounts (see Unit 4 assignments). A new “bank” class will be created
with methods for adding accounts, sorting accounts by various attributes, and
searching for accounts. These methods will include the ArrayList class, List
methods, a binary search algorithm, a merge sort algorithm, test methods, and
other skills learned in this course.
Unit 8
Review (approximately
20 days)
•
Ensure students know what is coming on the AP Exam •
Earn a 5 on the AP Exam Blue Pelican Java, “Golden Nuggets of Wisdom” •
Students will complete one exercise per day in Blue Pelican Java leading up to the AP
exam. •
Students will take the official AP Computer Science
practice exam. After these are scored, students will review their answers, look
for areas that need improvement, and learn more about the scoring process for
the exam.
Please contact me if you have any questions or concerns.
|