none
Programming projects for beginners?

    Question

  • I am looking for a web site with a list of suggested programming projects; math and logic problems to be solved with programming.

    I am well aware of the Euler Project, but after the first 10 questions, you need some serious math background or some serious programming experience to find the solution.

    What I need, and what any newbie visiting this site needs, are challenging and fun problems to solve that are at the scope of the true beginner.

    Any suggestions?
    Friday, April 17, 2009 1:24 PM

Answers

  • Coding Cat

    I have posted my assignments in a Skydrive public folder.  Let me know if the Skydrive is accessable.  i have never used it before and there is a lack of help or directions for idiots.

    http://cid-c10376c3512f464d.skydrive.live.com/browse.aspx/.Public
    Monday, April 20, 2009 4:13 PM
  • To be fair, I decided to post a full list of the projects that I have been giving my Intro to Programming students. The full descriptions that I give them (all projects are assigned, and solutions are submitted through Moodle) are very detailed and read like stereo instructions. We just started the 19th project today with the introduction of branching using the Goto statement. There are four weeks until the end of the semester and we will be going from Goto to For to While to Sub programs.

    Who am I? -- Displaying your first and last name as a write and writeline operation.
    Name Art -- Using writeline operations to display an ASCII art version of your name
    Oblio's Dog -- Using Turtle graphics, draw an arrow
    FreeStyle -- Using every turtle operation at least once, create your own design
    Making Variables -- Follow the descriptions to store values in variables (simple practice)
    Variables In Use -- Store favorite song, move, etc in variables; then display the values.
    Circling -- Store pi and radius in variables; use the values to find area and circumference
    Music Survey -- Use read and readnumber to ask about music tastes; display the results
    How Hot is Hot -- Read temp in Fahrenheit from user, display the conversion to Celsius
    Boxing -- Ask user for size, using the turtle commands to draw a box of entered size
    Madlibs -- Ask user for parts of speech; display a story created from them
    Calculated -- Simple practice using the operations of the Math object
    Hypotenuse of a Triangle -- Ask user for two sides; calculate and display the third
    Decisions -- Simple practice using the If statement
    More Boxing -- Rework of boxing, displaying an error message if box size is too big
    Heads or Tails -- Ask the user to choose, randomly do a coin toss; match, user wins
    Hello Mr. Computer -- Mock chat; questions, answers, Ifs for different responses.
    Rock-Paper-Scissors -- Ask user to choose, randomly pick; match one of nine endings
    Going Places -- Given a poem that displays out of order, add Gotos to display right
    Saturday, April 18, 2009 12:11 AM

All replies

  • What do you think of things like

    - A simple calculator (GUI or Console)
    Allow to hande simple conditions and mathematics operators

    - A game of the goose
    Generating random number (0 -> 6)
    Moving objects to a particular position in a playboard
    Taking special actions on special cases

    - A chess game (with no AI, so two-players)
    Moving objects with restrictions in a closed environement
    Finding "echecs" & "echecs et mat"

    - A card game like Solitaire

    This is more complex than the first "Euler problems", but it give some challenge to the beginners.


    Fremy - Developer in VB.NET, C# and JScript ... - Feel free to try my extension
    Friday, April 17, 2009 1:48 PM
  • Or, simpler, a 'Snike' game.
    Fremy - Developer in VB.NET, C# and JScript ... - Feel free to try my extension
    Friday, April 17, 2009 1:49 PM
  • You actually said it. Each one of those suggestions are either very complex (like chess or solitaire), or require a lot of code to render and control the interaction with the user (like goose and the calculator).

    What I am searching for is what I think a site like this, and a system like SmallBasic really needs to succeed.

    A list of puzzles to solve using programming as your tool.

    Puzzles that have a fun premise. Puzzles that are fun to work on. Puzzles that have realistic goal; one that is easy to see if you think about it.

    The Euler Project is perfect for this. From a newbie point of view the Euler problems get very difficult, very quickly.

    What I am asking is, does any one know of a site that brings Puzzle ideas together in a similar way to the Euler Project, but keeps them at a level that will draw in newbies to give it a try?
    Friday, April 17, 2009 2:30 PM
  • I want the same thing.  So many projects assume a skill level that is well beyond a beginning programmer (or their teacher for that matter).

    I have been using the SB turtle a lot with my classes.  After about 4 projects they really understand want a For is all about.  I have them construct tesselations where each shape has to be a sub procedure.  Constructing the rows of shapes requires a For.  Starting a new row requires storing the starting point in a variable then changing that variable for the next row.  All of this is very simple stuff but to a beginning programmer it can be very challenging.  The actual program is easy, the thinking process is not.

    Here is a list of what my kids have done so far.  There are a number of simpler projects that I have not listed.

    1.  A quadratic equation solver.  Requires If statements and a While if the program has a "Do Again?" loop.  A very simple program that requires good fundemental understanding of the problem and simple math (for sophmores).

    2.  Generate the first n terms of the Fibonacci sequence.

    3.  Three different tesselations of increasing dificulty.

    4.  A polygon drawer.  Input the number of sides and get a drawing.

    5.  Modify the paddle program from the "Introducing Small Basic" document so the paddle is on one of the sides and is controlled by 2 keys on the key board.  This requires the kids to disect the original program, understand how it works, then re-write it for the assignment. 

    6.  Draw a circular pattern of bricks.  This assignment is hard to explain without the picture.  It requires a nested For and a little math.

    7.  Draw the golden rectangle pattern that generates the logrithmic spiral.  This assignment is again hard to explain without the picture.

    Most of these are turtle assignment simply because it generates a visual result the kids can see.  They know if it is working or not.  The problem with most of these is I do not hit If statements enough.  This is a one semester course of rank beginners, not computer geek types.  I am designing this course on the fly.  I am attempting to target thinking skills as opposed to fancy programming.  Programming II get into files and what not with VB.net.

    If there was some way to post Word docs on this site I could give you the assignment sheets.
    Friday, April 17, 2009 3:29 PM
  • Loyola IT,
    You said,
    "If there was some way to post Word docs on this site I could give you the assignment sheets."

    Have you thought about looking into Microsoft's "Skydrive". You get 5Gb of free space to upload to. You can use private or public folders. Just upload the files to a public folder and supply a link in a post. The great thing is it's free. Look on the Microsoft or MSDN sites and you should find it easily.

    Friday, April 17, 2009 5:39 PM
  • To be fair, I decided to post a full list of the projects that I have been giving my Intro to Programming students. The full descriptions that I give them (all projects are assigned, and solutions are submitted through Moodle) are very detailed and read like stereo instructions. We just started the 19th project today with the introduction of branching using the Goto statement. There are four weeks until the end of the semester and we will be going from Goto to For to While to Sub programs.

    Who am I? -- Displaying your first and last name as a write and writeline operation.
    Name Art -- Using writeline operations to display an ASCII art version of your name
    Oblio's Dog -- Using Turtle graphics, draw an arrow
    FreeStyle -- Using every turtle operation at least once, create your own design
    Making Variables -- Follow the descriptions to store values in variables (simple practice)
    Variables In Use -- Store favorite song, move, etc in variables; then display the values.
    Circling -- Store pi and radius in variables; use the values to find area and circumference
    Music Survey -- Use read and readnumber to ask about music tastes; display the results
    How Hot is Hot -- Read temp in Fahrenheit from user, display the conversion to Celsius
    Boxing -- Ask user for size, using the turtle commands to draw a box of entered size
    Madlibs -- Ask user for parts of speech; display a story created from them
    Calculated -- Simple practice using the operations of the Math object
    Hypotenuse of a Triangle -- Ask user for two sides; calculate and display the third
    Decisions -- Simple practice using the If statement
    More Boxing -- Rework of boxing, displaying an error message if box size is too big
    Heads or Tails -- Ask the user to choose, randomly do a coin toss; match, user wins
    Hello Mr. Computer -- Mock chat; questions, answers, Ifs for different responses.
    Rock-Paper-Scissors -- Ask user to choose, randomly pick; match one of nine endings
    Going Places -- Given a poem that displays out of order, add Gotos to display right
    Saturday, April 18, 2009 12:11 AM
  • Fist, put your students to the task of doing a little guess-a-number-game: The program makes up some random number without revealing it, then lets the user enter guesses at what that number, each time reporting whether the guess was above or below the "secret" random number. The game ends when the user manages to guess the right number.
    This should all be well within "reach" of students who've been introduced to basic input/output through the textwindow, if/then-decisions, and goto.

    When they've got that up and running and test and play with it, some may come up with a smart strategy (halfway approximation), that ensures a "victory" within a few guesses. So the next challenge is to put this strategy into a new program in which the user chooses a secret number, and has the computer guess at it.

    The next step is to turn the computer-guesses-the-secret-number program, into a program that uses the same strategy to solve those "nasty" equations where you can't just isolate the "x" on one side and get a closed-form answer.
    38911 BASIC bytes free...
    Saturday, April 18, 2009 9:26 AM
  • Coding Cat

    I have posted my assignments in a Skydrive public folder.  Let me know if the Skydrive is accessable.  i have never used it before and there is a lack of help or directions for idiots.

    http://cid-c10376c3512f464d.skydrive.live.com/browse.aspx/.Public
    Monday, April 20, 2009 4:13 PM
  • Thank you kindly, I managed to grab copies of the files without a problem. I will return the favor first chance I have.
    Monday, April 20, 2009 5:31 PM
  • thank you very much sir :D
    Wednesday, April 22, 2009 8:59 PM
  • Hello Coding Cat,

    You said " all projects are assigned, and solutions are submitted through Moodle ". is there a link to go there?

    Thank you,

    Yasser
    Yasser Jamil
    Monday, April 27, 2009 12:18 PM
  • Hi, I'm a beginner and I recently created a pretty cool drum machine using colored balls, recorded on a webcam. I got the idea from a YouTube video. Search for Gumball Drum Machine and you should find it. I thought it was a cool project and would recommend it for any beginners...
    Friday, April 29, 2011 7:23 PM