Jump to content

Menu

computer science and programming - help me with high school plan!!!


Recommended Posts

My dd is in 8th this year.  She has completed Tynker  and is currently taking Computer Science 101 from Coursera from a guy at Stanford.  I plan to have her learn all the languages at CodeAcademy .com next.  But... where do I go from there? 

 

What is  good plan for a girl who loves computer programming? 

Are there any awesome curriculums for high school? 

Any online classes that are the "standard" for a Computer Science focus? 

What would the steps be for a four year high school plan?  Certain classes for certain years?

Should I just sign her up for classes at the community college come Jr. year?

Do you take AP exams for this in high school?  Any other ways to certify what she knows for college admission?

 

Oh, please, please give me direction!  This is her passion and I want to encourage it, but I'm so lost.

 

Help!  I can barely turn on my computer - I feel like a blind guide. 

Thanks!!!

Link to comment
Share on other sites

Math is very important too.  I was a double computer science and math major with my undergraduate degrees because a math degree was only two more classes, and I enjoy math anyway. IMHO the programming languages are less important than the math at this point because you need analytical maturity.  It isn't just knowing the languages, it involves being able to analyze and break down the problem you need to solve.  Most computer science majors have had calculus when they start college.

 

Community college may or may not be the best path.  The college where I teach eliminated computer science because the 4-year schools were not accepting anything other than the first course we offered, and you can't get a job with an associates in computer science.  In the IT department, they offer Java as a language-focused course.  That is fine and is a start, but likely it is not going to get anybody out of their first computer science class.  The more difficult programming, the better.  As an undergraduate I wrote an operating system and a compiler, and then I did it all over again in graduate school.  These classes required many, many hours a week, so stamina is essential for a computer science major.

 

The computer science AP has undergone a lot of revisions lately, and I'm not familiar with where it is now. I understand that they're revising it more as well.  IMHO I would either take computer science at a 4-year school or find a computer science AP class.  

Link to comment
Share on other sites

Oh, please, please give me direction!  This is her passion and I want to encourage it, but I'm so lost.

 

 

I was in a similar boat last year.  eIMACS was recommended to me by parents whose kids had completed the eIMACS courses and then went into engineering or computer science for undergrad. 

 

eIMACS offers a series of three computer science classes and a separate series in mathematical logic.  My freshman thinks he wants to major in computer science.  He is 1/2 way through the second computer science class, and we both have been very happy with the rigor of the courses and the prompt instructor feedback.  I plan on having him complete all of the eIMACS courses.

Link to comment
Share on other sites

I don't think there is a real four year plan for computer science for high school.  Most high schools have useless computer classes.

 

The AP Comp Sci test is JAVA based.  Many universities do not use Java in their CS programs (for example:  http://www.eecs.umich.edu/eecs/undergraduate/CSLSA_Program_Guide.pdf ). 

 

DS, who is majoring in comp sci, tells me he has never actually used Java.  In spite of having learned Javascript, HTML, CSS, PHP and MYSQL during the wee hours of high school, he considered the AP Comp Sci test to be a waste of time. (Turns out his college has their own placement test for computers that allowed him to test out of the required basic comp sci course.)  The utility of learning Java is that you are learning basic programming, not that it is a building block for the next level.  There are more interesting ways to do that.

 

He feels that project based computer science is the way to go, as opposed to following a course.  When he wanted to build a website for the swim team, he bought an HTML book and went to work.  When he wanted to design an app for it, he Googled it and found everything he needed.   (Then I had to go back through what he had learned and figure out what to call it. Harder for me but more inspiring for him.) Now that he's a senior, he can look back and see what worked best (for him).

 

Someone linked a text with a similar philosophy a few weeks ago.  "Blue"  something or other.  It was free online.

 

I would investigate the local CC (and the local state college) for their computer offerings to see if they offer something at her level.  The local high school  and cc here don't.  The local Ivy's first computers course got reviews as being a "difficult course where you didn't learn much" from other homeschoolers.  Coursera could be your best bet.

 

PS.  Never heard of eIMAC, so I can't help you there.

 

PPS.  Someone here mentioned a computer contest, like the math Olympiad last week.

 
Link to comment
Share on other sites

Guest OffTheRails

I'm a professional programmer myself (5 years) and don't have a CS degree, and don't have a background in Maths. In fact, depending on the kind of programming (web vs game vs apps), I rarely use math. Most is algebra.

 

My advice would be to encourage her to build things. Theory will only take you so far. You will learn far more building software than reading about how to build software.

Link to comment
Share on other sites

Someone linked a text with a similar philosophy a few weeks ago.  "Blue"  something or other.  It was free online.

 

Was it Blue Pelican?  (I have a younger one interested in programming.  I'm thinking about getting him a Raspberry Pi for Christmas.  I ordered the Blue Pelican book used, just so he'd have a Java book around, even though it's free on-line.)

 

OP, since my ds will have the time, I'm planning to encourage him to use a couple of discrete math texts from AoPS, Intro to Counting and Probability and Intro to Number Theory, which I understand might help with computer science down the road.

Link to comment
Share on other sites

 

 

PPS.  Someone here mentioned a computer contest, like the math Olympiad last week.

USA Computing Olympiad http://www.usaco.org/

 

I have a younger one interested in programming.  I'm thinking about getting him a Raspberry Pi for Christmas.  

 

Some nice websites with good links for your son

Carnegie Mellon Robotics Academy http://www.education.rec.ri.cmu.edu/

Computer Science Education Week Dec 9-15, 2013 http://csedweek.org/learn

 

ETA:

Exploring Computer Science curriculum http://www.exploringcs.org/curriculum

Cambridge free Raspberry Pi lessons http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/

 

Link to comment
Share on other sites

Some nice websites with good links for your son

Carnegie Mellon Robotics Academy http://www.education.rec.ri.cmu.edu/

Computer Science Education Week Dec 9-15, 2013 http://csedweek.org/learn

 

ETA:

Exploring Computer Science curriculum http://www.exploringcs.org/curriculum

Cambridge free Raspberry Pi lessons http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/

Thanks for these links!  He already started playing around on one of them this evening.  He has done some extensive programs in Scratch and has had a little intro to Java but he's so young I'm not sure what's next - I guess he should continue to play around as he has been and learn while having fun making up his own projects (shhh, don't tell him he's learning); I'm just hoping for productive playing :)

Link to comment
Share on other sites

My ds is into programming. I started to create a plan of study and then opted basically "unschool" this part. I stay out of it entirely, just a supportive listener. Last year he put in enough hours and created enough projects to earn a credit. I'm opting to use this as an extra curricular for the rest of high school. 

 

He spends hours programming, dabbling in one area, then another. He prefers video tutorials to books and we don't have the budget for outside classes anyway. He's made some real progress and I would like to find him a mentor. I basically keep track of his hours and he gives me an update about once a week on what he's doing. 

 

He did opt to double up on math this year, Geometry and Algebra II, so he can get to calculus his senior year. The programming he did last year has helped him geometry ability. 

Link to comment
Share on other sites

I have my son going through this: http://inventwithpython.com/ which is free online and then moving to raspberry pi w/ minecraft.  I work with a bunch of programmers who code in several languages but specialize based on the platform they are responsible for.  In our shop we have Java, Python, Ruby, and Objective C primarily.  We also have PHP, HTML, CSS but those are really a different class of language in my opinion.  Although PHP could be grouped with the others, it is not looked at the same.  On top of Python, Ruby, and PHP many of our teams use different MVC frameworks like FuelPHP, web2py, Rails, Sinatra, Django.  Before you have your daughter take a bunch of different programming languages, I would recommend figuring out what interests her about computer science and then talk to someone to figure out which language is used primarily in that industry and what skills she'd need to have with the language.  For example, our API team uses Python because they have a lot of interaction with Google APIs and its different app engine tools; our web team primarily uses Ruby on Rails; our IT contract team uses FuelPHP because they can spin things up quickly and PHP is a relatively low-level entry language so they can always find someone to support it later (it seems every programmer knows PHP ;)  ; our iOS team uses ObjectiveC; and our product offering teams use whatever is the best language for the problem they are trying to solve so they each have a broad knowledge of many languages with specialization in one or two. 

 

Once you have one down it is pretty easy to learn another, the ideas and constructs behind a language translate well.  It's the stuff like how to think in logical steps to solve a problem, use an API, or an MVC that can be complicated when you add it on top of a language.  Learn the foundations of one and then learn how to play with it.  Make up programs that solve a problem, even if it's imaginary.  I think one of the posters above was right in treating this subject as unschooling and letting them learn as their interest takes them.

 

You might also look and see if you have any programming groups in your area.  We have raspberry pi, python, ruby, and open source group in our town that meet once a month.  It's a great way to get help from peers and they always welcome beginning programmers.  All but one of our groups are all listed on meetup.com. 

Link to comment
Share on other sites

AP computer science is an option in high school and yes, she can take the AP exam as outside verification of her mastery of the subject.  If she ends up taking classes at a CC or U though, the AP exam may be extraneous. 

 

Here is the online AP Comp Sci class (Java) based on the free Blue Pelican text.  We do not have personal experience with this.  Some videos are available on youtube so you can see if the format seems like a good fit for your family.  My kids have taken AP comp sci at the high school and loved it.

 

https://users-mooc.amplify.com/

 

My kids didn't particulary like the code academy.  Not that there is anything wrong with it though.  :) Just wasn't right for them and highlighted the need to remain flexible.  They both enjoyed the coursera CS 101 class though.  One son went on to take Visual basic and then AP Comp Sci and the other son went right into AP CS class.

 

DS just did a job shadow with a computer engineer at a large aviation/electronics company.  The engineer had an EE degree and said their company primarily uses Java.  The local university uses python as the starter language but later classes (data structures at least) can be done in Java.  Job shadows have been useful for my boys.  They were able to arrange them through a community college workforce development program.

 

We looked online at our the university's CS degree program to get an idea of required classes and the kind of background that would be useful.  Next year DS plans to take a discrete math class at the U (this is the second CS class in their degree program).   I believe the Art of Problem Solving math books on number theory and counting would be good preparation for the discrete math covered in CS programs.  We haven't used those particular texts but have enjoyed other AoPS texts.  We ended up getting an older edition of the text used in the class.

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...