PUJ - Code Competition for University Students
PUJ is a new competition format that allows companies to acknowledge the best Java codes produced by students during an academic semester. Check out the competition rules created by CEJUG to promote the synergy between IT market and universities - including preliminary results.
PUJ - a code competition template
In this link you can find the translated rules of PUJ (Prêmio Universitário Java), a competition organized by CEJUG at the end of 2007. The competition inspiration states as:
To offer the local market a chance to evaluate what is produced in Java classes of universities, allowing companies and universities to share the same goal of helping people and market to become more productive.
The idea is to promote the collaboration between local people toward a better society, identifying shared values in all layers of the IT productivity chain, including students, teachers and professionals. Apparently obvious at first sight, this idea proved not so simple to be implemented in the real world. CEJUG held the first edition of PUJ at the end of 2007, and some very interesting feedback was collected. Some of those experiences, including the polemic points are discussed below.
-
Can I reuse the PUJ format in my local JUG or company?
Please copy the PUJ idea, be my guest to reuse the proposed rules. PUJ was invented to help people to promote Java and to unify Java people around the idea of quality software development. The competition format and its former ideas are not new, and you probably can enumerate a large set of similar initiatives, but PUJ is distributed without authorship in a hope to be adopted by the largest number of people. If you have a JUG, please do your own PUJ - you can change the name, and if you like it we only ask you to quote CEJUG somewhere ;)
-
Everyone is responsible by the quality of the education process.
A beautiful side-effect of PUJ is to distribute the idea quality on all partners of the educational process: students, professors and companies. When a teacher knows his class statements will go public, he becomes naturally concerned about the quality of the statements. Other good side-effect is the comparison between several statements done by students and the market professionals, avoiding bad teachers to continue to destroy the future of the young talents. Basic posting: bad professionals, bad teachers and bad students do not find space to hide under PUJ - I invite you to think about that.
-
What kind of statement is used in PUJ?
All kind of statement, the submissions of PUJ should include works already done - the competition itself does not provide any statement. The goal of PUJ is to ask IT professionals to evaluate what is being produced inside classrooms, and it does not make sense to restrict or to force a specific type of work to be evaluated. Advanced mathematics and tic-tac-toe programs are supposed to be eligible to participate in the same level. Apparently unfair, we detected some interesting points about that:
-
The number of submitted works was much lower than we expected. It unveiled a simple fact that graduation students are not producing much Java code or they are producing low quality works. We didn't received the advanced mathematics works as well we didn't received the tic-tac-toe ones :) The small number of submission suggests us to promote PUJ and forces the universities to explain why their students are not competing - since the universities are always doing marketing about their high-quality classes, where is this quality?
-
The local universities share a very similar curriculum. The subjects and type of works are the same. Part of this similarity comes from the government regulation of education, and part comes from the lack of creativity of the teachers, who prefer to copy the old statements instead of adapting it to their pupils reality.
- The code of students from different universities was much less different than we expected. In a first moment, the famous universities were considered virtual champions and we expected their students will annihilate the other ones by superior education. The reality exposed a close ability between students from several different universities. We don't have a stable opinion about the causes, but we believe it is due to the fact that academic recognition comes from scientific research and not from technical education.
-
-
What are the evaluation criteria?
This is a recurrent question, and it seems locked in the traditional programming competition formats, where the rules are settled as static criteria from a point of view of a unique company or group of persons. In the real world, the idea of quality is not limited to a tabular enumeration of criteria, and the common sense about what is good or not seems to be more a natural perception about quality than cold numbers or technical arguments. The only criterion suggested by PUJ to the evaluators was: Classify the quality of the students work using your own point of view.
-
Does it make sense to allow people to judge something without establishing clear rules on how to do that?
Simple answer: YES, it makes absolute sense to ask people about the quality of something even if we know some of them may not have solid background to understand or even classify it - because this is what happens in the real world. How many times did you notice that amazing idea failing as commercial product?
In case of PUJ, it is even more fair because the evaluators are participating in the competition themselves - students, teachers and IT professionals looking for a shared mind about what is being produced inside classrooms. The trick to minimize deviations is to consider the different level of maturity of the participants - we adopted weights based on the role each evaluator play in the local market: students opinion is weaker than senior professionals opinion, but all opinions are contributing to the final grade of the works. The more people you include in this peer-review process the more fair it becomes. In the first edition of PUJ, we defined the following opinion weights:
- IT professionals: grade x 7
- Instructors: grade x 4
- Students: grade x 1
-
Why not to use technologies categories?
This is an open decision, and in the first edition of the prize we asked people to focus more on the quality of the implemented solution than in its underneath technologies. We believe it reflects the IT market, because no client ask you to do a software with technology A or B, clients are looking for solutions to their problems. One nice side-effect of the first edition of PUJ was to discuss the epistemic view of the novice developers: Students tend to focus on technologies instead of focus on the solution of problems.
To contribute to dismiss this problem, PUJ asked the students to compete in the same arena with their preferred weapons ;). The first reaction to this idea was a lot of questions like How can I apply my Swing application against the other student's Ajax application ? This reflected the students' fetish about hype technologies instead of the quality of solutions. Students tend to classify something better even before to look at it, just because they know certain technology was used - and it is nocive to their own carriers. The goal here is to put experimented professionals and students evaluating the same code and to give the students a chance to think about why some works are better than others even using a supposedly worse technology?
Special remark: it worked fine in the first edition and the controversial discussion about that continue to echo in our JUG lists. We believe this was one of the best contribution of PUJ to the approximation of academic reality to the local market expectations. The PUJ competition does not aim to evaluate technologies, the goal is to evaluate the quality of students' works - in a perfect scenario, people learn how to think about the problems and their solutions instead of trying to force the adaptation of the problems to their preferred technologies. Of course the grades were contaminated with the hype but we believe with time this strategy will help to reduce the gap between classrooms and development centers.
And the winner is...
First edition of PUJ was experimental, but proved its values with some good competitors, besides going under the spotlight of Ceará IT market. The local results are more important in local community, but I would like to use this space to honor the great winner of the 1st PUJ: Alexandre Pinheiro e Silva, student of UNIFOR University. He produced a work titled "Virtual Video Rental Store", a web application using Struts and EJB3 technologies. The second place was granted to Francisco de Assis Ribeiro Junior, student of FIC Faculty. He produced a work about process communication, a Peer to Peer application based on Sockets. Both works with source code and comments (only in Portugese) are available here.
Alexandre Pinheiro e Silva, winner of the
1st PUJ CEJUG - 2007/02 - Fortaleza / CE - Brazil: |
|
That's it, we confirmed the second edition of PUJ to the first semester of 2008, and we expect to evolve from the original model to something that can help universities and companies to establish their shared values. We believe one of the prime goals of a JUG is to promote Java, and to put students to compete is a good action in this sense.
If you have ideas on how to improve the PUJ format, or if you identify problems in our rules, please comment in the form below.
- Printer-friendly version
- felipegaucho's blog
- 1259 reads






