It’s all about challenges!

Hello people!

This post is mainly going to be about the challenges and what part they will play in our club.

So, to start off, these programming challenges will be mainly solved in Java (since most of you guys should be familiar with it) but later on we will try to introduce other languages as well. By participating you will get points and at the end of the semester we will give out prizes to people who did their best. What kind of challenges are they? Some of you may already be familiar with one of them, so here they are:

  • Team challenges. These challenges will be done during the meetings, so you should bring a laptop when we announce the challenge meeting. We will group you into teams randomly and you will be able to start coding then. The time for solving the challenge will be set for the meeting only, but there’s a possibility to extend it for the rest of the week. People that did not attend the meeting unfortunately cannot participate in the challenge, since the time is set for meeting only, however they can do the challenge on their own and try to persuade the challenge creator to get evaluated. The amount of points that a team gets is automatically assigned to the participant. Team challenges are usually worth more than weekly challenges, however, it is advisable to do both, since they are fun, challenging and still you get points!
  • Weekly challenges. You probably already guessed it, these challenges will be done during the whole week! These are individual challenges, so they are a little bit easier, but we don’t mind if you discuss or try to tackle them with somebody else. The way they work is a little bit different – as soon as you register to the challenge you can instantly start solving it. On the week that the team challenges occur there will be no weekly challenge.

For our club challenges we are going to be using a web platform I have created called Challenger. If you are planning to participate, you should register. The way the challenges work on the platform is that you have to register to each challenge separately. When you get access to the base code that I like to call “bones of the challenge” you can try to copy it into an IDE you prefer and start solving it. The main method of “bones” I usually prepare takes in two arguments: input file name and output file name. Therefore, you should create an input file in your project and add the arguments in the running configurations (if you’re coding with eclipse here is a very nice description on how to do it). Once you think you have solved the challenge you can “push” your answer and it will be saved. Just a small warning for working in groups, the “push” and “pull” operations don’t merge your code. Therefore, if you and your teammate have written something and you both decide to push it, the one who does it later overwrites your answer (the code merging functionality, like in git, is in my plans, but I’m not sure if it will see the sunlight soon). If anything is unclear and you have questions, please ask, I will try to add more info to this post and keep you all updated if something changes.

The platform lacks some functionalities at the moment, however I am trying my best to fix all the bugs and add more stuff to it. It would be nice to get some feedback from you guys either about the challenges or the platform and if you have any challenges to offer, don’t be shy and talk to us.

Thanks for reading all this, if you did, I know it’s a long and maybe not the most interesting post. I am very excited to bring you new challenges that I find interesting and hopefully you do too.

Happy coding!