User forums > General (but related to Code::Blocks)

Code::Blocks or Dev-C++ in C Language courses

(1/4) > >>

Flichtschein:
I am using Dev-C++ to teach C language programming course, as an introduction to an applied C programming course for microcontrollers.

I would like to share experience with others who are embarked in similar extraordinary enterprises.

Jokes apart, my aim is to get the students started on C fundamentals. The graphic environment of Windows is sometimes too tempting and the students want to draw images instead of focusing on logic and structure. I would like to shares syllabuses, methods and exercises with fellow teachers.

Best regards,

Fernando Lichtschein
lich@fibertel.com.ar

takeshimiya:
Hi! I remember like 2 years ago when I was in high school, learning the C language using plain old good Borland in DOS and learning Assembler for microcontrollers (Motorola JK1 :)).
I never learned C for microcontrollers though.

If you're using Dev-C++ I'll recommend you replacing it with Code::Blocks (so much better).

But perhaps the good old blue Borland is better when teaching, because the interface is fullscreened and you have only text (nothing distracting).

I remember that in the C programming class where we used Borland, all students were more concentrated and even the most lazy one was programming.
But in the ASM programming class where we used some IDE in windows for programming the microcontroller, everyone was a lot more distracted.

Anyways, Code::Blocks include a FullScreen mode where perhaps your students willn't be too tempted to open Paint, I hope :D.

By the way, I'm received from the Otto Krause school.

rickg22:
Dear Fernando:

Since you're teaching the structure, start with the typical "hello world" examples.

Teach about arrays, pointers, and algorithms. Data structures like linked lists.

You could compare various sorting algorithms in C (like bubblesort, shellsort, quicksort) in some demonstrations. Ask your students to write "simple" programs.

Fibonnaci series is a good example of algorithms. Seeing the program run and produce the numbers is a good way to get them to understand how an algorithm works.


Using codeblocks would be good, because it has syntax highlighting, and code folding. For long algorithms students can compact their loops / if's, and understand more what programming is about.

I don't use the debugger very often, but if you can get to use it, this would also teach the students how stepping by in a program can help understand an algorithm, too.

You could put them to solve problems, like... getting out of a simple maze, or something.

If your students want to draw images, ask them to draw LOGIC DIAGRAMS :lol:
and then turn them into a C program.

Also, make use of students' natural curiousity. Invite them to "hack" away their grades, give them extra points if they can make a program to solve certain problem... first N students who get to solve it, get the point.

Make it fun... ask them to form teams, but then put them to compete against each other. A good idea is to put them to work in combinatorial problems. (Like the star of david.  Put numbers from 1 to 12 in the star's edges and crossings so the sums are the same. The student whose program / algorithm solves it in the least time or with the least iterations, wins).

Do the competitions in an inverse pyramid: The first to solve the problem before his competitor, gets away from the competition, and the loser goes to the next round. The last "round" is between the worst students. The worst student gets double homework  :lol:, or the students who win the first time get an extra credit. (Or how about the students who win the first time, get 2 credits. The ones who win the second time, only get a credit, and so on).

For normal classes, kick the geniuses out. Only give them homeworks and let them use up their time as they wish (outside the classroom, of course). They probably don't need the courses anyway, unless it's processor-specific.

Remember that programming is nothing but solving puzzles, or hacking your way like "neo". If there's no challenge, it'll be boring.

Hope that helps.

takeshimiya:
OMG!! My C programming class had exactly all of what rick says! :shock:

Hello world, bubblesort, quicksort, fibonnaci, debug, problems, first N students who get to solve a problem, teams, algorithms for calculating PI, etc...
I can assure that the C classes wasn't boring at all.

I was amazed to see my classmates (the ones who rarely touched a pc) doing crazy things like implementing an entire GUI in the graphic libraries of Borland, or developing games with graphics.
Note that nothing of this was teached in the classes, they learned themselves at the college (looking at the documentation Borland comes).

Everyone was so motivated to program and solve the problems, and in the spare time programming games or other things.


But all of this makes for a C programming class, programming a microcontroller is a very different matter. If you don't introduce something of the things rick said (like problems, algorithms, challenges, teams, ...) your students will lost interest.
The key is to have dynamic classes.

Flichtschein:

--- Quote from: Takeshi Miya on November 24, 2005, 10:51:38 pm ---Hi! I remember like 2 years ago when I was in high school, learning the C language using plain old good Borland in DOS and learning Assembler for microcontrollers (Motorola JK1 :)).
I never learned C for microcontrollers though.

If you're using Dev-C++ I'll recommend you replacing it with Code::Blocks (so much better).

But perhaps the good old blue Borland is better when teaching, because the interface is fullscreened and you have only text (nothing distracting).

I remember that in the C programming class where we used Borland, all students were more concentrated and even the most lazy one was programming.
But in the ASM programming class where we used some IDE in windows for programming the microcontroller, everyone was a lot more distracted.

Anyways, Code::Blocks include a FullScreen mode where perhaps your students willn't be too tempted to open Paint, I hope :D.

By the way, I'm received from the Otto Krause school.

--- End quote ---

¡Del Otto Krause! Yo soy de la otra cuadra, de la facultad de Ingeniería... Ahora doy clase en el terciario de ORT.

Saludos!

Navigation

[0] Message Index

[#] Next page

Go to full version