From: Richard Heathfield on
Night_Lynx(a)hotmail.com said:

> Dear All,
>
> I am a C++ Beginner and, having read and studied (and sucessfully made
> it through the "Hello World" et. al. stage), I wanted to try my hand
> at putting it all into practice. To give you an idea of the concepts
> that I would like to familiarize myself with: I have just finished
> reading N.Josuttis' book "Object Oriented Programming in C++", which
> by the way I found a very good read.
>
> My trouble is that any idea and/or challenge I can come up with is
> usually too hard, unfocused or requires system-specific code, which is
> not what I want to 'train', as it were.
>
> I would hence like to ask you to suggest some places to find some
> simple code challenges and/or micro-projects for beginners.

Word search puzzle. Input: list of words to appear in puzzle grid.
Processing: obvious to describe, not so easy to do! Output: text file
containing puzzle grid.

Spell checker. Input: dictionary of 0 or more words, text file. Processing:
look up each word of text file in the dictionary. If there, great. Else,
ask whether the dictionary should be updated or the text file corrected.
Output: (possibly updated) dictionary, (possibly updated) text file.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
From: ed.norris.1 on
On Apr 8, 2:11 pm, Richard Heathfield <r...(a)see.sig.invalid> wrote:
> Night_L...(a)hotmail.com said:
>
> > Dear All,
>
> > I am a C++ Beginner and, having read and studied (and sucessfully made
> > it through the "Hello World" et. al. stage), I wanted to try my hand
> > at putting it all into practice. To give you an idea of the concepts
> > that I would like to familiarize myself with: I have just finished
> > reading N.Josuttis' book "Object Oriented Programming in C++", which
> > by the way I found a very good read.
>
> > My trouble is that any idea and/or challenge I can come up with is
> > usually too hard, unfocused or requires system-specific code, which is
> > not what I want to 'train', as it were.
>
> > I would hence like to ask you to suggest some places to find some
> > simple code challenges and/or micro-projects for beginners.
>
> Word search puzzle. Input: list of words to appear in puzzle grid.
> Processing: obvious to describe, not so easy to do! Output: text file
> containing puzzle grid.
>
> Spell checker. Input: dictionary of 0 or more words, text file. Processing:
> look up each word of text file in the dictionary. If there, great. Else,
> ask whether the dictionary should be updated or the text file corrected.
> Output: (possibly updated) dictionary, (possibly updated) text file.
>
> --
> Richard Heathfield <http://www.cpax.org.uk>
> Email: -http://www. +rjh@
> Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
> "Usenet is a strange place" - dmr 29 July 1999

For more pure C++ coding, I recommend the exercises in Stroustrup's C+
+.

How about something that gets you more familiar with a particular OS
API (and its documentation)?
- Recursively list files given a starting directory
- Create a process that responds to the Windows service control
manager start and stop requests
- Open a socket and read / write data (can use Wireshark to observe
and/or netcat to open a listener port and provide output)

Also, interacting with a third party library can be useful in terms of
reading and understanding documentation, IDE settings for the
compilation and linking process, and learning how to adapt or shim
your design for an interface created by others.
- zlib - zip a specified file or directory

Hope this was useful

From: Richard Heathfield on
ed.norris.1(a)gmail.com said:

<snip>

[OP says]
>> > My trouble is that any idea and/or challenge I can come up with is
>> > usually too hard, unfocused or requires system-specific code, which is
>> > not what I want to 'train', as it were.
>>
<snip>

> For more pure C++ coding, I recommend the exercises in Stroustrup's C+
> +.

Many of Stroustrup's exercises are either of the "hello world" variety,
which the OP says he's moved beyond, or "unfocused" in the sense that you
don't end up with a useful program at the end of the exercise. Perhaps you
could specify which of the exercises you had in mind, that would be
suitable for the OP's requirements?

>
> How about something that gets you more familiar with a particular OS
> API (and its documentation)?

See above - OP wants projects that *do not* require system-specific code.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
From: Richard Heathfield on
ed.norris.1(a)gmail.com said:

<snip>
>>
> Thank you for the feedback. I apologize that my unfamiliarity with my
> newsreader's settings led you to believe that my recommendations were
> a critique of what you wrote. My intention was to reply to the
> original poster.

<shrug> :-)

>
> Can I assume you approve of my other suggestions?

I don't really care either way. :-) But I don't think they actually met
the OP's objectives, which is why I replied as I did. That doesn't mean
they're bad suggestions.

<snip>

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -http://www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
From: Francis Glassborow on
Richard Heathfield wrote:
> ed.norris.1(a)gmail.com said:
>
> <snip>
>> Thank you for the feedback. I apologize that my unfamiliarity with my
>> newsreader's settings led you to believe that my recommendations were
>> a critique of what you wrote. My intention was to reply to the
>> original poster.
>
> <shrug> :-)
>
>> Can I assume you approve of my other suggestions?
>
> I don't really care either way. :-) But I don't think they actually met
> the OP's objectives, which is why I replied as I did. That doesn't mean
> they're bad suggestions.
>
> <snip>
>

In my experience the most important feature of a project to assist with
learning to program is that it should be in a problem domain that
interests you and preferably to tackle something you would find useful.

For example, as a Bridge player and director I would find a program that
worked out new 'movements' for a given number of tables useful. That one
is a bit tough from the design aspect but a program to score a duplicate
Bridge session is relatively easy to design though fairly demanding when
you add in the requirements that it should cope when a pair have played
the wrong boards, have played in the wrong orientation,the director has
awarded an adjusted score etc.

As a sailor and qualified sailing master writing a program to manage the
results for 1) a single race (perhaps with timer hardware wired into the
computer), a race series, a whole regatta etc. would be useful.

As someone who is interested in lesser known games (both card and board)
writing a program to support playing a game between humans but over the
internet is interesting to me. Writing software to support strategy
analysis is another possibility. Usually actually writing a program to
enable the computer to play competently is a stretch too far.

I just give the above as examples of the potential for programs that
support some interest that you have.