Here are some model courses for AP CS principles:
http://apcsp.org/index.php/courses
My organization employs hundreds of IT professionals and less than 10 percent of them are programmers or coders. I think this class is a great idea to introduce the variety of careers available. Our current intro class turns a lot of the kids off with too much programming.
What concerns or confuses me is putting the AP label on it. That means it is a college level course (even if taught at a slower pace). Is there a similar course to this at most universities? I don’t know since I would assume it would be too general for a computer science major and too narrow for a non computer science major. I could see it lining up with an introductory MIS class possibly.
@ucbalumnus How would you match your list to courses taught at s specific university?
The one titled “The Beauty and Joy of Computing” is modeled after CS 10 at Berkeley, whose web site is at http://cs10.org . It is intended as an introductory CS course for both non-majors and potential CS majors, although it is not required for CS majors (but those without previous experience are suggested to take CS 10 before taking CS 61A, the beginning of the CS major sequence). Not a big surprise, since one of the faculty members who developed CS 10 also contributed to the development of AP CS principles: http://www.cs.berkeley.edu/~ddgarcia/ .
It is probably more of a marketing move by the College Board, since it is unlikely that the AP credit could be useful for anything other than generic credits. But if it causes high schools to offer courses of this nature instead of courses that are just introductory computer programming, that would be beneficial in general to help high school students understand what CS is all about, whether or not they are interested in majoring in CS in college. (Putting an AP label on a course seems to stimulate high schools to offer the course, even if few colleges accept the AP credit for subject credit or advanced placement – e.g. human geography, statistics, environmental science, psychology, etc…)
Thanks for the info on who developed the course. Creative Googling reveals UT Austin was involved in developing the course and is offering it as a dual enrollment course. The Dual class will qualify for CS 302 Computer Fluency so I assume that will be what the AP credit is for. That class qualifies as one of the three required Science and Technology credits (under Part II) all undergrads are required to take.
Is AP Computer Science Principles less math-based than APCS? It does seem like it could be more creativity-based, which I would really enjoy.
Re: #24
In colleges, the courses that AP CS principles courses are modeled after have no prerequisites, since they are intended for both non-majors and those considering majoring in CS.
However, some CS concepts and programming work do require some ability to think logically (like you would in math), even though there may not be a requirement to have previous math knowledge.
My twins only have room in their schedule next year (senior year) for one of these AP courses. They want to major in engineering. I know engineers who had to take programming (Fortran, in the early 80’s; Pascal, in the late 80’s), but now, when I look at degree requirements for chemE and mechE, it is not required.
I’m all about exposing my kids to classes in high school first so that they have already “seen” it when they get to college.
1.) Do you think it matters if they don’t take either one of these AP CS classes? Because they won’t need have to take programming in college.
2.) Do you think it matters which one of these AP classes that they take? They have already taken the pre-AP Computer Science, which is basically and introduction to JAVA programming. They did fine in it but decided they did NOT want to be Computer Science majors. LOL
And I’m a business major, and I had to take Pascal in college, but I don’t know if that is required anymore.
Engineering majors commonly have to take a computing for engineering course, commonly using MATLAB. Neither AP course will be a substitute for such a course.
For non-CS majors, AP CS principles is a better choice of AP CS A, in that it should give a bigger picture of what CS is about and how it applies to other subjects. AP CS A is more for CS majors to get a head start and programming and some data structures, although many colleges do not accept it as a substitute for any of their own CS courses.
@micgeaux “1.) Do you think it matters if they don’t take either one of these AP CS classes? Because they won’t need have to take programming in college.”
For the most benefit, take CS A. It is a good intro to Java. That will be useful. They will probably need to do some coding at some point.
LOL. Thanks for the feedback, but it appears that I received two different answers.
They actually did an internship at an environmental research place one summer. Their mentor told them that they would need to learn MatLab in college. He had them begin to learn MatLab during the internship. MatLab is not like JAVA.
The engineers that I talk to have never needed to code. Maybe some data mining, but it is typically a software specific to their industry where they get special training.
Data mining might be the wrong term. I mean where they have to take the data and sort and arrange it in different ways to analyze it as well as perform various math calculations with it.
I would guess that most engineers (and other STEM majors) graduating these days will need to code more than engineers from earlier generations. ChemE probably not as much as MechE. MechE will also need to learn SolidWorks or other CAD software. MatLab is pretty common, and most colleges will teach it as part of some engineering course.
Is it the same teacher for all of pre-AP CS, AP CS A, and AP CSP at your school? If so, I’d have your twins ask that teacher how much duplication there is between the way he/she taught pre-AP CS and will teach AP CSP. Teachers have a fair amount of flexibility in how they teach CSP, so there may be some duplication between the two, depending on the teacher. Perhaps the teacher will have a recommendation about which is better preparation for engineering.
@micgeaux
Unless you are close to retirement, there is no where to hide from CS. It is impacting everything. Honestly I think every engineering student should take at least 2 CS courses in college, whether they require it or not. You will quickly realize that there are few jobs that can’t be replaced or consolidated over the next 20 years. It is better to be part of the change process than be replaced. A lot of people who thought their jobs were untouchable have discovered that they were wrong.
I am not sure we should equate CS and programming in the context of the workplace. Yes, everyone must deal with CS but in a broader sense than programming.
If your twins have taken programming and only have room for one AP have they taken the AP Physics and AP Chem available to them?
They are in a magnet program which has extra requirements. They are in AP Physics 1 this year and AP Chem. Next year they will take the second AP Physics © and BC Calculus. They are required to take two technology courses during high school. However, they can substitute Organic Chem for a tech course (just because students start running out of class “slots” and if that is your interest, they will let you do it).
They will actually have a somewhat difficult course load next year. So, if AP CS A will not really help them in college, I would take the “easier” AP CS principles. From talking to a few students in engineering, they are required to take a general computer course their freshman year when they “design” things and print them out on a 3d printer.
I decided to find out more about this new class and discovered a very interesting presentation by Computer Science Teacher’s Association.
It is called Why Our Students Need The New Advanced Placement Computer Science Principles Course
It’ a PPT file, I don’t know how to provide the correct address.
The most interesting information is on page 12 “Degrees and Jobs in the US”
According to their data
Social Sciences. More than 250,000 people graduate with Bachelor’s degree, annually, I guess. There are only 25,000 annual jobs in this area.
Life Sciences. More than 100,000 graduates for less than 25,000 jobs.
Physical Sciences. About 20,000 graduates for about 15,000 jobs.
Architecture & Engineering. About 75,000 graduates for about 80,000 jobs.
Computer Science & Mathematics. A little bit more than 50,000 graduates for more than 150,000 jobs.
They also show data for Associates, Master’s and PhD degrees.
The number of all degrees combined in Social Sciences is around 325,000 for 25,000 annual jobs.
Life Sciences: 125.000 degrees for 15,000 jobs.
Physical Sciences: about 30.000 graduates for 15,000 jobs.
Architecture & Engineering: about 120,000 graduates for 80,000 jobs.
Computer Science & Mathematics.About 110,000 graduates for 150,000 jobs.
So some kind of mandatory CS education in US high schools is long overdue. You cannot bring programmers from India or move jobs to India indefinitely.
I don’t know if this whole job market situation should be discussed in a separate topic or not…
I have seen some people saying they would like to self study but think it isn’t possible due to the portfolio. I contacted the collage board with similar concerns and they said it is possible so long as I can get the AP coordinator at my school to give me access to the portal and get a teacher to administer the mid-year assessments.
I plan to self studying, with my computer science A teacher administering the mid year assessments / assignments. She and the school were actually happy to help as I will serve as a bit of a test run.
I will probably use code.org or pltw plus collage texts for curriculum.
It may be a good course, but I doubt it will be taken even remotely seriously at colleges with top (or even decent) CS programs (even AP CS A has difficulty with this). This would not even be an introductory CS programming course at these schools.