- Methodology
- Setup
- Links
Salvati: "No, you need something to run towards!"
-From "Lockhart's Lament" by Paul Lockhart
1. Teaching Methodology
- Lew’s Philosophy (mind, body, soul)
- Lew's Plan (top down vs. bottom up)
- APCS Example Textbook List
- “Guide on the side, not the sage on the stage”
- "Early and often..."
- Read “good” code
- Frequent formative assessments: WATCH them code, give feedback, no penalty (Be a coach!)
- Master and apprentice model
- Programming Buddies: First line of defense
- Ten Effective Study Habits (and six not so good ones...)
- Cheating and Computer Science
- Brain Research
- Crystallized vs. Fluid Intelligence
- John Medina: The Brain Rules
- Multitasking...how many balls can you juggle...?
- Taking roll and MRI's
- Your son sleeps in class...get some sleep!
- Who left the brain scanner on..?
- Got music?
- Role Plays (GridWorld and Searching/Sorting (with compareTo)
- Long-Term Project - Creativity !! Design!!
- Ten reasons not to use a debugger by Gary Litvin
- Syllabus
- Fall Daily Planner
- Spring Daily Planner
- Homework List
- APCS API (What they get on exam). This is given to students on the first day of class.
- AP Audit Syllabi
- Most common conditions for high-performance learning experiences: (Trilling/Fadel: "21st Century Skills")
- "Very high levels of learning come from an internal personal passion."
- "Equally high levels of external caring and personal support - a demanding but loving teacher, a tough but caring coach, or an inspirational learning guide"
- Full permission to fail - safely, and with encouragement to apply the hard lessons learned from failure to continuing the struggle with the challenge at hand"
- "You don't know where the bar should be...you can do a disservice to them if you put it anywhere." - Andy van Dam
- Fall Project
- Fall Project Rubric (xls) Press Ctrl-k to add new student
- Spring Project Ideas (updated: 29 Jul 09)
- Student Project Debriefs (Jun 2011)
- Screencasting at LewTube
- Always have "Project" at end of names of project (e.g. ArrayListProject, MyCritterProject)
- Always have students use directories to organize projects for quick retrieval
- Always begin with a letter
- Use a-z, A-Z, 0-9 ONLY (no underscores)
- Use camelNotation for variable and method names
- Use "final" whenever possible
- Use MEANINGFUL NAMES!!
- Begin class names with a capital letter with CamelNotation
- Brace spacing and indentation - ALL THE TIME with if, for, while statements
- ( Parenthesis spacing ) all the time!
- Use spacing liberally…memory is CHEAP!
7. Commenting rules
-
Comment end curly brace of classes, methods, loops( while, for), and if statements
while( ... )
{
} // end while loop - Comment purpose of methods using Javadocs with @param and @return
- Comment purpose of loops (while, for)
- Comment purpose of if-else statements
8. Good OOP Programming Guidelines
- Do NOT replicate code that is already written somewhere else (CODE REUSE!)
- You are NOT coding only for yourself!! – Comment code and NO tricky stuff, please!!
1. How do I get Java up and running on my system?
If you have a Mac, you already have Java installed on your system, so you do not need to install Java. You can skip to step 2 below. If you have a Windows system you will need to install the Java SDK. Follow the steps below or watch the following at LewTube that demonstrates the process.
- Step 1: Go to the BlueJ website and download the Java JDK 6 (Java Development Kit). Save it to your computer, then run the installation program. Installing the JDK will intall the Java "compiler" and other useful tools. Remember, this is only needed if you are running a Windows system.
- Step 2: Go back to BlueJ and download the version of BlueJ for your system (Windows or Mac). Run the installation program and you are ready to go!
2. How do I create a project, java file, compile, and run a program?
If you have BlueJ up and running, then try some of the sample programs in either of the above recommended books (or any book that you may have). Follow the steps below that demonstrates the process.
- Click File | New Project. Type the name of the project. A project will keep all of your .java file(s) together for easy management.
- Click "New Class" in the BlueJ window. Type the name of the file (BlueJ will add the required .java extension automatically).
- Click on a "Class Type". The simple "Class" is sufficient to start.
- Click OK to save the file.
- Double click on the icon for the class that you just created.
- Type in the source code for you Java program.
- Press "Compile" (or press Apple-K) to compile your file(s).
- Close window that holds your java program
- Right click on the file that contains "main" and click on "void main(String [] args)"
- Click OK to run program!
3. The Javadoc commenting convention
Javadoc comments
4. JCreator (PC Platform)
JCreator
Here are some useful APCS links...
Books
Head First Java by Sierra and Bates
How to Program: Java by Deitel and Deitel
Big Java by Horstmann
Java Concepts Study Guide by Trees and Horstmann
Blue J by Kolling
Java Methods by Litvin
Barron's AP Computer Science by Teukolsky
Five Steps to a Five by Larson and Levine
The Structure and Interpretation of Programming (MIT) by Abelson and Sussman
CS Unplugged - Teaching CS concepts without a computer
CS Unplugged
Policy
Educational Policy - CS Job Projections
Reality Check - CS Jobs (U of Texas Austin)
Computer Jobs Data
Bill Gates CNET
Bill Gates YouTube
Educational Organizations
Computer Science Teachers Assn (CSTA)
Association for Computing Machinery (ACM)
Instructor Sites
Robert Glen Martin
Stacy Armstrong
Maria Litvin
Dave Reed - AP Chief Reader
Chris Nevison - Former AP Chief Reader
Art Simon
Ben Chun
The "Exploring Computer Science" syllabus
Alternate Programming Environments
Processing
Sketchpad
Alice
Dr. Scheme
MIT Scratch
Karel the Robot
Processing
Javabat
Parallax Basic and Java Bots
YouTube TankBot
YouTube MazeBot