Last year I had a course in programming with C++. They were 2nd year students, and they already got C# and Python. Then their dean called me and ask: "Look, Seva, I want to get them programming, not writing code. Can you?" That was a real challenge, so I gave the students a doubled course in C++ with a couple of last lectures on C++ and RAD principles. The institute is Moscow Polytech.
A week ago the most gifted students from my course called me and asked: "Seva Sir, could you please be our supervisor for the diploma project"? That was no hard decision, teaching programming was even a little bit better than programming myself. The guys wants to take all from the course and start building their carriers right now.
Their course is "Informatics and computer science (CAD systems integration in mechanical engineering)". The students are real professionals in using the ready CAD systems like Inventor. But the target is help them develop their own CAD system. Of course, with C++Builder.
There are some reasons of using C++Builder in order to study programming. Not coding, but developing the real-life systems. My reasons:
- C++Builder is based on C++ standards, so coding skills are cross-industry universal (including STL);
- C++Builder is the most comfortable visual IDE and set of tools for rapid application development (plethora of video tutorials);
- C++Builder is multi-platform development tool, including mobile systems (students can show multi-platform skills);
- C++Builder has FM, that makes 3D modeling and programming extremely easy (ideal for engineering programming);
- C++Builder can mix 2D FM UI with 3D models in one form (prototyping of CAD UI is ultimately simple).
That's really enough to state C++Builder is the most appropriate tools to make the students develop a super project with good CAD capabilities within a year. But we've already started!
At the moment we're reproducing some simple 1-hour-project. The next step will be going deeper and split the code into visual models based on C++Builder built-in FM components and compositional derivatives and in-memory model for domain-specific object-oriented class representation of set of elements.
They can also use my book (sorry, in Russian), where 3D programming with Delphi is given, while 90% applicable to C++Builder. Next I share the students' results.