Jump to content

Menu

AP Comp Sci A exam for a freshman?


Recommended Posts

May I ask those who used TeenCoder as part of your students' preparation for the AP exam -- did you use both the TeenCoder Java programming as well as the Android programming course?  Thanks so much!

 

I want to add one more point to my earlier reply:  DS17 created a syllabus for the AP CS A course he taught that was based solely on TeenCoder Java.  Nothing else was needed to fulfill their requirements, including the Spring AP prep course that he taught.

 

That said, I would not recommend taking the AP CS A exam without extensive test prep.

 

  • Like 3
Link to comment
Share on other sites

I want to add one more point to my earlier reply: DS17 created a syllabus for the AP CS A course he taught that was based solely on TeenCoder Java. Nothing else was needed to fulfill their requirements, including the Spring AP prep course that he taught.

 

That said, I would not recommend taking the AP CS A exam without extensive test prep.

 

What do you mean when you say test prep? Something beyond a course like the Amplify MOOC? Or do you mean that this is a test that isn't one to wing based on a general messing around with computers?

Link to comment
Share on other sites

Or do you mean that this is a test that isn't one to wing based on a general messing around with computers?

 

What I mean is that just learning Java programming is not enough.  There are test-specific skills that are necessary in order to do well on this test.

 

To that point, DS25 did some Googling on this test and found discussions from professional programmers commenting on how difficult that test is.  (He's here now.  We're threatening to administer this year's official practice test to him to see how he does! :sneaky2: )

  • Like 2
Link to comment
Share on other sites

DS17 and I each took the 2015 AP Computer Science A FRQs.  He finished in 45 minutes and got 39/40 points (maybe 39.5/40) and I finished in 1 hour 35 minutes plus 10 minutes of checking and got about a 37 or 38/40.

 

Since the answers and scoring rubric are not yet posted, I thought I would provide answers for students to be able to compare against what they did:

 

Question 1a.

public static int arraySum(int[] arr){    int sum = 0;    for (int i = 0; i < arr.length; i++)    {        sum += arr[i];    }    return sum;}

Question 1a. (alternate)

public static int arraySum(int[] arr){    int sum = 0;    for (int element : arr)    {        sum += element;    }    return sum;}

Question 1b.

public static int[] rowSums(int[][] arr2D){    int[] sums = new int[arr2D.length];    for (int i = 0; i < sums.length; i++)    {        sums[i] = arraySum(arr2D[i]);    }    return sums;}

Question 1c.

public static boolean isDiverse(int[][] arr2D){    int[] sums = rowSums(arr2D);    for (int i = 0; i < sums.length - 1; i++)    {        for (int j = i + 1; j < sums.length; j++)        {            if  (sums[i] == sums[j])            {                return false;            }        }    }    return true;}

Question 2.

public class HiddenWord{    private String word;    public HiddenWord(String word)    {        this.word = word;    }    public String getHint(String guess)    {        String hint = "";        for (int i = 0; i < guess.length(); i++)        {            String wordChar = word.substring(i, i + 1);            String guessChar = guess.substring(i, i + 1);            if (guessChar.equals(wordChar))            {                hint += wordChar;            }            else if (word.indexOf(guessChar) != -1)            {                hint += "+";            }            else            {                hint += "*";            }        }        return hint;    }}

Question 3a.

public int getValueAt(int row, int col){    for (SparseArrayEntry entry : entries)    {        if (entry.getRow() == row && entry.getCol() == col)        {            return entry.getValue();        }    }    return 0;}

Question 3b.

public void removeColumn(int col){    for (int i = entries.size() - 1; i >= 0; i--)    {        SparseArrayEntry entry = entries.get(i);        if (entry.getCol() == col)        {            entries.remove(i);        }        else if (entry.getCol() > col)        {            entries.set(i, new SparceArrayEntry(entry.getRow(), entry.getCol() - 1, entry.getValue()));        }    }    numCols--;}

Question 4a.

public interface NumberGroup{    public boolean contains(int num);}

Question 4b.

public class Range implements NumberGroup{    private int min;    private int max;    public Range(int min, int max)    {        this.min = min;        this.max = max;    }    public boolean contains(int num)    {        return num >= min && num <= max;    }}

Question 4c.

public boolean contains(int num){    for (NumberGroup group : groupList)    {        if (group.contains(num))        {            return true;        }    }    return false;}

Please let me know if you (or your student) spot any typos in the above.  If you have any questions about the answers above, please feel free to ask.  If you have a question about how your student's submission might be scored, I'm not sure I can give an accurate answer:  the scoring rubrics are somewhat inconsistent from year to year.

  • Like 1
Link to comment
Share on other sites

Since the answers and scoring rubric are not yet posted, I thought I would provide answers for students to be able to compare against what they did:

 

I went through these answers just now individually with both DS15 and DD13.  Interestingly, they each got the same questions correct and they made the same mistakes on the questions which they got wrong (or did differently than the solutions).  (And neither of them made the mistake which I made on my test.)

 

They both did well enough that they are in the running for a 5, but that will depend on their MC scores.  We'll just have to wait for the overall scores since I have no way to guess their MC performance.

 

I'll let them be done now...  :Angel_anim:

  • Like 1
Link to comment
Share on other sites

Since I took the course with the students this year, I'm considering posting some tips on preparing for both the MCs and the FRQs.  There are tips out there on the internet, but there are certain things that show up on that test that require some very specific knowledge/techniques.

 

I have started a thread to discuss this topic in some detail.  While I do not yet have the "meat" of the topic in the thread, yet, I have posted an outline of what I will be discussing.  Please have a look and let me know your thoughts on this as I begin to flesh it out.  Thanks!

 

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

We just checked the scores and DS got a 5!!!!!!!

 

So thankful for all of you who helped him (and me!) prepare for this.

 

Congratulations!  DS15 and DD13 each got a 4 on the exam.  They're a bit disappointed because they were in the running to get fives, but I'm very proud of them! :thumbup1:

 

DS17 has not heard any other grades from his class yet.  One student was having trouble setting up his account this morning.

  • Like 6
Link to comment
Share on other sites

As a wrap up, ds earned a 4 on the AP exam after doing the Amplify MOOC.  He thought that it did a good job of preparing him for the exam.  He wished that he'd put more effort into the course in the first semester.  I think that he could have benefited from using the forums.  

 

Overall I'm happy with the course and the results.  Also the staff at Amplify did a great job of answering my questions over the year.

 

 

  • Like 6
Link to comment
Share on other sites

My son got a 4 with Amplify too.  He really didn't enjoy the course and found it frustrating, but I think that is because computer programming doesn't come naturally to him. I agree the course did a good job preparing for the exam, and it wasn't overly time consuming either. The course definitely helped him eliminate Computer Science as a college major, so it was useful for that even if he doesn't get credit for it!

  • Like 7
Link to comment
Share on other sites

My son got a 4 with Amplify too.  He really didn't enjoy the course and found it frustrating, but I think that is because computer programming doesn't come naturally to him. I agree the course did a good job preparing for the exam, and it wasn't overly time consuming either. The course definitely helped him eliminate Computer Science as a college major, so it was useful for that even if he doesn't get credit for it!

 

Is he looking at colleges that don't give AP credit or that require a 5?  

 

One of the schools ds is applying to requires mostly 5's on AP exams for credit.  But that is his reachiest school.  The rest are content with 4's in most cases.

  • Like 1
Link to comment
Share on other sites

My son got a 4 with Amplify too.  He really didn't enjoy the course and found it frustrating, but I think that is because computer programming doesn't come naturally to him. I agree the course did a good job preparing for the exam, and it wasn't overly time consuming either. The course definitely helped him eliminate Computer Science as a college major, so it was useful for that even if he doesn't get credit for it!

 

This is pretty much us to a tee, same score (although I did buy 2 prep books that he read parts of since compared to PA Homeschoolers classes there was very little practice tests) same feeling about the class.  DS is glad it's over and is absolutely sure he doesn't want to take any more computer classes.

 

  • Like 3
Link to comment
Share on other sites

Is he looking at colleges that don't give AP credit or that require a 5?  

 

One of the schools ds is applying to requires mostly 5's on AP exams for credit.  But that is his reachiest school.  The rest are content with 4's in most cases.

 

He hasn't looked at college AP requirements that closely, he still has a few years.  It just seems like a lot of colleges don't give much for AP computer science because it doesn't line up with their programming sequences.  It does't really matter, It was a good first exposure to AP for him, and pushing through a class he really didn't like to get a respectable AP score was worthwhile.

  • Like 2
Link to comment
Share on other sites

My son got a 4 with Amplify too.

Congratulations!

He really didn't enjoy the course and found it frustrating, but I think that is because computer programming doesn't come naturally to him.

DS15 also concluded that he does not want to be a programmer. He already kind of knew this since he LOVES biology, but this confirmed it.

 

DD13, OTOH, REALLY wants to become a programmer. At least that's what she says. I don't know if that desire will fade before college or not. I've encouraged her to do some programming this summer, but she has done very little, and that was helping me with a little project that I had to push her hard to do. She was excited when she actually DID it, but she went back to other things afterwards. I suspect she may end up doing something else.

The course definitely helped him eliminate Computer Science as a college major, so it was useful for that even if he doesn't get credit for it!

To me, this is one of the real benefits of AP CS A. Programming is NOT for everyone and finding that out that you either do not have the aptitude or the desire in high school is MUCH better done in high school than in college.

 

One frustration I have with the AP CS A exam is that it truly discourages actual programming during the exam preparation period. I definitely felt this as I took the course along with my children. We went through the TeenCoder course in the fall and actively tackled more-and-more challenging programming tasks with the last few producing interesting graphical programs.

 

Then AP prep began in January. This pulled us out of the advanced programming environment on the computer and moved everyone onto pencil and paper. Several students actively grumbled about having to write software on paper, which is a VERY different skill that really doesn't have a real-world counterpart.

 

After the AP prep class was over, I had a programming project that I wanted to tackle. I found that even though I had learned and cemented quite a few things during prep, my programming skills had atrophied significantly. It took some relearning of the environment and the graphical aspects of Java to complete the task.

 

The AP prep portion of the course certainly doesn't promote a desire to write software the way TeenCoder does (for some students).

  • Like 5
Link to comment
Share on other sites

Dd14 found out this morning she got a 5 on AP CS!  She had a big smile on her face!

 

And partly so I don't seem too braggy, and partly to benefit others who are considering  working toward AP CS, here was our path:

 

We started in late elementary learning python, using a great book called Python Programming for the Absolute Beginner by Michael Dawson.  Actually, we got about as far as the chapter that introduces OOP before we dropped it, but I recommend the book highly for self study in python.  

 

Then dd took the Coursera course taught by the professors from Rice on python.  The she took the AoPS python class, back when it hadn't been divided into intro and advanced python.  She found that course very fast-paced and challenging and time consuming.  Even though it's been split into 2 courses now and is slower paced, I still recommend holding off on taking the AoPS class until you've had some exposure under your belt.  

 

The we worked through the TeenCoder book, but she just didn't feel like it really prepared her very well.  All the information was there, but the end of chapter problems weren't challenging enough.  Note: I believe the author of TC Java is updating this book as I write, so if you are reading this some time after I post, check whether there are improvements in the new edition.  The author is quite earnest in providing preparation for AP CS, and he responded quickly to my emailed questions.  We did provide him with detailed feedback, so I'm optimistic the new edition will be much improved.  

 

Now it was January and mid stream she joined the Amplify MOOC class already in progress.  She started at the beginning, and was 4 months behind, but had no trouble catching up, probably because she already so much programming experience, and from what I hear the class is slow paced.  Within a couple of months she was fully caught up.  We purchased the Barron's books for more practice, though she thought the practice tests were good practice and as a refresher.  

 

I hope this helps you all on this journey.  It's been such a great confidence boost for her.  

  • Like 10
Link to comment
Share on other sites

It looks like Amplify has changed to Edhesive. I can't find any info about cost, but I'm guessing it wil not be free anymore. Can anyone confirm or deny that?

 

I saw that as well, though I don't know if there is now a cost.  

 

You may also want to consider Berkeley's AP CS course which looks really good as well:  https://www.edx.org/course/preparing-ap-computer-science-exam-level-uc-berkeleyx-lucs-1x

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...