CS course before AP CS A

I have tried this in the High School Life and without any response…given the many knowledgeable parents in this forum, I hope some of you may be able to help me…

My kid’s school requires a CS course before AP CS A, and there has not been an AP CS A for a few years…
I am wondering if your kid’s school requires/provides a CS course (not AP Computer Science A), what did the teacher cover? did the teacher go to linked list? what computer language did the teacher use? ( I am not checking for the new AP CS Principles)
A reason for my question is that I realized many kids are taking CS courses in high school and I suspect it may be difficult for a kid to attempt to major in CS without any programming language background…(I have seen kids dropped out from CS major when majority of the class already knew a programming language)…hence I plan to suggest my kid to try…however, after looking at what was taught in my kid’s school, I am not sure…

AP CS principles is modeled after college CS courses that do not require any previous computing experience and can help prepare a student for the introductory CS courses for CS majors if the student chooses to go on. It is also helpful for non-CS majors in terms of understanding how CS relates to everything else.

Here is a CS course of the type that AP CS principles is modeled on: http://cs10.org

thanks. I was not checking on the new AP CS principles course…
I am interested to know what a high school teaches in a computer science course (not the AP CS A)

It depends on the high school. Introductory level CS courses vary enough that if there is no conformance to an external syllabus (e.g. the AP ones), you really need to evaluate each course on its own.

If AP CS principles is offered, it is a good course for a high school student to take, whether or not s/he may become a CS major in college. Or a motivated student can study the course linked above on his/her own.

kid can’t take AP CS principles as it conflicts with her other course… thanks for pointing out

… this is how I felt… I had a graduate degree in CS…but it was a long time ago…however, I looked into what was covered by my kid’s high school, I was surprised on how little it was covered…but I am not sure whether I set my expectation too high…but I can say it is less than “learn x in 7 days” I even thought about brining it to the BOE… I am not sure how much the teacher knew

Seems like her best option is to self-study the linked college course if she is motivated, or take AP CS principles the following year if she will be in 11th or lower grade this coming year. Or somehow rearrange her schedule to fit AP CS principles in (what is the other course and how does it fit into her overall curriculum?).

D18’s public HS now has a “Computer Science” pathway. The sequence is: Intro to Digital Technology => AP Computer Science Principles => AP Computer Science A. Doesn’t look like her HS offers a non-AP CS class.

she is senior and the other course is a major AP science course, therefore can’t really switch…I never tried to persuade her to major in CS, but she recently mentioned she wanted to major something related to STEM in college but don’t know what …therefore I suggested her to look into CS to have an idea of what it is and in the worse case, the programming language can be a tool in her major…she told me many kids struggled, but it was really a programming course as a prerequisite in the AP CS A ( it is required in our district), I felt that if many kids found the course to be difficult, chances are that it may be related to the teacher… hence I looked into what was covered last year…and felt that it may be a waste of time for her to take the course…I am just checking whether my expectation is reasonable…

@droppedit thanks. I think the computer science pathway is reasonable…

Which major AP science course, and has she taken all three basic sciences (not necessarily AP) already?

Our (large, public) high school has a Computer Science department. They offer six classes + 2 AP courses. If a student hasn’t had one of the earlier classes, they can still get teacher permission to take AP. Here’s what is offered:

Game Programming (my son took this freshman year and thought it was stupidly easy. He already had taught himself basic coding)
A class that uses CMU’s Alice for animation
Advanced Programming/Animation/Modeling (this is the prereq for AP)
Advanced topics in CS
3D Animation
Matlab (My son has taken this. Combined with his “A” in Game programming, it got him teacher rec for AP)

AP Comp Sci Principles
AP Comp Sci A

I don’t know what our high school does now, but they did have a computer programming course that you could take before the AP course. My son skipped it after talking to the teacher about what he’d already taught himself. He’d learned Visual Basic on his own, Java in summer camp (one week only) and had gone through many “how to program in Java” books. In retrospect he said he could actually have skipped the AP course and just taken the exam.

I’m a rising senior CS major.

I went to a STEM magnet high school that offered lots of CS courses, which included (while I was there): Foundations Computer Science, Accelerated Foundations Computer Science, AP Computer Science A+Data Structures (the curriculum of the defunct AP CS AB exam; AP CS A+ for short), Artificial Intelligence 1 & 2, Parallel Computing 1 & 2, Computer Systems Research. They have since added Computer Vision 1 & 2, Mobile Application Development, Web Application Development, & Mobile & Web Application Development Research. All classes except Foundations and Accelerated have AP CS A+ as a prerequisite, and are semester classes (except research, which is year-long). All students are required to take either Foundations or Accelerated by their junior year, and we also do some programming in Freshman Tech (Mathematica, and microcontroller programming). I should also add that both Foundations and Accelerated are honors courses (and weighted as such) and all the courses that have AP CS A+ as a prerequisite are weighted the same as AP classes (they’re considered Post-AP).

I took Foundations Computer Science over the summer after my freshman year, and then was the Computer Systems Research class my senior year (we’re required to do a senior project, and this is what these classes are for). I actually did not take AP CS A+, but took the first CS course at a community college summer after junior year. My senior project was actually Mobile App Development (using Objective-C and SQL), but the Mobile & Web App lab was not formed until the year after I graduated.

In terms of curriculum, foundations and accelerated are both taught in Java, with accelerated also teaching Python. The courses are quite comprehensive and advanced compared to the intro curriculums at most high schools. Foundations covers: Classes and Objects, Inheritance and Methods, Algorithms & Polymorphism, Abstract Classes & Interfaces, Boolean Algebra, Binary and Hex manipulation and calculation, Static vs Instance, Animation, Event Driven Programming, GUI Formatting, I/O, additional GUI topics, Arrays and Files, Matrices, Sorting, String Parsing, and Recursion. Our final project was to make a game; my group’s game was rather advanced and was controlled by the mouse, had keyboard shortcuts, had a boss battle where the villain would follow you and you had to dodge, could be played at different speeds/levels, etc. Accelerated covers all that at a much faster pace and also covers Assembly & Machine Language, Statistical Libraries, and more advanced GUI/control programming (making games that follow the mouse and use trig to calculate position and motion). Neither course goes over linked lists, as that is a data structures topic, and is covered in AP CS A+.

WOW @guineagirl96! What an awesome high school for someone going into CS! What are of the country is that school in?

My son goes to a small public high school that only recently introduced CS classes. They offer Honors CS and then AP CS A. Here’s the course description for the Honors class (apologies to the mods if this isn’t allowed for some reason): This course is an introductory course in computer programming. Through programming in Java, the students will learn the fundamental principles of computer programming. Topics covered will include: binary, hexadecimal and other bases, programming basics, data types, conditional statements, characters and strings, single and two-dimensional arrays, loops, methods, classes, and objects. Students who successfully complete this course will be eligible (with teacher recommendation) to take AP Computer Science the following year.

This material is definitely self-studiable. My son and a couple of his friends had picked up a bunch of programming knowledge on the way because they’re very interested. They waived into the AP course without taking Honors and did very well.

@BingeWatcher
It’s in Virginia. I should also clarify that I’m a senior in college now (I graduated high school in 2014).

I also wanted to add that not having any experience is not a problem for a prospective CS major, although it never hurts to have some. I was able to skip intro CS in college and go straight into data structures, but the vast majority of CS majors start in intro. Some of the brightest and most successful of my fellow CS majors at my university had no previous experience.

My youngest’s HS has CSE 120 from University of Washington as a required course in 9th grade. It is introductory, using topics like HTML and GameMaker. After that, they take a 10th grade course in C# before AP CS in 11th.

thanks for those responding…OP here…

I looked into the “program of studies” from a number of schools in this area, it turns out that it is not unusual to have a CS course as a prerequisite for AP CS A. I found one HS puts AP CS A as a prerequisite for AP CS Principles. However, for those schools that I looked into, they identified Java as the programming language for their first CS course. It makes sense as AP CS A emphasizes object-oriented programming methodology and uses Java. I even found two non magnet high schools also have a long list of computer science courses. One of the two schools included the introduction of data structures and sorting etc…(IMO, I think it should be introduced, but then may be I do not know what should be expected from HS, hence, one of the reasons for my post)

A reason I was surprised when I looked into my kid’s school was that the teacher introduced two programming languages which included Java. As our HS’s program of studies is vague, hence I looked into the teacher’s calendar, I found out he spent September to part of April to cover the first five chapters of the book using the first programming language to include number, strings, decision, loops and function (I have access to the book and those were the first four chapters in the book), then he moved on to Java in April, and with two months left, the class spent the time in learning Methods via programming in lab. Probably she will not be taking the course.

Some data structures and sorting are included in AP CS A, according to http://media.collegeboard.com/digitalServices/pdf/ap/ap-computer-science-a-course-description.pdf .

Note that frosh/soph CS courses at various colleges can differ. AP CS A may map to an entire CS course or part of a CS course at some colleges; it may not map well to CS courses at other colleges. So a student should not assume that s/he will get advanced placement for AP CS A (but may get it at some colleges).

Guineagirl, ah, my older S went to the Maryland equivalent of your program :slight_smile: …he was pretty much self-taught starting whn he was in elem schoo. His HS program taught AP CS A/B as a one-semester class and added lots of other goodies into it. He TA’d for it during his junior and senior years of HS. He ran the CS catalog at his HS and got to college and talked his way into graduate CS courses as a freshman.

I’ll PM you.