Texas UIL Computer Science

Index This web page contains information for the Texas UIL Computer Science contest. Please email Mike Scott with questions or suggestions.
Recent Updates

May 5, 2008: Posted the State written exam in pdf format and the material from the hands on portion of the state contest in zip format.

April 14, 2008: Here are the 2008 regional materials. (zip file format) The zip file contains the written test, hands on problem statements, hands on sample data and expected output, hands on judging data and expected output, and suggested solutions.

The judging data for the Goldbach problem requires the addition of data for primes that are the sum of two equal primes. For example 34 = 17 + 17 is part of the output. The suggested solution to this problem should be changed so the for loop test is i <= limit.

On the bongo problem the spaces between letters and numbers on the 7th and 8th data sets should be removed.

March 31, 2008: Per the UIL CS advisory council request I am posting all of the district materials to help teams prepare for regionals.

I have also gotten several requests for the 2007 regional hands on materials. I apologize these were not posted earlier.

March 17, 2008: I have posted this year's dry run problem. It is essentially the same as year's past. The purpose of the dry run is a communications check of the contestants' systems and the judging systems. Teams may have the dry run solution preloaded on their machines but need to delete it after the dry run, before the actual contest starts. Here is the dry run problem description(pdf format), the input file, the expected output, and a suggested solution.

February 29, 2008: The revised contest director's guide for the pilot of the hands on contest at Districts has been posted. I have also updated the materials at the district hands on page with the 2008 version. (No significant changes from the 2007 materials.)

September 28, 2007:  The original practice test had errors on questions 22 and 25. I have posted a corrected version. Thanks to Charlotte Scroggs for finding the errors!

August 27, 2007: Posted the 2007 - 2008 topic list, supplemental class reference, a practice test and a commentary on the practice test. All files are pdf format.

August 21, 2007: UIL will again be conducting a pilot of the hands on programming portion of the Computer Science contest at the district level during the 2007 - 2008 contest year. Computer Science coaches as sponsors are urged to contact their UIL District Academic Directors to agree to participate in the pilot. UIL will be contacting the UIL District Academic Directors via letter and email this fall to offer them them opportunity for their district to participate in the pilot.

There will be a third Computer Science Session at the UIL Student Activities Conferences this fall to demonstrate how to run and judge a hands on contest. This session is designed for contestants, CS sponsors and coaches, and school UIL coordinators.

Posted the minutes from the UIL CS Advisory Committee meeting which took place on August 17, 2007.

May 7, 2007: The 2007 State contest hands on data. (Problem statements, input files, output files, and sample solutions.) are now available.

May 4, 2007: The UIL computer science listserv is up. This is a forum to discuss issues with the contest and potential changes.

Subscribe to the listserv by sending an email to

listproc@lists.cc.utexas.edu

In body of the email include the line

subscribe uil-cs FIRST_NAME LAST_NAME

where FIRST_NAME is your first name and LAST_NAME is your last name.

Useful Links UIL Homepage

UIL Computer Science Page

The Sun Microsystems Java homepage

Download the Java SDK Version 6.0

View the Java Standard Library Documentation (Version 6.0)

Download the Java Standard Library Documentation Scroll down to the link for "J2SE 6.0 Documentation" and click to download. The instructions for  installing the documentation are at this web page.

The Java compiler for Macintoshes

The PC^2 judging environment. This is a networked judging environment that may be used to judge hands on contests.

IDEs The Eclipse IDE (interactive development environment)

The BlueJ IDE

The JCreator IDE

TextPad. (Not really an IDE. A text editor, with some built in programming capability. (Syntax highlighting, ability to compile and run Java programs with keyboard shortcuts.)

References The Java Language Specification online (one of the official references for UIL Computer Science)

The Java Tutorial Online

Hands-On Programming Practice Problems Previous years' hands on problem sets for UIL Computer Science

JavaBat. Java bat was designed by Nick Parlante of Stanford University. These are simple programming problems that do not require reading from a file, but are very good for practicing logic, Strings, arrays, decision making, and loops. Problems can be written, compiled, and checked online.

Universidad de Valladolid hands on programming problems archive and online judging system.

The USA Computing Olympiad Training Program Gateway. More hands on programming problems.

Top Coder. A site that runs many programming contests. You must register to use the site. The practice rooms are especially useful.  Top Coder has a high school specific contest. See the link for more details.

Third Party Practice Materials and Teacher Resources

Best of Texas Contest. A distributed contest run over a period of several weeks.

CIS Tests. Also contains free programming problems and explanations of new topics on this years contest.

Hexco Academic

Blue Pelican Java. An online textbook for high school Computer Science using Java.

A+ Computer Science Teaching Materials

APCentral. For teachers of AP computer science. Especially useful are the teacher's resources pages available from the course homepage. APCS A homepage. APCS AB homepage.

Interesting Applications of Computer Science A page about the Austin Villa Robot Dog Soccer Team. The movie show the dogs in action. Here is the home page for the Austin Villa Robot Dog Soccer Team. The team is run by Professor Peter Stone of UT. .

A traffic simulation for automated cars using a reservation system. (When you choose the Simulate on this page you must then select the Simulator button at the top left of the follow on page and select run to start the simulation.) This is one of Kurt Dresner's research areas. Kurt is a CS PhD candidate at UT. Look at this movie of a later version of the system that allows for turns. And compare it to this video of urban traffic in India.

The great race. Getting an autonomous car to drive across the desert. Sponsored by NSF.

Alice. An fun, introductory tool for learning to program. From CMU.

Playing with fire. "Animated Suspended Particle Explosions." Examples of what can is being done in the area of computer graphics, by Professor Okan Arikan of UT.

Goggle Trends. Compare you favorite Hollywood star with computer science.

Reading From Files

Java 6.0 is the official version for the hands on portion of the Regional and State contests. The Scanner class, a member of the Java Standard Library in version 5.0.

Here is a discussion about the ins and outs of using the Scanner class to solve problem number 2 from the regional hands on contest. 

  • Scanner is in the util package, not the lang package so you need to include the line

     
    import.util.Scanner;

     at the top of the class.
     

  • To create a Scanner object and connect it to a file you must create a File object based on the name of that file. This can be done with one line;

    Scanner s = new Scanner( new File("scores.dat"));

    Remember all programs are judged assuming the file is in the same directory as the compiled class file so do not put any path information on the file, just the file name. To use the file class you must include the line

    import.io.File; 

    at the top of your program.
     

  • Unfortunately instantiating a File object can result in in an IOException and this is a checked exception so you either have to use a try-catch block or declare that the method that contains the code that generates the checked exception throws an IOException. In actual programming practice it would be much better to include a try-catch block, but for educational and programming contest purposes it is much easier to simply declare that main throws an IOException. Thus the declaration of the main method looks like this:

    public static void main(String[] args) throws IOException

  • IOException must also be imported. This can either be done as a separate import statement:

    import java.io.IOException;

    or since the program now needs multiple classes from the io package we can use the wildcard import. Again, not the best programming practice, but for contests, not a bad idea.

    import java.io.*;

Here is problem 2 from the 2004 regional hands on contest, solved using the Scanner class.

Back to Mike Scott's Homepage