We don’t have any computer science courses in our district. Indiana has K-6 standards that we’ve started to introduce, but nothing to carry those lessons up through middle school and into high school. AP Computer Science (Java) is taught at one high school each year and enrollment has been variable.
Any suggestions about what to include or avoid are appreciated!
I was very much in this position a couple years ago. My job involved growing our CS program from a small AP CS A course that students took with no prior background to something more substantial and vertically articulated. In so doing, I spent a lot of time researching different resources, programs, curricula, etc. Writing a curriculum from scratch with my background was not an option, and I had stumbled upon CS50 through edX. So the natural thing was to look into CS50 AP as an adaptation for AP Computer Science Principles.
Principles is, IMHO, a great place to start since it doesn’t require background in CS, has the pull of an AP course to draw in student interest, and works well as a feeder to AP CS A. Partnering with Harvard to access their training, curriculum, resources, and community made all the difference in getting off on the right foot. Plus, the curriculum is free! You can access it here.
In terms of web development, I did integrate some of freeCodeCamp into the CS50 AP chapter on web development, and as far as free, non-curriculum resources go, it is the one I have found most useful. It’s project-based nature makes it suitable for classroom assignments.
I have also developed a course for next summer adopting Apple’s Intro to App Development with Swift book. Again, it is free (assuming you have a lab of Macs available) and fits nicely into a unit-structured, project-based curriculum.
I should say that I do this all in a 1:1 Chromebook environment. We use Cloud9 for both CS50 AP and most of AP CS A.
I could speak on this topic at great length since it’s been my focus for the last 2+ years, so please feel free to reach out with more thoughts/questions.
Can you clarify at what grade level you are hoping to implement a new CS course?
Right now, it’d be 9-12 for an elective credit. I’m not even looking at creating a feeder for AP. We’re really lacking in interest-level courses for students.
I agree that the CS Principles course would be a good feeder, I’m just concerned that the AP designation will actually deter students who would otherwise be interested. We have some teachers who are looking at methods of getting more girls and minorities into math and science electives, and this would be a component of that program. I think CS50 would be a good base, but not something we can do wholesale.
It is interesting, though, that you’re using Chromebooks, too. We have several mobile Chromebook labs that could be converted to help with space restrictions.
Thanks for the suggestions.
You can also look at Berkeley’s Beauty and Joy of Computing (BJC) or Mobile CSP (http://mobile-csp.org/) for other CSP options. BJC uses SNAP! for programming, and Mobile CSP leans to mobile app development. I also know a number of HS teachers have used Python as well for the programming portion of the CSP course. The requirements for CSP are intentionally minimal to allow for a variety of options to be used. The focus is more on a breadth of CS than a programming heavy approach like CS-A (though some of the CSP curricula do lean more toward programming).
I can also direct you to http://www.teachglobalimpact.org/, which has a collection of CSP materials and relevant news posts curated.
PS - You will need to google BJC, as I am apparently not allowed to have more than 2 links in my post…
Not really my area of expertise, but you might want to investigate Bootstrap. They have curricular materials targeting grades 6-12. Everything runs in the browser. They used to use a variant on the Scheme programming language and are moving now to a Python-like language called Pyret which is designed explicitly for education.
Apart from programming you can add course based on data structure and database