1. I think it is really difficult to determine even from the web site explaining these courses what is actually taught in these courses. Could you please provide me with more of an explanation about what is covered in the courses - what materials are used to teach it, etc. Also, is a programming language used in the Principles course?? If so, can Python be used?
2. Is the AP Computer Science course really just teaching programming? It seems like there is more to it than teaching just programming?? It appears from the website that this course teaches Java. Is Java the only programming language that could be used or could you use Python for the course?
This is the curriculum that I use for AP Computer Science Principles (AP CSP):
I have to say that I've been fairly satisfied with it. Students who have elected to take the exam over the past two years have done well (only one score of 2 the first year we offered it).
I tell the students that if they do all of the work in the course, they will be well prepared to score a 5 on the exam.
The curriculum is fully online, and free for anyone to use, so you can use your Google account (required) to register as a teacher to view the curriculum in its entirety.
They use MIT's App Inventor, which will very soon include support for iOS (hopefully ready for the coming school year). It's being tested by teachers and students right now in some districts around the country. Officially, Android OS is the only supported platform for right now.
I have used pre-paid Android phones from Walmart these past three school years since many students in the course have had iPhones. These pre-paid phones only cost $$40-50 dollars (there are more expensive ones, but they are not necessary). Before firing up the phone, you remove the SIM card, and you're good to go. Students connect to the internet (required for using App Inventor) via Wi-Fi. Once iOS is fully supported someday, schools will probably not need to provide devices to their students, making it even easier to use the course.
App Inventor runs in the browser, so coding can be done on a desktop browser like Chrome (Windows, Mac, Linux, or Chromebook). They link their code to their phones via Wi-Fi and can see changes to the app running on their phones in real time as they make changes to the code they create on their computer.
Super-geeky students frown at the idea of taking the AP CSP course because they believe that App Inventor isn't a real programming language. While in reality, few in the world would choose the language to deploy a for-profit app, the idea of using App Inventor as the programming language for the course is to learn programming concepts without having to worry too much about syntax, which can be frustrating to many students who are new to coding.
Recently, I had an AP CS student who was curious if he would be able to just sign up and take the. AP CSP exam without having the AP CSP course. Not being super familiar with the AP CS course, I asked the student if they did any study of encryption, the functionality of the internet, how graphics are rendered and stored, or how file compression works. He said no. I told him that general computer science concepts like those would be covered on the exam. I also let him know that 40% of the exam score would based on an app submission as well as a research project (the AP CS course AP Exam score is only based on the AP Exam). The curriculum allows for class time to complete both of the projects.
The CSP course is designed to be a general overview of computer science. It's an excellent course for all students to take to be A): more knowledgeable about computer technology and B): to find out if they have an interest to further study computer science and other computer courses that you have to offer. You could easily offer a non-AP version of the course to students at your school too.
Any language could be used to teach the course (there are several) if you did not want to use the Mobile CSP curriculum. The thing that's really beneficial to using the Mobile CSP curriculum is that everything is there that you need to do the course. It's actually designed so that anyone could take it on their own completely online, without the aid of an instructor. Every support needed is included by the curriculum writers, and everything is open-source (an awesome bonus). You could use Python to teach the course if you wanted to. It would be a matter of either learning Python, already knowing Python, or finding a curriculum that uses it (so you can learn along with the curriculum).
The AP CS course seems to be primarily focused on programming. Historically, Java seems to be the language that has been used for teaching the course, but I have heard that Python may soon be an option. I'm not as familiar with that course.