# Programming Contests, Software Development, and Employment Services at TopCoder

UPDATE: As some of you pointed out, the original rules of SRM 600.5 encourage some members to NOT compete. This was not our original intention, therefore we decided to relax the definition of “spectator” as follows: spectator is defined as a person who spends at least 3 hours in the Arena during the competition’s coding phase. We apologize for the midstream change of rules, but we strongly feel it’s better and much more fair this way. This Saturday (December 14th) TopCoder will hold its 600th SRM! In order to celebrate it, we’ve added one more match to the calendar on Sunday (December 15th). The two matches overall will award 200 limited edition “SRM 600” t-shirts and the Sunday’s match will also have money prizes!

Interview Questions A group of N high school students wants to play a basketball game. To divide themselves into two teams they first rank all the players in the following way: Players with a higher shot percentage are rated higher than players with a lower shot percentage. 10 Puzzle Websites to Sharpen Your Programming Skills Solving programming puzzles is a fun way to develop your logical and problem solving abilities. Also, when you’re familiarizing yourself with a new programming language, solving puzzles for that language can help speed up the learning process. Here are the top 10 popular programming puzzle sites that will help test your thinking and improve your programming, problem solving, and logical thinking skills. 1. Programming Praxis

8 Online Programming Contests Today, many companies take advantage of the drawing power of contests to draw out the power of the crowd. We have taken a look at photo contests and design contests before. Then there is Google with its lineup of contests you should keep an eye on. Getting Started with Rails 1 Guide Assumptions This guide is designed for beginners who want to get started with a Rails application from scratch. It does not assume that you have any prior experience with Rails.

Algo Muse 16-1 In the box There are n identical boxes in which 2n balls are equally distributed. The balls are labelled from 1 to 2n. We don't know which ball is in which box, but do know that each box contains two balls. The objective is to learn the arrangement of balls. Project Euler Learnable Programming Here's a trick question: How do we get people to understand programming? Khan Academy recently launched an online environment for learning to program. It offers a set of tutorials based on the JavaScript and Processing languages, and features a "live coding" environment, where the program's output updates as the programmer types.

Django at a glance Because Django was developed in a fast-paced newsroom environment, it was designed to make common Web-development tasks fast and easy. Here’s an informal overview of how to write a database-driven Web app with Django. The goal of this document is to give you enough technical specifics to understand how Django works, but this isn’t intended to be a tutorial or reference – but we’ve got both! When you’re ready to start a project, you can start with the tutorial or dive right into more detailed documentation. Design your model¶ Although you can use Django without a database, it comes with an object-relational mapper in which you describe your database layout in Python code.

Practice and Learn - Google Code Jam On this page you can see results and code from past rounds of Google Code Jam, and you can try the problems for yourself. If you're new to Code Jam, try following the Quick-Start Guide. Where should I start? If you're new to programming contests, we highly recommend starting with the least difficult problems and moving up from there as you get more confident. Beware: the round that has the easiest problem A may have a very difficult problem B! Getting Started: Creating First Yii Application To give you an initial experience with Yii, in this section we describe how to create your first Yii application. We will use yiic (command line tool) to create a new Yii application and Gii (powerful web based code generator) to automate code creation for certain tasks. For convenience, we assume that YiiRoot is the directory where Yii is installed, and WebRoot is the document root of our Web server. Run yiic on the command line as follows: % YiiRoot/framework/yiic webapp WebRoot/testdrive

Using Uninitialized Memory for Fun and Profit This is the story of a clever trick that's been around for at least 35 years, in which array values can be left uninitialized and then read during normal operations, yet the code behaves correctly no matter what garbage is sitting in the array. Like the best programming tricks, this one is the right tool for the job in certain situations. The sleaziness of uninitialized data access is offset by performance improvements: some important operations change from linear to constant time. Alfred Aho, John Hopcroft, and Jeffrey Ullman's 1974 book The Design and Analysis of Computer Algorithms hints at the trick in an exercise (Chapter 2, exercise 2.12): Develop a technique to initialize an entry of a matrix to zero the first time it is accessed, thereby eliminating the O(||V||2) time to initialize an adjacency matrix. Jon Bentley's 1986 book Programming Pearls expands on the exercise (Column 1, exercise 8; exercise 9 in the Second Edition):