I've interacted with several HS graduates from India, and those who opt for CS in HS (11th and 12th grade; usually ages 16-17) are usually taught C++ in Turbo C++ 3.0. This release of Turbo C++ was released in 1990.
That's... not great. For reference, the C++ programming language was first standardized in 1998.
Thus, most graduates never learn proper C++ in the sense that a lot of what they're taught doesn't even compile on modern compilers and they aren't aware of many new* features.
That said, this project is still pretty impressive for an HS student, even if it's written in ancient C++ and requires DOS to run :)
*new = anything introduced to C++ in the last three decades (after 1991).
However, apparently they've introduced Python3 last year, so hopefully the situation will improve :)
It was taught in Turbo C++, Syllabus was very basic ones which has basic i/o, file stream, loops, etc.
So at that time, wanted to explore something out of box, and for the 12th Grade Project, School did restrict to only Turbo C++ at that time, so the thing which was most possible solution was to hack around with that and having a mouse pointer and a GUI was a pinnacle moment at that time when the resources was limited.
But now School's Board of Examination (CBSE) did change syllabus to Python did move to Python scraping C++.
I see nothing wrong in learning progaming using old tools. The key thing is to deliver the basic concepts required for problem solving. In all honesty a student can learn "proper" C++ at a later stage.
This release of Turbo C++ was released in 1990.. That said, this project is still pretty impressive for an HS student, even if it's written in ancient C++ and requires DOS to run :)
I agree it's unfortunate that schools are/were slow in catching up to a modern programming environment. This highschooler's project was made in 2015, so the students were learning a language standard/platform that was a couple decades behind.
It makes the project even more impressive, given the technical constraints that the student had to work with, in addition to their young age.
It's a good example of the "hacker" spirit that we encourage on HN. Software (and hardware I imagine) engineers deal with similar situations often, having to work around the limitations of legacy codebases or platforms, challenging what it can be made to do.
Another comment mentioned that some schools moved to teach PHP instead of C++. Granted that's an improvement in some aspects to Turbo C++ 3.0, I think the latter might have been better in terms of learning the real fundamentals.
I've been spittings hundreds of c++ code back in 1996-1999, not knowing that it was not...standardized. You may be astonished at the complexity. The only downside was that it took minutes to compile it on 386DX and Borland's C compiler was faster with C. Inline assembly was a commonplace back in the day, so to know C/C++ actually meant to know Assembly and hand-optimize code more often than not.
I've worked with plenty of complex legacy C/C++ :).
The downsides are that it doesn't run on modern machines, is difficult to maintain, and you need to implement dozens of workarounds to do basic things that can be done in modern languages with just a couple lines of code.
I think the C++ version shouldn't matter that much. High School is for getting people hooked on programming. I learned Borland Delphi in High School and a bit of PHP and C. I later studied CS where these languages were mostly irrelevant, but nevertheless it was a good foundation for learning other languages.
C++ is not the language I'd use to get many people attracted, but if that is the only language the teacher is able to teach, it's better than nothing.
I learned C at 14 to 15 from a compiler tutorial. I did however, learn C++ from reading the C++faqs in college and today, years later I still mostly don't get internals in C++ (I don't really understand move semantics but from what I understand the compiler does a better job than me). C++ is a ballooning language and really mastering the thing seems impossible if you have a day job that doesn't involve mastering it.
Comments
OP appears to be from India.
I've interacted with several HS graduates from India, and those who opt for CS in HS (11th and 12th grade; usually ages 16-17) are usually taught C++ in Turbo C++ 3.0. This release of Turbo C++ was released in 1990.
That's... not great. For reference, the C++ programming language was first standardized in 1998.
Thus, most graduates never learn proper C++ in the sense that a lot of what they're taught doesn't even compile on modern compilers and they aren't aware of many new* features.
That said, this project is still pretty impressive for an HS student, even if it's written in ancient C++ and requires DOS to run :)
*new = anything introduced to C++ in the last three decades (after 1991).
However, apparently they've introduced Python3 last year, so hopefully the situation will improve :)
Yes,
It was taught in Turbo C++, Syllabus was very basic ones which has basic i/o, file stream, loops, etc.
So at that time, wanted to explore something out of box, and for the 12th Grade Project, School did restrict to only Turbo C++ at that time, so the thing which was most possible solution was to hack around with that and having a mouse pointer and a GUI was a pinnacle moment at that time when the resources was limited.
But now School's Board of Examination (CBSE) did change syllabus to Python did move to Python scraping C++.
I see nothing wrong in learning progaming using old tools. The key thing is to deliver the basic concepts required for problem solving. In all honesty a student can learn "proper" C++ at a later stage.
I agree it's unfortunate that schools are/were slow in catching up to a modern programming environment. This highschooler's project was made in 2015, so the students were learning a language standard/platform that was a couple decades behind.
It makes the project even more impressive, given the technical constraints that the student had to work with, in addition to their young age.
It's a good example of the "hacker" spirit that we encourage on HN. Software (and hardware I imagine) engineers deal with similar situations often, having to work around the limitations of legacy codebases or platforms, challenging what it can be made to do.
Another comment mentioned that some schools moved to teach PHP instead of C++. Granted that's an improvement in some aspects to Turbo C++ 3.0, I think the latter might have been better in terms of learning the real fundamentals.
We were taught programming in high school in QBasic (2005-2006). It was fun and we learned a lot. I don't think it matters how old the language is.
I've been spittings hundreds of c++ code back in 1996-1999, not knowing that it was not...standardized. You may be astonished at the complexity. The only downside was that it took minutes to compile it on 386DX and Borland's C compiler was faster with C. Inline assembly was a commonplace back in the day, so to know C/C++ actually meant to know Assembly and hand-optimize code more often than not.
I've worked with plenty of complex legacy C/C++ :).
The downsides are that it doesn't run on modern machines, is difficult to maintain, and you need to implement dozens of workarounds to do basic things that can be done in modern languages with just a couple lines of code.
I think the C++ version shouldn't matter that much. High School is for getting people hooked on programming. I learned Borland Delphi in High School and a bit of PHP and C. I later studied CS where these languages were mostly irrelevant, but nevertheless it was a good foundation for learning other languages.
C++ is not the language I'd use to get many people attracted, but if that is the only language the teacher is able to teach, it's better than nothing.
Also: Modern languages tend to have a lot of features that will put people off, because it's too much to learn in class probably at 2 hours per week.
I learned C at 14 to 15 from a compiler tutorial. I did however, learn C++ from reading the C++faqs in college and today, years later I still mostly don't get internals in C++ (I don't really understand move semantics but from what I understand the compiler does a better job than me). C++ is a ballooning language and really mastering the thing seems impossible if you have a day job that doesn't involve mastering it.