8 ms·
#include<conio.h> #include<dos.h> This appears to be for DOS, and I'm betting this was written in Turbo C++. From what I've heard from my friends, almost a
by notRobot 6y ago
#include<conio.h>
#include<dos.h>
This appears to be for DOS, and I'm betting this was written in Turbo C++. From what I've heard from my friends, almost all schools in India still use Turbo C++ (in DosBox) to teach C++. Ew.
- magnio 6y agoWhat is used in other countries? I assume Visual Studio or Eclipse? We used Code::Blocks in our high school.
- notRobot 6y agoI've also heard of gcc/g++ being used along with vim or Geany.
- pjmlp 6y agoWhen I was a TA (late 90's), we were using Windows 98 with Visual C++. Memory is fuzzy, I think it was version 5.0. Each student had their own area on a file server which would be mounted locally and the exercises and respective support material for integration into VS as per exercise were available on the server as per lab session.
- tuankiet65 6y agoIf it's still the case then the Vietnamese curriculum (in middle and high school) still teaches Pascal using Turbo Pascal. They (the Ministry of Education) probably doesn't feel like modernizing it though because it's not widely taught, and from my own experience most students (and teachers!) neglect it anyway.
- andi999 6y agoActually I think TP is quite good for that. Compilation time is (really) fast, and it is close enough to the metal to learn about the foundational structure of the computer and programming languages; the language is well defined. Syntax is (sort of) shared by ada if one later needs production grade. Of course, the counter argument is, that it is kind of boring (except for some kids). Alternative is a language, where you easily can get things done. So maybe Python, but thats about it. I am still sad, that LOGO is not used anymore (there is much more to logo than turtle graphics).
- udbhavs 6y agoYeah, we were taught the basics of C++ in 7th grade using Turbo. However, the two major boards of education here use Java and Python in high school now so from 8th grade onwards we did most of our work in BlueJ (examinations still happen by writing programs on paper, though).
- cpach 6y ago”examinations still happen by writing programs on paper, though“ When i studied CS at the uni ~2007 we also did it like that for our intro programming courses. I enjoyed it :)
- cpach 6y agoInstead of displaying disgust, why not try to say something uplifting instead? Constraints like using a limited environment can do wonders for people’s creativity.
- fortran77 6y agoMy high school taught BASIC PLUS on a DEC PDP-11. Granted this was in 1977.
- noobermin 6y agoHow wide spread was this then? It seems like in the late 70s and 80s a lot of children (as in less than 15) learned programming young but this has dropped off in the 00s with the general rise of helicopter parenting and infantilization[0], and even with things like arduinos and such it seems like kids pick it up in class but then move on to other things. You certainly don't have young people actually end up developing actual things apart from the exceptions. [0] this is my hypothesis around this in general tbh.
- fortran77 6y agoThey teach "programming" but it's really making a simple web page.
- jcelerier 6y ago> Constraints like using a limited environment can do wonders for people’s creativity The problem is that the teachers (and the students by extension) don't know that they are learning helpessly outdated things. Nothing would be lost if they were instead learning today's coding styles & paradigms and they could be actually much more creative by using modern practices where the compiler can infer a lot instead of trying to fight with older compilers and doing that: https://github.com/vibhoothiiaanand/CNotepad/blob/dlevel/CNotepad.cpp#L9 https://github.com/vibhoothiiaanand/CNotepad/blob/dlevel/CNo... How many security issues will be caused because that student hasn't been taught about global variable issues, std::string, etc... ? I'm not hopeful. If you want to be "creative", you can do the same thing than this: https://github.com/vibhoothiiaanand/CNotepad/blob/dlevel/CNotepad.cpp#L71 https://github.com/vibhoothiiaanand/CNotepad/blob/dlevel/CNo... but in much prettier, portable, useful and much less lines of code with e.g. OpenFrameworks: https://openframeworks.cc/ofBook/chapters/lines.html https://openframeworks.cc/ofBook/chapters/lines.html - and at least the tutorial gives you an idea of non-one-letter variable names. Dear student: please send that to your teachers please : https://github.com/jcelerier/cpp-teaching-manifesto https://github.com/jcelerier/cpp-teaching-manifesto
- pjmlp 6y agoYes, even Bjarne mentions this in one of his talks. Not sure what to think really, should we get angry how younger generations get taught so outdated information, or be happy that at least they learn something that will allow them to jumpstart into something better years later.
- Arnavion 6y ago>Not sure what to think really, should we get angry how younger generations get taught so outdated information (I'm an Indian that learned C++ in school using Turbo C++ 10 years ago.) Outdated? The point of learning programming at that age is to understand the basics - functions / if / for / while, structs / classes, and pointers. All of those work the same in Turbo C++ or in the latest MSVC. Sure learning C++ via Turbo C++ doesn't prepare the student for modern code that uses `<algorithm>` or `std::shared_ptr` (or `std` at all), but those can always be learned later. The basics are more important. If anything, the fact that Turbo C++ came with graphics.h meant I could make screensavers like starfield and a visual sudoku solver by myself without any hassle. It made programming fun and was certainly part of the reason I'm a programmer today. I'm not even sure how I would do those with MSVC or gcc today, let alone 10 years ago. WinForms + GDI? SDL? Both are much more complicated than what I remember of graphics.h's API. Edit: graphics.h was the header with the graphics API, not conio.h
- brnt 6y agoSute, basics are basics, but why not just install QtCreator? Modern day C++ with modern day tooling, GUI, that in all likelihood runs on the machines the students have.
- skriticos2 6y agoI'd agree with you a decade ago, but nowadays Qt is all over the place (I still like it, just not good to start out - two GUI frameworks in the core library, which one do I choose; the docs certainly don't help). Today you fare better with something like Lazarus to start out or Python if you ignore the GUI.
- reassembled 6y ago36 year old me is very glad to have learned VGA graphics programming with Turbo Pascal and Turbo C++ during high school. I've met kids these days coming out of university CS degrees in the U.S.A. that still don't have a solid grasp on how pointers work. I believe it is in every programmer's interest to have a deep understanding of the system for which they are working on, even if they don't need to use the low level tools from day to day. Teaching C++ in DOS can still provide an excellent CS foundation IMO.
- 29athrowaway 6y agoRaw pointers in C++ are an introductory concept at this point. You also have l-value references, r-value references, smart pointers (unique, weak, shared, etc), and many of those have a use-case that overlaps with raw pointers.
- saurik 6y agoI would even argue it is much better than trying to do so on a more modern system, as you directly can just use graphics and color (which is both fun and helps teach a lot of programming concepts that are useful to know for building UIs later) without wasting a ton of time learning some UI toolkit that will be neither instructive nor actually-useful in the real world (as even if you choose a good one, it is almost certainly going to be obsolete by the time you go to get a job).
- Koshkin 6y agoHere is a nice quick tutorial on using the frame buffer in Linux: https://cmcenroe.me/2018/01/30/fbclock.html https://cmcenroe.me/2018/01/30/fbclock.html
- 29athrowaway 6y agoLearning C++ with Borland Turbo C++ for DOS can have some learning value, but landing a C++ job with that may not be easy. gcc and clang are distributed free of cost, and so is Linux. They should switch to those compilers and teach a modern dialect of C++.
- entha_saava 6y agoMany teaching faculty are resistant to change because it requires them to learn something. That's the biggest problem. although some boards have successfully switched to teaching python.
- hknapp 6y agoI had a professor who would update his slides during lecture to be more compliant with the newest version of C++
- deleted 6y ago[deleted]
- simion314 6y agoFirst year of programming is more about learning the basics and not the language. Like the students will learn basic stuff like finding the digits of a number or implementing other algorithms. Then passionate students discover the graphics libraries and then start playing with that draw different cool stuff like effects or make simple games like Tic Tac Toe. conclusion, in first year in schools you might have different level of students, they do not learn a language so they start a career with that language, they start with the basic stuff and hopefully a large number of students are attracted. Probably the teacher is lucky if majority of the students could handle homework on their-own so attempting to add more information that is not relevant is not useful. I am attempting to teach my son programming, he likes to play Gary's mod and there he can script stuff, I observe very interesting things(he is 14) like I need to explain and force him to ident the code to make it readable (imagine how extra messy would be with python) or I explain a few times that you can have local variables or function parameters reuse same names but for some reason he gets confused when 2 different things have same name. 1
- analog31 6y agoI wonder how many of us who started on the "wrong" language or outdated tooling were actually handicapped by doing so in the long run. I started on BASIC, the kind with line numbers.
- zozbot234 6y agoAs far as pure UX is concerned, Turbo Pascal and Turbo C++ are still a gold standard of text-mode IDE's. Emacs has tried to add a bit of the same featureset lately, like it will show a primitive TUI menubar if you launch it from a terminal but it's quite half-baked; the look and feel is sub-standard, and mouse interaction (via gpm or xterm) doesn't actually work by default. (Of course I realize that capturing mouse events is not always desired but it should be reasonably easy to allow this, maybe even as a default.) And it still lacks other basic UX elements like floating windows for dialog boxes, or resizing/rearranging windows with the mouse. FreePascal still ships a proper TUI IDE, and there's a FreeDOS text-mode IDE for C/C++ known as RHIDE.