# ProCo: High School Programming Contest (Bay Area)



## Lucas Garron (Apr 17, 2009)

The San Francisco Bay Area has a lot of math competitions and a lot of cube competitions. But apparently there aren't so many CS competitions. 
Anyhow, a bunch of us at Stanford are organizing a new competition for high school students, called ProCo ("Programming Contest").
It's on May 16. The main event consists of a 2-hour contest where we give you a set of problems, and you have to write computer programs to solve them.

http://proco.stanford.edu/​
So, there are a lot of programmers on this forum, and also a lot of high school people in the Bay Area. If you can program a bit, or know someone who can program, I encourage you to have a look at our site. Hopefully some of you can show up. 
(In fact, a competitor from SF09 is already registered for ProCo.  )

If you're interested in computer science/programming, but don't think you have enough experience for ProCo, feel free to send an email through the contact page on our site –or even PM me on this forum.

And even if you can't code, or don't live in the Bay Area, you should learn programming! It's not any harder than cubing, and much more versatile. (You can look for online resources on Java if you want a simple start.)


----------



## TheBB (Apr 17, 2009)

Programming contests are such fun . I have one next saturday.


----------



## byu (Apr 17, 2009)

Can you make a middle school division so I can come?


----------



## Lucas Garron (Apr 18, 2009)

byu said:


> Can you make a middle school division so I can come?


You can actually compete if you're in middle school. We're just heavily targeting it at high school students, since some high schools have CS classes. So, no divisions, but you're welcome to enter if you think you know enough.

Do you know how to write programs (in Java, C, or C++) that can take input, print output, and do a bit of calculation?


----------



## byu (Apr 18, 2009)

Lucas Garron said:


> byu said:
> 
> 
> > Can you make a middle school division so I can come?
> ...



Java and C yes, not C++.
But I'm best with Objective-C, but I guess that doesn't count.

But of Java, C, and C++, I'm best with C.


----------



## moogra (Apr 18, 2009)

Lucas Garron said:


> byu said:
> 
> 
> > Can you make a middle school division so I can come?
> ...



Taking input as in through a file like FileReader in Java? Or just doing
public static void main(String[] ksdfgjl) {
input here
}


----------



## Lucas Garron (Apr 18, 2009)

byu said:


> Java and C yes, not C++.
> But I'm best with Objective-C, but I guess that doesn't count.
> 
> But of Java, C, and C++, I'm best with C.


Well, if you think you can handle problems presented like the samples at http://www.tcea.org/StudentContests/Programming/Pages/Archive.aspx, I encourage you to enter ProCo and see what you can do.



moogra said:


> Taking input as in through a file like FileReader in Java? Or just doing
> public static void main(String[] ksdfgjl) {
> input here
> }


No, actually, more like stdio/stdout using, say, scanners. That's how the code will be tested.


----------



## PatrickJameson (Apr 18, 2009)

I'm just curious but is this contest limited to just Java, C, and C++?

I took a look at the first few problems of the 2008 contest and they seem REALLY easy to do. I do not know Java, C, or C++ very well but I could perl these up in a few seconds. :|

I'll probably do them tomorrow when I'm bored.


----------



## Lucas Garron (Apr 18, 2009)

PatrickJameson said:


> I'm just curious but is this contest limited to just Java, C, and C++?
> 
> I took a look at the first few problems of the 2008 contest and they seem REALLY easy to do. I do not know Java, C, or C++ very well but I could perl these up in a few seconds. :|
> 
> I'll probably do them tomorrow when I'm bored.


Yeah, it's limited to languages like those. They're standard, compilable, and don't make things ridiculously easy.
Also, look at the later problems (my roommate suggests TCEA State 2007). The contest is supposed to offer a huge range of difficulty, and the first few problems are for beginners, to make sure they have something feasible to work on.


----------



## Johannes91 (Apr 18, 2009)

Lucas Garron said:


> Yeah, it's limited to [Java, C, and C++]. They ... don't make things ridiculously easy.


I suggest using Malbolge next time, if that's the goal. IMO it would be more interesting to choose problems that are non-trivial in any language, instead of easy problems and a language that makes them hard. Most competitions seem to be of the latter kind...


----------



## shoot1510 (Apr 18, 2009)

I trying to make a OLL Trainer. But I'm not ready for whatever contest it is.


----------



## byu (Apr 18, 2009)

On the registration form, there is only options dr 9,10,11, and 12 grade. What do I put on there?


----------



## brunson (Apr 18, 2009)

Lucas Garron said:


> Yeah, it's limited to languages like those. They're standard, compilable, and don't make things ridiculously easy.


No, they just make things unnecessarily complicated. 

@Johannes: +1

Maybe whitespace or brainf**k would be included, too.


----------



## Lucas Garron (Apr 19, 2009)

Johannes91 said:


> Lucas Garron said:
> 
> 
> > Yeah, it's limited to [Java, C, and C++]. They ... don't make things ridiculously easy.
> ...


Thing is, we need to have some trivial problems.
But I phrased that somewhat badly:
We _try_ to make the problems language-independent.
C, C++, and Java are pretty standard for contests we're basing this on, and it's a bit of effort to add more. At the very least, we need to be able to test submitted code using console input on a Linux machine (for free).
If some competitors are, say, seriously interested in competing using Python or Perl, we could probably offer them, though.
Something like Mathematica is out of the question, and probably ones like PHP.

byu:
If you'd like to compete, you can just select ninth grade and note your actual grade in the comments. We just want it to remain targeted clearly to high school students.


----------



## qazefth (Apr 19, 2009)

Where can I learn Programming? It seems intresting.


----------



## Johannes91 (Apr 19, 2009)

qazefth said:


> Where can I learn Programming? It seems intresting.


Although this isn't aimed at complete beginners, it's so awesome that I have to link to it: http://learnyouahaskell.com/.

Python seems to be a popular first language, you could google for something like "Python tutorial" and see if you like it.

After you've learned the basics of some language, you'll need to write programs in it. You can either think of something yourself, or solve problems like in Project Euler. The first problems there are fairly easy, so even a complete beginner in programming can solve them, and later ones are quite challenging.


----------



## byu (Apr 19, 2009)

A few more questions for Lucas:

1. Are you allowed to use a Mac, and if so, what source editor (I use Xcode)?

2. Internet is supposed to be used for "accessing documentation only". Does this include searching for how to use certain functions (such as the sleep() ) function.

3. You said to take input through stdio/stdout, but can I use printf and scanf in C? For example, would this be allowed?


```
int main (void {
char word[20];
printf ("ENTER INPUT: ");
scanf("%s", word);
printf("THE WORD IS %s\n", word);
return 0;
}
```


----------



## brunson (Apr 19, 2009)

byu said:


> A few more questions for Lucas:
> 
> 1. Are you allowed to use a Mac, and if so, what source editor (I use Xcode)?
> 
> ...


That is stdio, hence the need to #include <stdio.h>


----------



## Lucas Garron (Apr 20, 2009)

byu said:


> A few more questions for Lucas:
> 
> 1. Are you allowed to use a Mac, and if so, what source editor (I use Xcode)?


Doesn't matter to us. You're only submitting a file to us, so you should may use any editor/compiler you trust.



byu said:


> 2. Internet is supposed to be used for "accessing documentation only". Does this include searching for how to use certain functions (such as the sleep() ) function.


Sure. The idea is to let you access specifications/documentation for languages, so that you can look up the usage of functions. We'll probably have specifics on what we don't want you to look up.



byu said:


> 3. You said to take input through stdio/stdout, but can I use printf and scanf in C? For example, would this be allowed?


That's what you're expected to use.


----------



## byu (Apr 20, 2009)

OK thanks. If nothing weird happens, I'm coming? What is the registration fee?


----------



## moogra (Apr 20, 2009)

The difficulty level is about the practice contest posted right? Or is it easier or harder? This looks itneresting


----------



## byu (Apr 20, 2009)

Lucas said about the same.

Anyoeinterested in forming a team with me?


----------



## Lucas Garron (Apr 21, 2009)

byu said:


> OK thanks. If nothing weird happens, I'm coming? What is the registration fee?


It's free.



moogra said:


> The difficulty level is about the practice contest posted right? Or is it easier or harder? This looks itneresting


ProCo will be around the general level of TCEA, with more range. We're trying to include more easy problems, but also some really hard ones.


----------



## byu (Apr 23, 2009)

Not sure if I should post this in this thread, but I made a programming forum and got my friends interested in programming. If you want to see it, here's the link:

http://programmerworld.forumer.com


----------

