PDA

View Full Version : Programming Challenges: The Reboot (Discussion on what we should do)



Note360
July 6th, 2007, 02:18 AM
Any way I missed the old Programming Challenges and I decided to try and restart them.

I have a new idea this time. We can make bigger challenges that would take longer amounts of time to program, and split up into teams to develop the applications based on language preference.

AlexThomson_NZ
July 6th, 2007, 02:29 AM
Sounds like a plan. One thing we will have to consider is the +ves and -ves of collaboration:

+ves:
* Less experienced coders get familiar with working in a group (CVS, ettiquite, etc.)
* More experienced coders can provide guidance to junior members
* Bigger projects = perhaps more usefull projects
* Better code through peer-review
* Can incorporate non-tenchnical people (HIG, artwork teams, etc.)

-ves:
* People might be put off by having to work in a team environment
* Might not be enough interest to support multiple teams (how popular are these comps?)
* Working with collab tools adds complexity to task
* People might be put off with a longer-term project committment
* More time lost in duplication of effort- especially for a more 'major' project

All in all, I would probably prefer to see maybe a few regular smaller competitions (at least until I can sus out the competition ;) ), but I'm always happy to go along with the consensus...

Note360
July 6th, 2007, 02:45 AM
Good point, but I think we should try some team games. Even if we are only able to support one team it is a good idea. Also we can run the team games and short games at the same time.

other -ves would be: uneven language teams. However, if we do that we need to agree on a language (unless we use mono?). If parrot was out it would be less of an issue (GET MOVING PERL 6/PARROT TEAM). I keep on hearing things about perl6 nearing completing but i think i lost hope. Oh well, back to ruby, python and the Cs

AlexThomson_NZ
July 6th, 2007, 02:59 AM
yeah can't wait to get into some perl6 as well, gave up waiting for the 'imminent' perl6 probably a couple of years ago though...

Anyway, my dollars are on C/C++ for the team projects as it has probably the largest userbase (I am sure someone will probably correct me here). Individual projects obviously a free-for-all.

Any ideas on a comp. theme? Been racking my brains and haven't got anything...

AlexThomson_NZ
July 6th, 2007, 03:01 AM
Oh yeah, another -ve: larger projects I guess you start having to be more specific on requirements and scope

samjh
July 6th, 2007, 10:44 AM
I'm not a big fan of doing very large challenges, because they actually involve substantial time commitment. With work, study, family, etc., not many people will be able to participate.

Maybe there should be two programming challenge series running.
Monthly or seasonal challenge, which will involve substantially large and collaborative tasks. Weekly challenges, which will be small ones solvable in no more than 10-20 minutes for experienced programmers.

muso
July 6th, 2007, 02:30 PM
Hey, programming challenges sounds like a great idea! I've done a lot of programming, but I'm new to Linux and C++ (although I've dabbled with both in varying amounts for years), but I want to throw myself into the deep end.

What sort of projects? (at college, longer than I care to remember ago I worked on C++ challenges like Towers of Hanoi, and LZW compression)

How would challenges be organised, and could those of us who only have time here and there get involved?

Anyway, I'm here to say I'm interested!

AlexThomson_NZ
July 6th, 2007, 09:16 PM
Hey, programming challenges sounds like a great idea! I've done a lot of programming, but I'm new to Linux and C++ (although I've dabbled with both in varying amounts for years), but I want to throw myself into the deep end.

What sort of projects? (at college, longer than I care to remember ago I worked on C++ challenges like Towers of Hanoi, and LZW compression)

How would challenges be organised, and could those of us who only have time here and there get involved?

Anyway, I'm here to say I'm interested!

The sort of projects you get at college are the sort of complexity I image as well. (The one other comp I saw on here was a maze generator). I propose maybe looking at around a fortnight for each comp, maybe longer or shorter depending on how hard (ie. is it a simple command-line prog, or does it require graphics, etc.).

Am still stuck for ideas though, what I've got so far:
* Mandelbrot generator (very easy, would be good intro to basic UI and drawing)
* Rubik's cube solver (not as hard as it sounds, can be done using set moves- challenge can be to use as few moves as possible)
* Old-School demo comp (or am I showing my age?! :) )
* Some gameshow rip-off ("Deal or no Deal", "Wheel of Fortune", etc.- can be done very easily or with a fancy GUI)
* A boadgame/card game (monopoly, 500) (probably better suited for group comps)
* Other simple games (hang-man, mastermind, tic-tac-toe, lemonade stand)

How do these sound?

muso
July 6th, 2007, 10:13 PM
They all sound good to me, but what language(s) are we using? Personally, I'd like to use C++ and maybe the SDL libraries for graphics...

As for a project - if this is to be a team project, then I guess it would have to be something that could be modularised for individuals to work on separate parts. The first thing that I thought of was a card-game. Reason being that it could just about work in text-mode, but be adapted to use graphics (and also drag-and-drop, etc), and allow modules for rule variations, or other card games...

All the ones you listed, AlexThomson_NZ, sound good too, and at the kind of level that would suit me. (I used to love those demos of Amiga days, btw...).

AlexThomson_NZ
July 6th, 2007, 10:27 PM
That would probably be my language of choice too. If we are doing individual comps though I don't see why we should have to standardise on the language, just let the folks use their weapon of choice I guess.

Wouldn't it be great to resurrect the Amiga demo days on Linux! Maybe that is something else we can look at running in parallel to the programming comp?

po0f
July 6th, 2007, 11:35 PM
What I never got around to doing is developing a series of challenges that would tie in together at a set goal, after which the participants would have a full-fledged program that they coded. As it stands, the programming challenges never did anything useful (except maybe the aforementioned maze generator, I forget the other ones).

I hope someone else will have the knowledge (I'm really not much of a programmer) and the time (a precious commodity) to do this. I feel bad for not having done a programming challenge in so long. Someone please pick up my slack!

TreeFinger
July 6th, 2007, 11:40 PM
I'd love to be a part of this.

Since I am a less experienced programmer I would like to be on a team project and see how things get done, check out source code, and maybe be able to help out with my coding knowledge a little bit.

I am a novice in C/C++. Right now I am concentrating on learning C.

I'm sure python would be something I could jump on to and have it be on the same level as my C knowledge pretty quickly.

Anyways, I think team projects would be the best idea for novice programmers.

AlexThomson_NZ
July 6th, 2007, 11:56 PM
Keep in mind though TreeFInger that even in individual projects there will be many others people doing the same project you can ask for help. In some ways this might be easier for a novice than trying to understand the program flow of a larger program someone else has architected.

Note360
July 7th, 2007, 02:52 AM
Ok the way i see it we have 3 different ideas here.

Team tasks
FUn Challenges/Riddles (useless programs that try to solve useless problems)
Set of Goals and a time limit (1 person, possibly small teams)

I think the team task would be fun and we can do that seperatly form teh other two. Programming Riddles are good to stretch the mind but not much else.

Project Ideas:
Create a basic programming language (speed doesnt really matter so it could be done in any language, but if you hope for it to be useful you may want to use a compiled language)
Create a alternative shell
Create a calculator
Card Games
Rss Reader/Podcast Fetcher (for cli?) (I already drafted up a basic one called leak)
A Tagging System (like del.icio.us) for the desktop

Note360
July 7th, 2007, 08:25 PM
I am leaning on the programming language, we can all do it seperatly but help eachother along (and get started) and assemble our tools and tutorials and whatnot.

Wybiral
July 7th, 2007, 09:04 PM
I am leaning on the programming language, we can all do it seperatly but help eachother along (and get started) and assemble our tools and tutorials and whatnot.

What kind of language are you talking about?

Like a full-functional programming language, or just a simple script for some purpose or another?

Note360
July 7th, 2007, 09:24 PM
the desicion is up to you. Basically the idea on that type of project would be we all work together to make sure every one has a knowledge and cna get working and we could bounce ideas off of one another, but we would all be working on our own languages (if teams want to band together that to is acceptable).

Wybiral
July 7th, 2007, 10:14 PM
the desicion is up to you. Basically the idea on that type of project would be we all work together to make sure every one has a knowledge and cna get working and we could bounce ideas off of one another, but we would all be working on our own languages (if teams want to band together that to is acceptable).

If everyone is doing their own thing, how will we all be able to work together?

Maybe if there was a specific task in mind?

Such as... Your language must be capable of A, B, and C... Bonus points for D.

If I were going to write a language really quickly it would probably be incredibly low-level (like early BASIC or assembly), which would be vastly different then someone working on a higher level interpreter or something.

Anyway, what I'm saying is that I think it would go over better if there was more of a goal. Language is kindof ambiguous.

Regardless, count me in. It sounds like a fun one.

AlexThomson_NZ
July 7th, 2007, 10:16 PM
Hey the programming language works for me. Had a similar project at uni a long time ago, you want to get the ball rolling? Maybe we should have a target for what sort of functionality it provides, ie. is the resultant language gfx orientated, algorithm, string handling, etc?

AlexThomson_NZ
July 7th, 2007, 10:22 PM
Hmmm Wybiral got in just before me.

The more I think about it, this might be too far toward the more complex end, but in implementation and in scope. Also, it might be too hard to quickly try other people's projects, as toolchains can be a bit of a nightmare to set up properly if they have special requirements (ie. might use SDL or OpenGL), and also can anybody actually be bothered learning a language syntax just to try someone else's program?

Maybe we should start with something easier?

TreeFinger
July 7th, 2007, 10:55 PM
I am hoping to be a system admin one day. I would like to work on a project that pertained to something a system admin would have to do with a programming language. I have no idea what kind of project I would have to code for but I know it would just be a script of some sort.

Maybe we should put people into groups of what they want to accomplish.. like System Administration, Computer Science, Computer Engineering and base the projects off of that.

po0f
July 8th, 2007, 09:26 PM
Wybiral is already cheating, he's hiding a language implementation up his sleeve that's already completed. ;)

Wybiral
July 8th, 2007, 09:41 PM
Wybiral is already cheating, he's hiding a language implementation up his sleeve that's already completed. ;)

Hey po0f.

lol... Well, I have been playing with a few different projects involving tokenizing/compiling/interpreting :)

But that's another reason I think it would be best if there were specific goals for the language so people couldn't use something they already have.

Fingerprint
July 9th, 2007, 07:22 PM
Hello, all. :)
In February this year, i made a thread on SK Forum (Serbian forum) "Programming Challenges". The game was/is going pretty well, and two weeks ago two of my friends came up with the idea to make the "programming challenges" as an independent site. We started working on site and forum, and both should be up and running in about two weeks (a month-top). You are all more than welcome to join. I will post the link as soon as the site and forum are done.

Note360
July 9th, 2007, 07:34 PM
Sounds cool.

AlexThomson_NZ
July 9th, 2007, 09:59 PM
Sweet- thanks Fingerprint (welcome to the forum too BTW) :)

AlexThomson_NZ
July 16th, 2007, 10:12 PM
Is there still interest in this? I thought maybe we could do a general OpenGL competition- that way it would be accessable to both C/C++ and Python types and could be as simple or complex as time allows... any other thoughts on this?

It seems like there are quite a few people with experience as well that can lend support for people that haven't used it, and also, it is very simple to get something up and running quite quickly.

Note360
July 16th, 2007, 11:34 PM
Is there still interest in this? I thought maybe we could do a general OpenGL competition- that way it would be accessable to both C/C++ and Python types and could be as simple or complex as time allows... any other thoughts on this?

It seems like there are quite a few people with experience as well that can lend support for people that haven't used it, and also, it is very simple to get something up and running quite quickly.


Sounds good. Sorry I was
preocupied with something else.
My main problem is that I never did anything in OpenGL. Alex What do you suggest the challenge be?

AlexThomson_NZ
July 16th, 2007, 11:40 PM
I dunno- maybe just a free-for-all show-what-you-can-do? or a theme, like "space" or "fireworks"?

I can put up some skeleton code and some samples if you like.

AlexThomson_NZ
July 16th, 2007, 11:45 PM
BTW, for anyone who hasn't used openGL before, it's seriously easy if you have even a basic understanding of C. Have a look at NeHe's openGL programming site, there are some 30 tutorials, all of them come with Linux sources, ready to run.

// I have no idea about GL with python, maybe someone can put up some skeleton python code?

Note360
July 16th, 2007, 11:54 PM
BTW, for anyone who hasn't used openGL before, it's seriously easy if you have even a basic understanding of C. Have a look at NeHe's openGL programming site, there are some 30 tutorials, all of them come with Linux sources, ready to run.

// I have no idea about GL with python, maybe someone can put up some skeleton python code?

Sounds good. I am trying to learn C more completely so I have been forcing my self to do stupid tasks (like to learn about C strings and structs I made my self make a string struct. I haven't found it overly useful, but it was fun I also learned about pointers). Any way back on topic. OpenGL sounds cool though. Ill go check out NeHe's thing

ghandi69_
July 16th, 2007, 11:57 PM
count me in!!

Wybiral
July 17th, 2007, 12:55 AM
Sounds good to me! Hopefully with some specific goal.

We should start simple though... Many of us have a couple of years of C/C++/OpenGL code-base to work off of, so it would be a pretty biased competition for newbies to jump into.

On the other hand it might prove to be a helpful learning experience for everyone.

AlexThomson_NZ
July 17th, 2007, 01:02 AM
Sweet, sounds like there is a bit of interest then.

I propose then an openGL-based fireworks display.

If I get time tonight, I'll put up a skeleton C++ program (and C if I get time), and some "helper" classes/tutorials (drawing transparent Quads, easy texture loading, etc..). We'll allow a couple of days for folks to have a look at some tutorials, ask for help, get dependancies sorted, etc. then maybe get into it! :)

Wybiral
July 17th, 2007, 01:20 AM
Sweet, sounds like there is a bit of interest then.

I propose then an openGL-based fireworks display.

If I get time tonight, I'll put up a skeleton C++ program (and C if I get time), and some "helper" classes/tutorials (drawing transparent Quads, easy texture loading, etc..). We'll allow a couple of days for folks to have a look at some tutorials, ask for help, get dependancies sorted, etc. then maybe get into it! :)

Is it OK if we use the functions we have? I have my own set of SDL/OpenGL/Math routines that I usually use.

AlexThomson_NZ
July 17th, 2007, 01:35 AM
Absolutely- actually I might not put up my helper classes, my sloppy code would probably put too many people off (and probably aren't needed for a program this small). I will still put up some skeleton code though for people who might not have seen an openGL program before to see how easy it is.

Just to clarify- you can use any language for a comfortable in and use any existing code you might already have

Wybiral
July 17th, 2007, 01:51 AM
Absolutely- actually I might not put up my helper classes, my sloppy code would probably put too many people off (and probably aren't needed for a program this small). I will still put up some skeleton code though for people who might not have seen an openGL program before to see how easy it is.

Just to clarify- you can use any language for a comfortable in and use any existing code you might already have

Awesome.

dave091
July 17th, 2007, 02:33 AM
Is there still interest in this? I thought maybe we could do a general OpenGL competition- that way it would be accessable to both C/C++ and Python types and could be as simple or complex as time allows... any other thoughts on this?

It seems like there are quite a few people with experience as well that can lend support for people that haven't used it, and also, it is very simple to get something up and running quite quickly.

I always liked the programming challenges even if i never submitted a program. It was always fun to see other people's code.

That stated, I will get all the dependencies for OpenGL after writing this and at least attempt this challenge. :p It has been a while since I did a few simple programs in OpenGL and may have to look at some (NeHe) tutorials. I also need to dust up on my C/C++

jvc26
July 17th, 2007, 10:12 AM
I've always enjoyed reading the programming challenges I havent entered one yet, but it will be nice to see them cropping up again.
Il

po0f
July 17th, 2007, 09:24 PM
AlexThomson_NZ,

Care to post the challenge officially?

AlexThomson_NZ
July 17th, 2007, 09:42 PM
Yep, sorry for the delay, my PC stopped booting, will do it now :)

Fingerprint
July 18th, 2007, 11:43 AM
welcome to the forum too BTW :)
Thanks!
I'm delighted to see that many of you like the idea.
Let me just mention this : Programming Challenges is about solving problems, and having fun. Many different people will join us (well, I hope so), both Linux and Windows users so some programs won't work on both systems (luckily I have both). I hope you don't mind this.

The forum is where the challenges are held (site just contains statistics and news), and consists of four boards :
General - usual chit-chat
Challenges - The "arena"
The Showcase - a place to show off with your programs and ideas
Help - self explanatory

Programming Challenges have their own rules, polished and edited for last few months, so they cover any possible problem/issue, and still provide great fun. You will be able to read them on the forum :)
There will be some special rewards in "programming challenges" including :
1. Best GUI
2. Audio
3. Graphics
4. Best approach/algorithm
5. AI
6. Stone of Shame (if someone is caught cheating, braking challenge rules, or code-stealing)
7. A few more, prehaps. If you have suggestions you can PM me or post it here.
The rewards are still being designed, and we have few (potential) technical problems to solve.

And yeah, we're planning to pay hosting, we don't want no ads or 3rd party banners on the site :)

bradleyd
July 18th, 2007, 09:45 PM
count me in also. where do we start?

dave091
July 18th, 2007, 09:51 PM
count me in also. where do we start?

Here is the first programming challenge:

http://ubuntuforums.org/showthread.php?t=503243

AlexThomson_NZ
July 18th, 2007, 10:08 PM
Hey fingerprint, what's the URL?

Fingerprint
July 19th, 2007, 07:59 AM
No URL so far :)
The forum and site are being worked on, and I will give you URLs as soon as they're done.