I don't know if that's novel in the US, but this is pretty common here in Argentina.
Secondary school here takes 5 years. Where I did it (1997-2001), before starting the 3rd year (14 years old), we had to choose the speciality (software engeneering, chemistry, civil engeneering, media and communications, musical production, business administration, electronic engeneering, graphic design).
I choose software (while most of my friends of that time choose electrinics engeneering).
The next three years we had lots of subjects related to CS.
This is what I learned there:
- Computer architecture,
- Networking (osi model, ip stack, that sort of things), algorithms,
- Structural programming (1st year), then oop (2nd year) (with C and C++), then Events Driven Programming with VB6 (3rd year)
- systems analysis and design, database design (er model)
- internet programming (back then, that was ASP, CSS and Javascript)
And all along the final year, we had a subject called Final Project, where we had to develop (from the requeriments to the implementantion) a REAL system (mostly done for family companies or NGO's ).
When I finished high school I was really prepared to start working, so I did, while at the same time, started going to the university. I can tell that it was REALLY easy to do my grad career because of my background. Even when at University some topics where seen in much deeper detail, i did it much faster than other people, because I already had my mind used to that things, and I just needed to learn the details.
But then again, even when I keept studing CS, some of my high school classmates chose other things to study (e.g: medicine, law school, economics, etc). But I think anyway that I must have to be a good experience for them, at least to learn that CS was not for them, and dont lose their time later.
I need to add that it was a private school (sadly, public school here is going down the tubes). And that CS subjects were additional to the standard subjects (maths, literature, geography, history, foreign language, philosofy, sports, etc).
I choose software (while most of my friends of that time choose electrinics engeneering). The next three years we had lots of subjects related to CS. This is what I learned there: - Computer architecture, - Networking (osi model, ip stack, that sort of things), algorithms, - Structural programming (1st year), then oop (2nd year) (with C and C++), then Events Driven Programming with VB6 (3rd year) - systems analysis and design, database design (er model) - internet programming (back then, that was ASP, CSS and Javascript)
And all along the final year, we had a subject called Final Project, where we had to develop (from the requeriments to the implementantion) a REAL system (mostly done for family companies or NGO's ).
When I finished high school I was really prepared to start working, so I did, while at the same time, started going to the university. I can tell that it was REALLY easy to do my grad career because of my background. Even when at University some topics where seen in much deeper detail, i did it much faster than other people, because I already had my mind used to that things, and I just needed to learn the details.
But then again, even when I keept studing CS, some of my high school classmates chose other things to study (e.g: medicine, law school, economics, etc). But I think anyway that I must have to be a good experience for them, at least to learn that CS was not for them, and dont lose their time later.
Hope it helps!