need assingment to teach

  • Thread starter vikram Bhuskute
  • Start date
V

vikram Bhuskute

I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

thanks in advance

Vikram
 
S

Scudder Consulting

I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

Oh great, another of the clueless wants to teach.

rcs
 
R

Richard Heathfield

Scudder Consulting said:
Oh great, another of the clueless wants to teach.

Those who can, do. Those who can't, teach. Those who can't teach,
administer. Those who can't administer, manage. And those who can't
manage, do.

The OP would be well-advised to start off by learning C, if he or she
doesn't already know it. And if he or she does know it, he or she would
be well-advised to learn it again, properly this time. And if he or she
does already know C properly, he or she should have no trouble coming
up with programming assignments for his or her students.
 
C

Charlie Gordon

Richard Heathfield said:
Scudder Consulting said:


Those who can, do. Those who can't, teach. Those who can't teach,
administer. Those who can't administer, manage. And those who can't
manage, do.

The OP would be well-advised to start off by learning C, if he or she
doesn't already know it. And if he or she does know it, he or she would
be well-advised to learn it again, properly this time. And if he or she
does already know C properly, he or she should have no trouble coming
up with programming assignments for his or her students.

The OP may or may not have skills in C, earliers posts seem to indicate he
was himself a student not long ago, yet the question is interesting: I can
come up with exercices for students, easy and hard, but I am certainly
interested in new ones, especially in assignments with proven pedagogical
value.

Chqrlie.
 
M

Malcolm McLean

vikram Bhuskute said:
I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

thanks in advance
Chess program. Make it suicide chess or similar variant to make cheating
harder.
Divide the students up into teams of two. Each program receives a move on
stdin and has 1 second to send the reply to stdout. At the end of the
course, run a competiton.

The winning pair get a first
The pairs in the top half get 2:1s
The pairs in the bottom half get 2:2s, unless their program is disqualified
because of illegal moves.
Illegal moves get a third, though there is leniency for going slightly over
the 1 second - offender only forfeits the match.
Programs that don't constitute a serious attempt at a chess program get a
fail, obviously.

You do a nice graphical front end so everyone can watch the competition in
the last class. Also have a voluntary briefing session a few days before the
grand competiton, whereby all programs can be tested against one you wrote
yourself, to make sure that everyone has a working program or its their own
fault.

If you think chess is too much, try draughts.
 
A

Army1987

I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners
Look at the ones in Kernighan & Ritchie, "The C Programming
Language", 2nd edition.
 
B

Ben Bacarisse

Richard Heathfield said:
Scudder Consulting said:
Oh great, another of the clueless wants to teach.

Those who can, do. Those who can't, teach. [...]

I waited a while, to calm down, after reading this but even now, when
calm, I think it needs a comment. You may have had bad experiences of
all of all your teachers but it is patently false in almost all cases
for simple tasks (e.g. reading) and often false for more complex ones
like programming.

If you intended an overlap (that there are some who "can" -- and thus
"do" -- but who also teach) then it seems a rather pointless remark.
Suggesting no overlap is offensive and, in my experience, false.
And if he or she
does already know C properly, he or she should have no trouble coming
up with programming assignments for his or her students.

This converse idea: that people skilled at X will have no trouble
coming up with assignments for teaching X is, at least sometimes, not
true. The high level of skill can get in the way of seeing what makes
a good assignment.

Of course, this being c.l.c I must also assume that it is possible you
only meant that they will be able to come up with assignments
(literally what you wrote) -- not that they will be able to come up
with good ones. Again, if so, why say it?

The fact is that being good at X and being good at teaching X are
distinct skills which, in my experience, do sometimes coexist in the
same person.
 
R

Richard Heathfield

Ben Bacarisse said:
Richard Heathfield said:
Scudder Consulting said:
I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

Oh great, another of the clueless wants to teach.

Those who can, do. Those who can't, teach. [...]

I waited a while, to calm down, after reading this but even now, when
calm, I think it needs a comment.

If that is the first time you have encountered the above comment (in the
precise form into which you have truncated it), you need to get out
more. It is a well-known saying which I merely extended in a way which
wrapped around to encompass *everybody*, not just teachers. Whether you
noticed that, I cannot tell, but I suspect you may not have done.
You may have had bad experiences of
all of all your teachers but it is patently false in almost all cases
for simple tasks (e.g. reading)

Reading is *not* a simple task. It is far more complex than programming.
And it is often taught very badly. For example, it's really not a good
idea to teach a child the alphabet and then, within days, tell him to
forget it and learn a whole new one ("this one is much easier"). And
it's sirtunlee not u gwd iedeer tw teech him to uez this hoel nue
alfubet fau a hoel yeer, and then decide to teach him yet *another*
alphabet. Many British people of about my age have atrocious spelling
because they were exposed to this farrago of alphabets at an
impressionable age.

I learned to read at a fairly young age, using what I might now call
Alphabet 1, and while being taught to use Alfubet 2 I continued to read
avidly at home, where all the books used Alphabet 1, so for a while I
was bi-alphabetical, so to speak. When they changed the alphabet yet
again, I recognised instantly that Alphabet 3 == Alphabet 1 (with which
I was still very familiar), and so I had no trouble switching from
Alfubet 2 to Alphabet 3. But many people my age did have a lot of
trouble with it.

Reference: http://www.itafoundation.org/alphabet.htm
and often false for more complex ones like programming.

s/more complex/simpler/

One of my English teachers thought "collier" had only one "l", and
called me a liar for claiming that the dictionary thought otherwise
(thus introducing me to the wonderful concept of deceit for the very
first time). All the mathematics teachers I ever had believed 1 to be
prime. I had a chemistry teacher who couldn't spell "beryllium". My
first ever C tutor thought that loops terminated as soon as their
condition was false (which, if it were the case, would massively
increase the size of the object code for all loops, since *every*
translated instruction within the loop would have to be followed by a
test and conditional jump!), and all my C tutors voided main with
carefree abandon. I remember a systems analysis lecturer who honestly
believed that multiplication was non-commutative (he thought that the
saving given by multiple discount percentages depended on the order in
which the discounts were applied). I have experienced enough examples
of poor teaching to last me a lifetime. On the other hand, I have
encountered very few examples of *excellent* teaching. Some, yes. But
precious few.

Teaching programming is a trivial task compared to that of teaching
reading, and yet it is often done very badly indeed. I truly hope that
your programming teachers were exceptions. Most of mine weren't.
Fortunately, however, I did have one wonderful programming teacher,
whose name modesty prevents me from revealing.

<snip>
 
B

Ben Bacarisse

Richard Heathfield said:
Ben Bacarisse said:
Richard Heathfield said:
Scudder Consulting said:


I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

Oh great, another of the clueless wants to teach.

Those who can, do. Those who can't, teach. [...]

I waited a while, to calm down, after reading this but even now, when
calm, I think it needs a comment.

If that is the first time you have encountered the above comment (in the
precise form into which you have truncated it), you need to get out
more.

Of course I have heard it. I was surprised to read such a remark
repeated by you.
It is a well-known saying which I merely extended in a way which
wrapped around to encompass *everybody*, not just teachers. Whether you
noticed that, I cannot tell, but I suspect you may not have done.

I noticed. It made it no more humorous nor less rude.
Reading is *not* a simple task.
Teaching programming is a trivial task compared to that of teaching
reading,

So in your view I have the complexity of reading an programming
reversed. OK, fine. (I don't agree but I can't see any point in
debating that here.) What does that have to do with my example?
Reading is the obvious counter example. That it is often taught badly
in neither here not there. If it were always taught badly precisely
because it was always taught by people who "can't" (read), then you
would have a case.
and yet it is often done very badly indeed. I truly hope that
your programming teachers were exceptions. Most of mine weren't.

The quality of the teaching is not at issue. Had you said that
programming often badly taught, I'd have agreed!

I spent the majority of my working life forcing a smile at people who
crack that remark when they hear that I taught. The other half of the
time its the one about how nice it must be to be on holiday half the
year.
 
R

Richard Heathfield

Ben Bacarisse said:
Richard Heathfield said:
Ben Bacarisse said:
Those who can, do. Those who can't, teach. [...]

I waited a while, to calm down, after reading this but even now,
when calm, I think it needs a comment.

If that is the first time you have encountered the above comment (in
the precise form into which you have truncated it), you need to get
out more.

Of course I have heard it. I was surprised to read such a remark
repeated by you.

I think you might need to put this down to a sense-of-humour difference.
If you were Usanian, that would explain it, but you appear to be from
the UK, so... um... <shrug>. Is it sufficient to say that I've spent a
large part of my life teaching and training others? This is true, I
assure you. I've taught people how to write programs in BASIC and in
EXEC, pull pints, play guitar, create and decipher cryptograms, put up
draughtproofing[1], communicate with the hearing-impaired, design
administration systems, compose music, program in C, program in C++[1],
write intelligibly, turn algebraic expressions into "pop the balloons
to find the banana" games[2], understand MIDI, and a thousand things
besides.

<snip>

[1] These are genuine examples of "those who can't, teach"!
[2] You had to be there, really. This was how I managed to get my
daughter to at least *tolerate* simple algebra after being mis-taught
it by someone who actually gets paid for teaching. You start by
replacing x with a banana, because my daughter really, really couldn't
understand x, but she sure could understand a banana. Then you replace
each rule of precedence with a balloon. In the penultimate stage, you
pop the balloons, starting with the outermost. For example, rewrite:

3(x-12)+5
--------- = 2
7

as ((((BANANA-12)*3)+5)/7) = 2

Then POP the balloon and multiply both sides by 7:

(((BANANA-12)*3)+5) = 14

POP the balloon and subtract 5 from both sides:

((BANANA-12)*3) = 9

POP the balloon and divide both sides by 3:

(BANANA-12) = 3

POP the balloon and add 12 to both sides:

BANANA = 15

And now for the final stage: eat the banana.

Don't ask me why this worked (motivationally speaking), but it did, even
when no genuine bananas were available!
 
C

CBFalconer

Richard said:
.... snip ...

Teaching programming is a trivial task compared to that of teaching
reading, and yet it is often done very badly indeed. I truly hope
that your programming teachers were exceptions. Most of mine weren't.
Fortunately, however, I did have one wonderful programming teacher,
whose name modesty prevents me from revealing.

I can think of memorable teachers of mathematics, history,
languages, etc. in school, college, and after. I can't think of
any in programming (which may be partly because programming didn't
exist when I was in school and largely in college). I am not
including books. I can only think of one case where a programmer
told me something that cleared up an area, and that I still
remember. I don't know if this reflects on me, programmers,
teaching, or age.
 
C

Chris Dollin

Richard said:
My
first ever C tutor thought that loops terminated as soon as their
condition was false (which, if it were the case, would massively
increase the size of the object code for all loops, since *every*
translated instruction within the loop would have to be followed by a
test and conditional jump!),

Not /every/ translated instruction. Only those that could affect the
test result. I suspect that would be significantly fewer.

If loops worked that way, I wonder if they'd be easier to work with
or harder?
 
V

vikram Bhuskute

teach gym.

I am not a frequent reader of this group, and therefore dint expect
such useless
replies.
About Me .. in software devel. for last 8-9 yrs ..mostly in C .

Now someone has approached me for learning basic C . ..couldnt say
no...
This is my first exp. with teaching C ...and hence i requested for
a place to get some good exercises for my student.. But I REPENT
that i put request on such a place .....

I thought there are smart and helpful people .on this list .....i
think i was wrong ...
so thats my mistake ..
 
A

Army1987

vikram Bhuskute said:
I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

thanks in advance
Chess program. Make it suicide chess or similar variant to make cheating
harder.
Divide the students up into teams of two. Each program receives a move on
stdin and has 1 second to send the reply to stdout. At the end of the
course, run a competiton. [snip]
If you think chess is too much, try draughts.
Maybe tic-tac-toe?
 
R

Richard Heathfield

Chris Dollin said:
Not /every/ translated instruction. Only those that could affect the
test result. I suspect that would be significantly fewer.

Whoops, you're nearly quite right. It depends on the visibility of the
objects involved in the condition, of course, and on whether they are
volatile (eesh!), but yes, you're otherwise correct. Sloopy thinking on
my part.
If loops worked that way, I wonder if they'd be easier to work with
or harder?

Yeah. :)
 
B

Ben Bacarisse

vikram Bhuskute said:
I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

I can't find any suitable large example sets (I used to have quite a
few) so all I can do is give you some general advice.

I used to have three categories of exercise. The most numerous were
small ones that grew naturally from the examples I presented. For
example, "modify the linked list example to make it doubly linked",
"rewrite the array-based stack functions using this linked list
structure" and so on. You have to come up with these yourself.

The second group were small programs that must be written from scratch
using the techniques so far presented. I used to like to leave them
slightly under-specified so that part of the task was to define
exactly what the program should do. Here are a few I remember
using:

Write a program to print the number of characters, words and lines
found on the standard input stream.

Print a histogram of word lengths.

Given a file that contains a set of strings representing votes (one
per line) write a program to determine which (if any) string is in
the majority. [You can add a simplification that there are known to
be no more than, say, 20 distinct strings depending on how much has
been covered.]

Given a sequence of numbers representing heights above (or below)
sea-level (zero) in a cross-section of an island, write a program to
determine the depth of the deepest possible lake on the island.

Finally, I had a set of optional larger exercises for those that
wanted to try something a little harder. I don't remember may of
these (but I had collected lots over the years). One was the 2D
version of the deepest lake problem, and another involved writing a
program to find the journey time between any two London underground
stations. I supplied the data files describing the network and the
program had to use the old "two minutes per stop plus five for a
change" rule of thumb used by Londoners. Now I am thinking about it I
can recall a few more:

Write a Turing machine simulator.

Design, write and evaluate a file compression utility.

Write a regular expression string matcher.

Fun with combinators. I define the rules of the SK game: that Kxy
can be replaced by x and that Swxy can be replaced by wx(yx) where
w, x and y stand for any bracket-matched strings. The task is to
write a program to investigate the consequences of these rules and
to justify and explain some definitions like:

I=SKK
B=S(KS)K
0=KI
1=I
2=SBI
A=BS(BB)
E=S(K(SI))K
thanks in advance

I hope that helps a little. As you can tell, the emphasis was not on
any one language, and that is good in general but bad if you are
tasked with teaching C to people who already know how to program.
Exercises that concentrate on the ways C is different from what your
students know may be more appropriate...
 
A

Al Balmer

Richard Heathfield said:
Scudder Consulting said:
I have plans to train some students for C in coming weeks.
I am badly looking for C programming assignments fot them.
Need 1) lots of them per topiic 2) Should be doable for beginners

Oh great, another of the clueless wants to teach.

Those who can, do. Those who can't, teach. [...]

I waited a while, to calm down, after reading this but even now, when
calm, I think it needs a comment. You may have had bad experiences of
all of all your teachers but it is patently false in almost all cases
for simple tasks (e.g. reading) and often false for more complex ones
like programming.
I tend to be biased in favor of Richard's statement. This is because
in college, I spent a great deal of time with high school math
teachers who had returned for their master's degrees and were having a
difficult time in first and second year math classes.

Fortunately, I had high school teachers who recognized my mathematical
bent, and excused me from classes to study on my own.
 
M

Malcolm McLean

Ben Bacarisse said:
So in your view I have the complexity of reading an programming
reversed. OK, fine. (I don't agree but I can't see any point in
debating that here.) What does that have to do with my example?
Reading is the obvious counter example. That it is often taught badly
in neither here not there. If it were always taught badly precisely
because it was always taught by people who "can't" (read), then you
would have a case.
The reason reading is taught badly is because it is taught by the "look and
say" method. That's the way that fluent readers such as ourselves do read.
However beginners spell out each letter, pronounce them, and then make a
guess at the word. So it is a kind of proof of the rule. Too much fluency
can harm teaching, because teacher forgets what it was like to be learning.
 
M

Mark McIntyre

Reading is *not* a simple task. It is far more complex than programming.

Um. Sorta. For some odd definition of "complex".
And it is often taught very badly. For example, it's really not a good
idea to teach a child the alphabet and then, within days, tell him to
forget it and learn a whole new one ("this one is much easier").

You apparenly went to a really bizarre school. I have no recollection
of learning more than one alphabet until I started Greek and Middle
English (I'm excluding Pitman and Braille which I taught myself for
fun).
Many British people of about my age have atrocious spelling
because they were exposed to this farrago of alphabets at an
impressionable age.

What *are* you gibbering about? Most british people have atrocious
speling because theyre lazy gets who can't be bothered to learn to
spell, and whose parents didn't explain that being coherent was a
useful communication skill.

Huh? I've done a straw poll of myself, my missus and my three school
age kids and they all looked quite blank.

Phonics is the thing nowadays by the way...
I had a chemistry teacher who couldn't spell "beryllium".

Though deplorable, its hardly a crime. At least he/she didn't stick an
'e' on the end eh?
my C tutors voided main with carefree abandon.

Unfair - I suspect you learned with pre-ANSI C (heck, I did, and I'm
younger than you).

(snip rest of long and tedious list of teachers with mistaken
understandings)
of poor teaching to last me a lifetime. On the other hand, I have
encountered very few examples of *excellent* teaching.

Whereas you yourself are infallible and never have misconceptions or
misunderstandings :)

For what its worth, I've encountered my share of really good teachers.
--
Mark McIntyre

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,174
Latest member
BlissKetoACV
Top