Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Teaching C++ (http://www.chiefdelphi.com/forums/showthread.php?t=106655)

aeniug2 20-06-2012 20:54

Re: Teaching C++
 
Thanks. From what I've read so far those books seem like they'll help quite a bit. Older sources seem to have much more straightforward explanations than many newer ones...

mmavipc 20-06-2012 22:42

Re: Teaching C++
 
This book does a very good job of teaching programming. It uses python because it's a simple language to pickup, but once they've finished it you can teach them C++ and they'll have a much higher success rate than just going straight into C++.

I've found that just teaching people the language isn't good enough. You have to teach them how to think like a programmer.

mjcoss 21-06-2012 11:36

Re: Teaching C++
 
Quote:

Originally Posted by mmavipc (Post 1174754)
I've found that just teaching people the language isn't good enough. You have to teach them how to think like a programmer.

Exactly. The other issue is that it's not sufficient to think like a programmer, and know the language. You need to have some understanding of mechanical, and electrical systems. Coding up a motor to run is all well and good, but understanding that the motor needs to be driven to hold an arm in position against an opposing force (gravity :)) is another thing.

A number of the items I mentioned are functions of the operating system that is being used, and the hardware. There are books on VxWorks that explain how the OS works, and what features are available. There are books on control theory but most of the ones that I have are not really for novices. For more info than you'll ever want to know about C++, you can use Bjarne Stroustrup's book. I always believe in going straight to the source, but for a novice programmer it can be a daunting book.

Also, I agree that Python is another viable language for teaching how to program. The hello world program is probably the easiest and clearest of any language :)

aeniug2 21-06-2012 12:56

Re: Teaching C++
 
Quote:

Originally Posted by mjcoss (Post 1174818)
The other issue is that it's not sufficient to think like a programmer, and know the language. You need to have some understanding of mechanical, and electrical systems.

This is probably one of the only reasons that I am able to program my team's robot as well as I am, despite my extremely limited knowledge of C++.

One year our team had a programmer who was practically a java god. They knew java inside out, it was crazy. But they had little to no understanding of any of the mechanical or electrical systems on the bot... Our robot didn't have working code until I took it home and learned enough java to fix it.

This is one of the reasons that we are now making sure that anyone involved in programming is also heavily involved with other things as well. This is also the main reason that I am planning to use the arduino to teach programming, so that kids can learn how programming can be used to interact with physical things.

mprasolov 19-11-2012 07:33

Re: Teaching C++
 
Already knowing Java and VB.NET, It was very easy for me to pick up C++. I learned all of the basics in a month. I used learncpp.com. They have great explanations and structured lessons with quizzes at the end. Did I mention it's free?

mythbusterma 25-11-2012 20:56

Re: Teaching C++
 
If you guys are looking for a good IDE to get started developing in outside of robotics, I'd recommend Qt. It has libraries for nearly everything you could ever need to develop a desktop application, along with a great community to support it, also it simplifies coding GUIs and cross-platform applications greatly, as you can code once, and use it on any platform. When I program things for my team, it's what I use.

Just my two cents.

Toa Circuit 05-12-2012 12:02

Re: Teaching C++
 
Well from my experience, I learned 50% of my programming knowledge in the 6-week build. Prior to that, I had dabbled in C++ and NXC ( http://bricxcc.sourceforge.net/ ) a bit but never fully understood it. (I could do basic variable manipulation, loops and if/else statements but thats about it)
I was able to program our robot rather effectively using all the builtin libraries in WPILib without understanding what OOP was, or how to implement it. Just seeing what worked and what didn't was enough to make some rough Teleop and a brief autonomous code with smartdashboard logging and some drive mode switching. (The code can be found at https://bitbucket.org/teammetalcow/r...cpp?at=default )
I will note that I learned none of this from books, just experimenting with the language and looking up references from the WPILib documentation.

I did go on to learn OOP in the off season, so thats what https://bitbucket.org/teammetalcow/2012offseason/src is.

It really depends on the person though, Ive found. We all think differently, but C++ thinks in basically one way. Like one person here said, If you think extremely logically if can be 2.5 months, but if not it can be 6.

Gadeer Zbedat 03-01-2013 12:01

Re: Teaching C++
 
Can anyone help me in programing the Jumper ??!! in order to see the battery voltage in the computer drivers??!!

nathan_hui 03-01-2013 12:26

Re: Teaching C++
 
Gadeer, you don't need to (at least not at the DS). There's a particular call to get the value in your code, but I don't know what that is.

As to the OP's question, 2473 starts their students off learning RobotC and programming basic NXT robots to do basic tasks. We've started pursuing the philosophy of teaching students extremely basic tasks, and as they become proficient at those, take the students through an experience curve tying together those basic tasks into more complex tasks. Remember that at the very bottom of things, the robot is just a big frame with motors attached that have got things on the end of those motors that need to go places. It's just a matter of when and how much to spin those motors.

Now, our team has two years to train our students before they get to FRC. We are looking to create programmers, not just software guys for the team. Way back when we didn't have the FTC feeder team, we simply pulled the entire software team together every day for a month and learned RobotC to start off with, then taught them C++ lecture style (syntax only, since they learned the logic via RobotC). Everything else they learned was through experience, which, unfortunately, we weren't able to give them. While all of the resources you've been given are great, nothing beats experience as a teacher. You just have to go out, take a stab at a problem, fail (not miserably) at it, pick yourself up, figure out what went wrong, and succeed at it to learn a lot. It's that courage to keep going that will keep you learning.

aeniug2 05-01-2013 19:50

Re: Teaching C++
 
Quote:

Originally Posted by Gadeer Zbedat (Post 1206925)
Can anyone help me in programing the Jumper ??!! in order to see the battery voltage in the computer drivers??!!

Not sure exactly what you mean, but ima ask anyways: Are you talking about physically installing a jumper on the analogue breakout in order to see battery voltage in the DS?


All times are GMT -5. The time now is 14:25.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi