## Thursday, December 26, 2013

### Teaching AP CompSci: Continuing CH5 Predicate Methods Quarter II Week 6

Teaching AP CompSci:
Continuing CH5 Predicate Methods!

Quarter II Week 6: 12/16-12/20
We continued CH5 this week about Conditional Statements, Boolean Expressions and Predicate Methods. We also finished Number Systems and Chip Logic! I did the #HourOfCode again on Monday as an in school field trip for our Honors 9th Grade Math classes to advertise AP Computer Science. Due to budgetary constraints, we're not offering an intro CompSci course anymore. So, Honors 9th and 10th Graders won't have that option anymore. Friday was, of course, GAMEDAY!

Quarter II Weeks 4&5: 12/2-12/13
We started CH5 this week about Conditional Statements, Boolean Expressions and Predicate Methods. We also finished Number Systems and Chip Logic!

Chip Logic:

new Lab5:

Quarter II Week 3: 11/25-11/29
We finally finished CH4 this week. We have Take Home 4 due this Tuesday. We printed Lab 4. This was a short week due to Thanksgiving, so that's about it! Next week we'll start CH6+Lab5 on Conditional Statements. Of course, Wednesday was GAMEDAY!

Quarter II Week 2: 11/18-11/22
We continued CH4 this week. We went nuts with "Can you name that number?" aka Number Systems. We converted to Base 10. We converted from Base 10. We counted, added and subtracted in various bases: BIN, OCT, HEX. See ScreenCasts below!

Quarter II Week 1: 11/11-11/15
We continued CH4 this week. We also continued "Numeral of the Day!" aka "Can you name that number?" For example, 111BIN, 222TRI, 777OCT and FFFHEX=? We wrote several classes where finals were useful such as the CashRegister class which had public static final double QUARTER_VALUE=0.25 listed after the private instance fields. We also dealt with various forms of input from main: JOptionPane, Scanner and args[0]. When using JOptionPane and args[0] we had to use Double.parseDouble() or Integer.parseInt() quite a bit!

Quarter I Week 9: 11/4-11/8
We started CH4 this week about the differences between byte, short, int, long, boolean, char, float, double variables and finals. We also started "Numeral of the Day!"

Number Systems:

new Lab4:

Quarter I Week 8: 10/28-11/1
We finished Lab3 which talks about writing your own classes from scratch. Our first TakeHome Tuesday on this chapter is due next week!

Quarter I Week 7: 10/21-10/25
We continued Lab3 which talks about writing your own classes from scratch. We are doing the end of chapter exercises as labs. We do the odds together so I can model new concepts. I am rerecording the odd exercises  as ScreenCasts for YouTube. The students complete the evens as labwork in groups. New Lab1 ScreenCasts are done. New Lab2 ScreenCasts are almost done. Sorry, there's no new ScreenCasts for Lab 3 yet. I have a link to my old Lab3 ScreenCasts. See my DropBox link for all our code so far. See links below.

Quarter I Week 6: 10/14-10/18
We started Lab3 which talks about writing your own classes from scratch. We have to come up with our own Contructors, Accessors and Mutators for the first time. We also discussed Abstraction and Encapsulation! Sorry, there's no ScreenCasts for Lab 3 yet.

old Lab3:

Quarter I Week 5: 10/07-10/11
Out sick.... However, I did start using DropBox and I added some screencasts for Lab 2, see above!

Quarter I Week 4: 9/30-10/4
This week we finished Lab2 by introducing the StdDraw class from Princeton's CS101 course. Here we used Object Based Programming to draw Rectangles, Ellipses and Lines! See all the code linked below from my PasteBin account (last link). I've also been redoing my ScreenCasts in the APCS Shorts playlist on my YouTube channel (see below too)!

Quarter I Week 3: 9/23-9/27
This week we started Lab2 based on Chapter 2. In this chapter we discuss constructing objects from existing classes: Rectangle, Color, Random and String. We started talking about Constructors, Accessors and Mutators as well a Private Instance Fields. I'm reworking the ScreenCasts as short summaries after class. I have a new playlist (see below) with only HelloWorld so far.

new Lab2:

Quarter I Week 2: 9/16-9/20
We had a good week this week! We finished Lab1 based on Chapter 1 Exercises 1-8 (see Code and ScreenCasts below). We basically covered everything you ever wanted to know about main() methods and println()! We just started talking about Chapter 2 and Lab 2, Object Based Programming (using existing classes, constructors, objects, accessors) at the end of the week.

Our networking and various hardware issues are all corrected now (except the HP Color LaserJet is still down). My networking issues required setting up a static IP on the SmartBoard or Teacher PC. So, I have access to all my sites at school, finally!

dns: 10.1.1.19
proxy: NONE! (was 10.0.0.125)

There's a bit of lag on the LAN. So, I think I'll make Static IPs for the students too as there may be a DHCP conflict. However, the student stations are required to have the proxy.

Also, most students can access the ssh server from home. Some of us have Linux running at home which makes accessing java files the same as in class. Some students are logging in using putty from WIN but cannot use GUI applications from home (WIN graphics engine does not recognize the LIN graphics engine). Some have Mac at home and find that the MAC terminal works just like the Linux terminal at home including GUI ssh tunnels using: "ssh -Y userid@173.251.48.56"

Quarter I Week 1: 9/9-9/13
APCS had a slow start this year with a lot of networking and server issues. I think we're up to snuff now. We're in Chapter 1 of Cay Horstmann's fabulous text. All we did was write serveral versions of HelloWorld. This is a fine way to become familiar with our Linux based system.

We talked about how to use our server from home using putty in Windows or a terminal in Mac and Linux land.

We also talked about CLI vs GUI, ASCII and Unicode, SSH vs FTP, javac vs java, etc. We also talked about the importance of comments and self-documenting code!

What's new this year is that I'm trying to stick to a CLI for coding in java all day every day! All we need is a shell or terminal to run javac, java and a text editor. This way we call login from home and do our work the same way we do in class even from a Mac terminal or by using putty in Windows!

new HelloWorld:

new Lab1:

Well, that's all folks!

Sincerely,

A. Jorge Garcia
Applied Math, Physics and CS

Teaching with Technology,