Showing posts with label ap. Show all posts
Showing posts with label ap. Show all posts

Friday, November 25, 2016

60 80 100 Quiz in AP Computer Science


One of the bigger issues in getting ready for the APCs exam in May is transitioning from coding on a computer, with full support of a compiler with error checking, to writing code down on paper.

To get the kids used to doing this I use the 60-80-100 Quiz.These are short problems where they wrote out the code. If they get it right, they get a 100. Make a few mistakes they get an 80, and if the code doesnt resemble anything we are working on it is a 60.

The rationale is an 80 is not likely to tank your grade for a marking period. they get immediate feedback and start to build confidence in their ability to write out code.

Early in the year we do simple things like:
write an if statement to test of both x and y are equal to 67;

When I grade these I am checking for three main things:


  • did they set up the if correctly
  • did they use &&
  • did they use ==


Super quick and easy to grade. I grade them in class while they do some practice on the computers and I hand them back immediately. They get instant feedback while they are still thinking about it.

As the year moves on I up the difficulty, trying to mimic the style and complexity of the Ap Free Response questions.

So later we might try something like:

Write a method that accepts an ArrayList <Integer> parameter and removes all even numbers.

again I am looking for specific things here...but this also lets me reinforce things like:

  • How do you get an int from an Integer
  • Should you use a for-each loop if you are removing items form the ArrayList

Notice also that it is set up as a method. Since many of the Free Response questions are in the context of a method the more practice they have with using methods, the better.
Read More..

Sunday, October 30, 2016

AP Computer Science Report Virginia is for some Coders


The AP data is out for 2013. Some great increased nationwide. AP Computer Science went from 26,103 to 31,117 total exams given, a 19% increase. This was the highest increase out of all of the subject areas. But keep in mind AP Calculus had 282,814 exams last year, so we have a ways to go.





Virginia had 1655 AP Computer Science  exams with a mean score of 3.12. Last year we had 1430 tests with an average of 2.98. Over the past 5 years there has been an 81% increase in the number of APCS exams given. This year was also the highest mean score for the past five years, so some great progress has been made.

According to the state report card 67,805 students took AP exams in 2013 (data here). So teh APCS exam accounted for about 2.5% of the overall number of AP exams given.

Which all sounds great, until you start to look a little deeper.

When you look, in 2013 the number of black students taking the exam was 3. Our max in the past 5 years was 6. Six. That year my personal AP class was 1/3 of those African American students.

Demographically Virginia is about 20% black. With roughly 375,502 students enrolled in Virginia public high schools last year (2013 enrollment data) that means we have roughly 75,000 African American students at the high school level, and 3 took the AP Computer Science exam.


If we randomly assigned students electives we would have fared better.

And you can look at any of the subgroups and see the same trend. For instance for the 2013 exam 25% of the 8 Hispanic students to take the exam sat in my classroom.

Now Im a big believer at starting with data and getting to the stories underneath. The bottom line in Virginia is access.

For instance, Richmond city schools, a predominantly African American school district has no computer science classes. None, zippo, zilch.

This is not about diversity for diversitys sake. This means these kids do not have access to jobs. According to the Bureau of Labor and Statistics Virginia is 4th in the nation for jobs in this area, but 12th population wise. This means we have the highest concentration of jobs nationwide in computer science. Washington DC and Virginia rank #1 and 2 for salary nationwide - so these great jobs cannot be filled by huge numbers of our children. A child sitting in Kindergarten in Richmond City Schools today may never even know this field exists, literally blocks from the front door of their school

And at a deeper level, computer science is the tool we use to solve human problems. Being the person holding the tool means you get to decide what is a problem and what gets a solution. These numbers mean these communities do not get to participate.

So to change the data, we have to change the stories. Every high school in the state needs computer science classes that are rigorous and relevant for its students. That means trained teachers and a working curriculum. Kids and parents need to know that this is an option for them, that they can create using this tool. They need to be able to tell their stories as we build the future.

A few things to put Virginia in Context:

  • Virginia has not adopted common core
  • Our K-12 end of course tests are called the SOLs (Standards of Learning). Yes, really
  • AP Computer Science counts as a 4th math credit here, but only if you are going for an advanced diploma, and you have passed Alg II. were working on it
  • We are a Commonwealth, which means our school systems are driven at the local level, not by top down policy and curriculum from the state.
  • Out legislature meets either 4 or 6 weeks a year, thats it. 



Read More..

Saturday, October 29, 2016

AP Computer Science Exam Review Worksheet

My favorite cartoon - Savage Chicken


Here are some things I use with my students for last minute AP exam review. My goal is not new learning at this point. I focus instead on reinforcing skills that will help them move up a point or two in their score.


  • APCS Flashcards
  • Top Ten things you need to know
Read More..

Tuesday, October 25, 2016

What are we doing after the AP exam

This question pops up every year with my students...we have six weeks after the AP Computer Science exam, are we doing anything?

Nope, Ive decided you can just nap for six weeks of school. That sounds reasonable.



They know me well enough that there is a lot of eye rolling at this point. After fifteen years teaching high school I have learned eye rolling equals success. It is my job to annoy them occasionally.


Usually I pick something new to everyone and we work through that. Sometimes we do advanced data structures like linked lists, java graphics or a new language.

This years group is too eclectic for that to work. I have students that already know VB, C++, Python and just about anything else I could throw at them. They have done NASA summer internships, built robots and held part-time jobs doing web design.

So I tried something new, this year they got to pick their own projects.

The ground rules were:
  1. Do something new to you
  2. Do something non-trivial (something that will take several weeks to complete)
  3. Amaze me
I had them write about what they were going to work on first. So far this has kept them much more engagged then they normally are this time of year. Plus it has been a lot less work for me.

In short, I have been amazed. Plus, anything that cuts down on the amount of nagging I have to do everyday is a total win.
Read More..

Sunday, September 11, 2016

AP Computer Science Teacher Training

There are some major changes happening to the AP Computer Science A course next year (new course description here). First and foremost the GridWorld case study is no more. Replacing it are the new AP Computer Science Labs (more on those here).

One of the best ways to keep up to date with changes are the AP Summer PDs.




Read More..

Thursday, August 4, 2016

Recruiting for Computer Science the AP Potential Report

For many high schools it is recruiting season. If you school has an AP program there is a little kown report, called the AP Readiness Potential, that can help you in attracting kids to your classes. This is an especially helpful way of identifying girls and other groups that may not already be taking your Computer Science classes.




Basically this report takes students PSAT scores and predicts the AP tests they are statistically likely to score well on. It is based on a past correlation between past PSATs and AP exams.

While we do not yet have this for APCS Principles, since no AP tests have been given yet, we do have it for the current APCS class.

A new feature is teachers can now log in to see the reports. To access the report you will need an access code. You can get this code from the person in your building that coordinates the AP exams. I find that person often doesnt know about the report, or have any idea of how to find the code.

You can call to get your schools code. The number is 866-630-9305. You just have to identify yourself and your school.

The login for the site is here. Youll need an account for AP Central. Once you pull the report the site even has sample letters to send home to parents. I have found letters directly to parents to be a powerful way to attract kids to computer science.

Long term I am very curious to see how this test correlates for the new APCS Principles class. Since much of the assessment for this course will be written it will be interesting to see if a correlation with the writing section of the PSAT.
Read More..

Monday, May 9, 2016

Arrays in AP Computer Science


Ive been asked by a few folks for some help with teaching 1-D arrays in the AP Computer Science class. I went ahead and posted it in a public drive in Google Docs:

APCS Arrays

I am sharing with the full understanding that I cannot type or spell, so the typos are a part of what you are getting. I am also pretty sure these are not complete - I add a lot as we go.

We start 1-D arrays as a part of our third unit where we go over Strings and Arrays. Arrays are such a big part of the AP I think the earlier they are introduced to them the better. Then for each unit we cover we can use arrays as a part of our practice problems. So when we do methods we can practice arrays as parameters...you get the idea.

If you are interested here is my pacing guide for the year. We start after Labor Day, so it is tight. I am still adding dates, but it should be complete through May by the end of the week.


So, how do I teach arrays?

First off, I flip. So for homework the students copy the notes. This means in class we have a lot more time for practice.

Every day they start off with a fast start that reviews the topics we have covered. We then do a lab lecture or some some type of dependant practice. In a lab lecture I put small problems on the board and they code them. So for 1-D arrays I might ask them to declare an array of 15 decimal values. Then I check to see that they did it correctly. Next we print the values int he array, and I check. Then we initialize the array to the values 0.1, 1.0, 2.0, 3.0, etc. and I check. Point being this lets me catch the tiny mistakes they make in the beginning and they are more confident in their coding.

For the 1-D arrays we do a practice power point where the students write out their answers on whiteboards to make sure they understand the indexing.

Once we have done some practice together they work on independent practice and I float around and answer questions and generally nag them to get to work.

Really 90% of teaching is nagging, dont you think? This is just how I structure my nagging.
Read More..

Monday, April 25, 2016

AP Computer Science Mock Exam

For the past few years I have been involved with VASS , the Virginia branch of the national NMSI AP readiness grants. They work in increasing access to college by implementing rigorous AP programs in STEM areas in public schools.



The program has a specific methodology for increasing student success in AP classes. There are a ton of things they offer teachers, and Ill write about those separately.

The method they use for students could be implemented anywhere. This includes:


  1. Weekly hour long structured tutorials in AP classes. This is not just "does anyone have any questions?" but a structured session that focuses on elements of the curriculum that will most impact student success. I spend a lot of time in these sessions on tracing code and writing code on paper.
  2. External prep sessions that cover course topics more in depth. We do these online and each session lasts an hour. 
  3. The annual mock exam. Students sit for an AP style exam as practice. We use the released 2009 multiple choice questions (purchased) and the free response from the previous year. The results are used to steer the review for each individual student.


I have been grading Mock Exams for VASS  all this week. It is so nice to see my students arent the only one making goofy mistakes. After grading over 50 exams I have noticed a few patterns that might help you prepare your students for the free response section.


  1. Many of the questions are set up as methods:
    1. Do not rewrite the method header or make changes to the header! (this one boggles my mind)
    2. If they give you parameters - use them
    3. Do not re-declare the methods as local variables
    4. If the method returns an int, declare an int and return it
    5. If the method is void DO NOT RETURN A VALUE
  2. These questions are usually in a larger class. Look for how the data is stored - probably as an array, ArrayList or a 2-D array.
    1. Do not re-declare that object locally. Use the one from the class.
    2. Do not use [] with an ArrayList
    3. arrays and Strings use .length 0 ArrayList uses .size

  3. Look for patterns- especially if you are stuck. You can sometimes steal a few points even when you have no idea how to solve the problem.
    1. simple array? put in a for-loop
    2. does it ask a question? Youll need an if-statement

In the next week I am thinking of putting all of the free response question prompts from the past 5 years on a sheet of paper, handing out highlighters, and letting them look for these patterns.

I wouldnt do these all at once, but as you do practice coding on paper encourage them to think in terms of patterns. Even the best programmer can get stuck when having to code on paper. These tips should help them from making silly mistakes.


Read More..

Tuesday, April 5, 2016

AP Computer Science Case Study

For the AP Computer Science class I try to incorporate Gridworld throughout the year. Each unit we do at least a half day of lab excesses relating GridWorld to the material we just covered.



I want them very comfortable with using it. I have also found it is a great way to introduce topics. "Remember when we did that GridWorld lab and it used the word extends...?". It is a great way to give them a framework for some of the more abstract stuff we cover.

Here is my LabManual and the java files that go with it. BoxBug is from the student manual AP provides.

I have to say my favorite is the RockMonster - originally it was the RoachMotel (bugs check in but never check out), but sadly my kids didnt get the reference. I am sure the WS are "buggy" and are offered as is. Ill b updating them as the year goes on.
Read More..

Monday, March 7, 2016

AP Computer Science Mastery Packets

Ideas for Badges


This year I tried flipping in my AP Computer Science class. Overall the results were pretty good - of course I wont know for sure until the scores come in next week. (Post from last summer on flipping)

One of the core pieces this year was mastery. I had several students that were weaker than normal with the basics of programming. It really doesnt matter how well you understand inheritance, if you cannot write an if-then statement you are toast on the free response section.

So as a part of flipping I started doing mastery quizzes. I started them at the beginning of second semester. The quizzes are short and sweet. Fast to take and easy to grade. It gave me a quick picture of who needed to review the basics.

If the student got a 90 or above they had demonstrated mastery. If not they had to come in to review before retaking the quiz.

If you are interested you can use the quizzes posted here. They are not complete (is anything ever). My retakes for ifs/loops happened on the board not on worksheets. As I finish them I will post them.

I have thought about designing badges to cover these basic skills. Rather than making this a graded assignment they retest until they earn their "badge".


Read More..

Friday, February 26, 2016

AP Computer Science Doldrums

So - what are your AP kids doing for the rest of the year?

Here in Virginia school doesnt get out until June for most school districts. This makes for a lot of time to fill.

Ted Talks
My AP kids do end of the year projects. I leave these pretty unstructured. Pick something available in the lab and make something amazing. Thats the rule.

So I have kids working on 3-D printing projects. Some are working in Python. Last year one person went totally old school and really delved into QBasic.

Overall this has been pretty successful, but as we all know at the end of the year we are competing with spring and senioritis. So to make sure they dont go completely off the rail this year I am trying to make them write - I know, theyll love it, right?

Please allow me my delusions, it has been a busy year.

Each block I am showing them a Ted Talk. They respond to the videos using Piazza. I collect these as a quiz grade just so I have something to nag them with. Sometimes keeping them focused is about bribery and threats. Whatever works.

Whenever I do discussion board topics in computer science classes I have a very structured set of rules for them to follow. I am trying to transition them to academic writing and beyond LOL.

So I am curious - how is everyone else handling this wasteland of time between the AP exam and the last day of school? What works for you?

Oh, and if you are interested, here are my discussion board rules:


We are going to be using the discussion board for the rest of the year. Your participation on the discussion board will count as a quiz grade each marking period. Some guidelines:
  • Use full sentences. No abbreviations or text-speak.
  • Be nice!
  • No bad words
  • No personal attacks
Ways of participating:
  • Be prepared – do the reading and share your information
  • Offer a new fact
  • Respond to other people’s ideas
  • Ask questions
  • Answer questions
  • To get full credit you must have at least 3 posts     

Read More..

Saturday, January 30, 2016

Mind Mapping the AP Computer Science Exam


This year we tried something different for teh final APCS exam review. Weve been doing multiple choice and free response problems for weeks now, and really we are at the point where they either know it or they dont.

So what I want is for them to remember all the connections - those picky details that can make a huge difference. Like when do you use == and when the .equals? Or when to use super vs this.

So I gave them a list of terms from the APCS curriculum (see below) and I had them cut them out to make a mind map. They had to draw and explain the connections. They worked in groups on this and there was a lot of great discussion today as they debated where the pieces fit together.

The list isnt complete - I keep remembering things I left off. The kids found most of those as they built their maps.


.length()
.move
.random
.remove
.size()
.turn
++
= =
abstract
accessor
Actor
array 1-D
array 2-D
base case
boolean
Bug
class
Color
concatenation
constructor
Critter
double
extends
Flower
for
for-each
if
implements
int
interface
List
Location
Math
method
mutator
new
Object
object
overload
override
parameter
primitive
private
public
recursion
return
Rock
row major
toString
void
Read More..