AP Computer Science @ SMES
   
About the Instructor GENE WIE earned a B.S. Information and Computer Science at the University of California, Irvine, where his primary research areas were Software Engineering and Information Systems. He was one of the main contributors to the initial design of the Motion Capture Music (MCM) system. His work in the technology industry has included positions as a software developer, technical writer, and systems builder, where he put his skills to work in producing database access functionality for web-enabled wireless devices, testing and documenting a wide range of Universal Serial Bus (USB) products, and building/maintaining server systems for web hosting and document archival. During the late 90's he was active member of the underground art scene, managing over a hundred musicians world-wide in the composition and free distribution of original electronic music, and editor-in-chief of the scene music newsletter, TraxWeekly, which at its peak boasted over a thousand subscribers.

 

Contact Information Email: gwie@smes.org

Do not hesitate to email me 24/7 for assistance with your homework, or to explain concepts you do not understand! I check email frequently throughout the day, every day. Also, any time that I am in my classroom (29 Sillers) and not with a class you are welcome to drop in.

 

About the Course This course fulfills the requirements of the Advanced Placement Computer Science A Curriculum, and prepares students to take the designated exam in May of each year. Beyond that, I hope to give our students a strong foundation in the basic principles of computing that are responsible for improving the access to, distribution of, and discovery of new knowledge in all the academic fields that it influences. Computer Science is not a hugely limited subject only studied by "geeks" and/or the socially-challenged. It is a discipline that encompasses the ongoing need to apply technology to solve our everyday problems, using abstraction as a means to conquer otherwise impossible physical obstacles.

I engage my classes in plenty of discussion, encouraging my students to put the terminology of computing into words that are familiar to them, and context that they can understand. After the first few weeks of introduction, I assign a moderate amount of homework that aims to establish competency and proficiency with the subject matter as we cover new material in the textbook. I do not assign repetitive "busywork" with the intention of soaking up hours and believe that all of our time spent here is extremely valuable.

 

Software Resources Java Developer Kit (JDK) - Latest Windows Version, Local Download ~78MB. If you are running a windows system (XP, Vista, etc.) you need to install this (and not just the Java Runtime Environment (JRE)) to compile code that you've written.

JCreator Pro Setup File (Windows) - Version 4.0, that comes with our textbook. If you wish you can visit their web site and download a newer version: JCreator Web Site.

Please note that all of these programs/applications are Windows-based. If you work on a Mac OS X system at home, I recommend that you look at the free open source IDE Eclipse. I've used it for Java development on the Mac and it is excellent!

Programs (in Text)
Data Files

 

Class Notes How do our reading assignments work? It's quite simple actually, read the entire chapter for the unit we are working on, and try out the code examples. You can download all of them as "programs in text" in the resources section above to save yourself time typing. As of 05/05/2009 we are ironing out code convention and syntax issues in chapter four.

Chapter 1 - PPT

The material in chapter one may seem rudimentary to a lot of you, but even for an experienced computer user there are a lot of terms and facts about computing that you should know prior to jumping into writing software. Make sure that you understand all this basic material!

  • Information archival/retrieval
  • Social and Ethical implications of computing/networks

Chapter 2 - PPT

Starting in this chapter, we use the IDE...if you can't get JCreator working, try Eclipse. Pay particular attention to the section starting on page 41 that covers Java applets. The majority of software programs that we write for the web later on in the will be applets! The example on page 42 explains the layout of the code and what each section does.

Please note that all of the current assignments need to be *applications* so that you can use the general output window for the system.

Chapter 3 - PPT

This chapter is the primary material that covers the basics of writing code in the Java language. Starting on page 63 there are a series of examples that demonstrate how do display output, format output. We also cover escape sequences and the basics of code convention.

  • (Ungraded) Pop Quiz 1 - PDF

    If you can't answer everything on this quiz correctly, and discuss the terminology in your own words, READ CHAPTERS 1-3 OVER AGAIN, and do not hesitate to ask me, either by email or in person to explain concepts to you.

Chapter 4 - PPT

Here we begin solving basic arithmetic problems using the Java language. In addition to creating, storing, and manipulating variables, we also look at user input and the nature of errors (syntax, logic/semantic, run-time/exception).

  • Lab 1 Part 1 - PDF

    Some simple errors that I am seeing in your assignments to date:
    1. Install the JDK *before* you install JCreator, otherwise you will not be able to compile your code.
    2. In the JCreator configuration, in the section for JDK Profile, make sure you point the program to where your JDK is installed; for windows machines this is usually C:\Program Files\Java. The specific menu location is:
    Configure->Options->JDK Profile. Click "New" and select the path.
    3. CREATE A NEW APPLICATION, NOT AN APPLET! We're not putting applets together yet...that's for stuff on the web, later.
    4. All statement lines end with a semicolon!
    5. Whenever you use the print(), println() or format() methods, all text that you are outputting needs to be surrounded by the quote " " marks.
    6. The name of the file (FunWithMrWie.java) that you are writing your code in should match the name of the class object, for example:
    public class FunWithMrWie {
         // all your code goes here
    }

    Some suggestions:
    1. Named constants are a must. In our small programs here it may seem like a waste of time to name every single constant by creating a new variable for it, but good coding practices will roll over into your larger assignments.
    2. When you have errors that pop up, don't give up! Take a look at the output window...the problem is usually the first thing in the window, and if it's something simple, like forgetting a curly brace or semicolon, it is easy to see and  fix.
     
  • Lab 1 Part 2 - PDF

    This in-class assignment should be completed by the end of the block, Thursday, September 25. If you do not complete it in class, you will need to finish it over the weekend. Email your code to Mr. Wie, and bring your own completed copy to class on Monday, along with any questions you might have for the class discussion. As I will be gone through Wednesday with  my 7th grade advisory on their Marine Biology retreat, Lynn Ozonian will be working with you.
     
  • Quiz 1 Preparation: Major Review - PDF | DOC

    Once in-class discussion regarding Lab 1 Part 2 is complete, please begin this individual/group assignment to prepare yourselves for the first quiz.
     

Chapter 5 - PPT

  • In-class assignment: Write an application that allows a user to play a game of Rock, Paper, Scissors with the computer (see page 114 of the textbook for the case study). Before writing any code, draw a flowchart that outlines the algorithm of the gameplay. The purpose of this assignment is to check your understanding of conditional statements and compound boolean expressions. Implement the game using both if-else and switch statements.

Chapter 6 - PPT

  • In-class assignment part one: Using while: Prompter (pg. 133) and NumbersSum (pg. 134). Using for: Factorial (pg. 136).
     
  • In-class assignment part two: String class usage, AccountSetup (pg. 139), FormalGreeting (pg. 141).
     
  • Lab 2  - WordGuess (pgs. 141-146, including modification). Please implement this yourself in whatever manner you wish (using any conditionals and libraries we have learned to date). Please attempt to do it yourself without simply copying the implementation from the book. Creativity counts!
     

Chapter 7 - PPT

  • In-class assignment: TempConverter, SpanishNumbers, DisplayBox (1 and 2), GradeConverter + Mod.

Quiz 2 Review Assignment - PDF (This is due before the quiz)

Quiz 2 Part 1 - Written - PDF

Chapter 8 - PPT

  • Look over the notes I handed out in class, and read the corresponding chapter material. It is absolutely critical that you understand the concepts of CLASSES and OBJECTS. Combined with the writing of methods from chapter 7, this constitutes the fundamental concepts that make up modern object-oriented programming.
  • In-class assignment for Tuesday November 25th: Work through the Review exercises in the text, up to the end of page 187. Email me your code for Circle, Rectangle, and Coin upon completion.
  • Complete the BANK Application.
  • Team Project 1 - PiggyBank and the client code. Discuss implementation decisions in class.
  • Team Project 2 + Homework - DOC
  • HW3: GameOf21 + Bowling (see handout above).

Chapter 9 - PPT

  • HW4: All in-text review problems due (code by email) by midnight, Monday January 12.
  • SEMESTER ONE FINAL EXAM: In lieu of a final exam, there will be a short, in-class programming project covering the basic object oriented principles: methods, classes, and inheritance/polymorphism, which will take place on Wednesday and Thursday of this week.

Chapter 10 - PPT

  • We will be doing all of the in-text review problems. If you have not yet completed all of them, please do so, and contact me with any issues. The major concepts for this chapter are: Arrays, ArrayList.
  • Semester 2 Homework 1 PDF | DOCX - Due 9 Monday 2009 class

Chapter 13 - PPT

  • Array Element Cards (for printing) PDF | DOCX
  • Semester 2 Homework 2 PDF | DOCX - Due 18 Monday 2009 class

Chapter 14 - PPT

  • Turn in code for Stack, Queue, and Linked List!

Chapter 11 - PPT

  • Complete in-text review questions in preparation for following work on the AP case study which uses these components.

AP Case Study: GridWorld

  • Answer all questions and code all examples in sections 1-4 of the case study. As we are only doing the A level exam, you are not required to complete section 5 which is for the AB level exam only.
  • Your entire binder for the Case Study with answers for the in-text questions, as well as ALL code in hard copy as well as electronically needs to be submitted to Mr. Wie on Monday, April 6 at the beginning of class. This constitutes a huge majority of your grade this semester!

AP Exam Review

  • Each of the following practice exams focuses on a grouping of topics based on our progress through the material this year. An answer key is included at the end of each one of these tests:
  • The following "long exam" includes 150 questions for every single major section covered in class. Use it to gauge your preparedness and be sure to spend time reading up on topics that you might have missed. The answer key will help you identify which sections you need assistance on.
  • As always, come and see me if you have any questions or concerns that you cannot find an answer for either in your textbook or supporting materials.

 

 

PPT = Microsoft PowerPoint File
PDF = Adobe Acrobat Portable Document File
If you cannot open the Microsoft Office files, let me know and I will post PDF versions.
Go to www.acrobat.com for PDF reader software from Adobe.

   

 

 

 

 

Guess what we're going to look at for a little bit further away in the future? :)
http://www.jfugue.org