Harvey Mudd College
Computer Science Department
Programming Practicum

Reference Links    HMC ACM Page       C++ & STL       Java 1.5 API


Congratulations! to the HMC teams in the 2008 Southern California regionals. The standings out of 71 participating teams:

Problems and progress

NAMES \ problems 0-feedfact 0-hello 0-milkteam 0-syntax 1-icow 1-notree 1-path 1-tri 2-cowemb 2-navcit 2-ski 2-unit 3-cowmath 3-ni 3-popular 3-project 4-cowtract 4-dining 4-dinner 4-patrol 5-dcircle 5-pen 5-stripes 5-xlite 6-aliens 6-beauty 6-captives 6-play 7-bugs 7-burning 7-digest 7-paranoid 7-secret 7-sumsets
acarter Not Yet 1
Sep 16
18:51:01
.c
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Sep 22
01:44:10
.c
1
Sep 22
00:48:43
.c
1
Sep 17
01:09:05
.cc
Not Yet Not Yet 1
Sep 23
00:07:34
.c
2!
Sep 22
20:24:55
.c
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 7
01:25:54
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 22
21:40:27
.java
Not Yet 2!
Oct 20
22:33:02
.java
Not Yet Not Yet
alopezlago Not Yet 1
Sep 4
23:06:17
.java
Not Yet 1
Sep 7
02:03:16
.java
2!
Sep 8
17:20:28
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Sep 18
02:54:54
.java
Not Yet Not Yet 2!
Sep 22
17:17:22
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
17:12:56
.java
Not Yet Not Yet Not Yet 1
Oct 13
17:49:55
.java
Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet 2!
Oct 20
22:33:02
.java
amacrae 1
Oct 3
11:15:35
.py
1
Oct 3
10:15:51
.py
Not Yet 1
Oct 3
16:27:20
.py
1
Oct 3
18:37:15
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 3
17:30:58
.py
Not Yet 2!
Oct 6
21:01:08
.py
2!
Oct 6
17:10:31
.py
Not Yet Not Yet Not Yet 1
Oct 24
13:07:23
.py
Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 24
12:54:39
.py
Not Yet 1
Oct 24
21:12:29
.py
apribadi 1
Sep 1
22:56:09
.py
1
Sep 9
11:16:09
.hs
Not Yet 1
Sep 8
02:58:11
.rb
2!
Sep 8
17:24:13
.py
Not Yet 2!
Sep 8
19:02:14
.rb
Not Yet 1
Oct 9
00:17:02
.cc
1
Oct 12
20:43:16
.py
Not Yet 1
Sep 29
16:12:56
.py
Not Yet Not Yet 2!
Sep 22
17:07:48
.py
Not Yet 1
Oct 7
02:15:51
.py
1
Oct 7
12:12:42
.py
1
Oct 7
03:15:02
.py
Not Yet 2!
Oct 6
18:42:32
.cc
1
Oct 7
01:47:04
.py
Not Yet Not Yet Not Yet 1
Oct 13
15:47:36
.cc
Not Yet Not Yet Not Yet Not Yet 1
Oct 26
20:04:56
.java
Not Yet Not Yet 2!
Oct 21
23:11:25
.java
ayin Not Yet 1
Sep 8
02:16:24
.py
Not Yet Not Yet 2!
Sep 8
19:04:42
.cc
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet
ayodpinyanee 1
Sep 3
10:54:21
.cc
Not Yet 1
Sep 1
20:25:21
.cc
1
Sep 3
10:52:58
.cc
2!
Sep 8
17:52:39
.cc
1
Sep 17
11:58:42
.cc
2!
Sep 8
16:44:39
.cc
Not Yet 1
Sep 19
17:05:07
.cc
1
Sep 19
16:45:59
.cc
1
Sep 18
18:26:15
.cc
1
Sep 19
16:17:16
.cc
2!
Sep 22
18:45:32
.cc
2!
Sep 22
16:57:34
.cc
2!
Sep 22
17:35:15
.cc
2!
Sep 22
21:25:37
.cc
1
Sep 29
16:10:02
.cc
1
Sep 29
16:24:54
.cc
1
Sep 29
10:55:03
.cc
1
Sep 29
16:43:59
.cc
2!
Oct 6
17:10:54
.cc
2!
Oct 6
16:53:41
.cc
Not Yet 2!
Oct 6
20:29:15
.cc
1
Oct 15
01:42:55
.cc
1
Oct 13
16:18:36
.cc
1
Oct 21
23:16:40
.cc
Not Yet 2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
csauro Not Yet Not Yet Not Yet 1
Sep 30
01:42:40
.py
1
Sep 20
01:10:38
.py
Not Yet Not Yet Not Yet Not Yet 1
Sep 23
14:52:35
.py
Not Yet 1
Sep 17
16:17:39
.py
Not Yet Not Yet 2!
Sep 22
17:08:15
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
17:19:28
.py
Not Yet Not Yet Not Yet 1
Oct 13
16:30:56
.py
Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet Not Yet
dfielder 1
Sep 15
08:29:24
.java
Not Yet Not Yet 1
Sep 1
21:22:32
.java
2!
Sep 8
16:53:49
.java
Not Yet 2!
Sep 8
16:35:18
.java
Not Yet 1
Sep 15
09:05:00
.java
1
Sep 15
13:27:06
.java
1
Sep 15
13:57:25
.java
1
Sep 15
12:52:36
.java
1
Sep 29
11:17:25
.java
Not Yet 2!
Sep 22
17:06:23
.java
Not Yet 1
Oct 4
19:53:18
.java
1
Sep 29
18:31:34
.java
1
Sep 29
17:14:52
.java
1
Oct 4
22:52:05
.java
2!
Oct 6
17:02:18
.java
2!
Oct 6
16:45:03
.java
Not Yet Not Yet 1
Oct 14
14:22:46
.java
1
Oct 13
16:25:03
.java
1
Oct 14
13:45:51
.java
Not Yet 2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
dhalloran Not Yet Not Yet Not Yet Not Yet 2!
Sep 8
16:55:46
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet
dlubarov 1
Sep 4
18:14:44
.java
Not Yet 1
Sep 18
00:16:41
.java
1
Sep 4
19:39:30
.java
2!
Sep 8
17:16:46
.java
1
Sep 17
22:23:47
.java
2!
Sep 8
17:01:36
.java
Not Yet 1
Sep 17
00:59:05
.java
1
Sep 15
17:46:37
.java
1
Sep 17
00:22:56
.java
1
Sep 15
17:46:06
.java
2!
Sep 22
19:25:11
.java
2!
Sep 22
20:56:34
.java
2!
Sep 22
17:06:28
.java
Not Yet 1
Nov 8
00:48:43
.java
Not Yet 1
Nov 8
00:59:36
.java
1
Nov 8
02:11:55
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
Not Yet 2!
Oct 20
22:33:02
.java
jehrlich Not Yet Not Yet Not Yet 1
Oct 19
13:07:40
.java
Not Yet Not Yet 2!
Sep 8
17:21:12
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
Not Yet 2!
Oct 20
22:33:02
.java
jkaufman Not Yet Not Yet Not Yet Not Yet 1
Sep 16
23:25:54
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
18:33:39
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet Not Yet Not Yet
jklontz 1
Sep 4
11:13:22
.py
1
Sep 3
20:36:25
.py
Not Yet 1
Sep 3
23:51:10
.py
1
Sep 11
17:15:03
.py
Not Yet 1
Sep 11
17:52:57
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:14:36
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
16:50:17
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.py
Not Yet Not Yet Not Yet
jnewhouse 1
Oct 21
20:10:27
.java
1
Nov 10
22:50:30
.java
1
Nov 10
22:10:56
.java
1
Nov 11
00:47:06
.py
1
Nov 9
17:06:56
.java
Not Yet 1
Nov 9
19:38:29
.java
Not Yet 1
Nov 9
20:38:36
.java
1
Nov 9
22:33:41
.java
Not Yet 1
Nov 10
01:50:33
.java
1
Nov 10
02:28:40
.java
Not Yet 1
Nov 11
21:16:23
.java
Not Yet Not Yet Not Yet Not Yet Not Yet 1
Nov 11
22:26:24
.java
1
Nov 12
00:39:40
.py
1
Nov 12
00:19:31
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Nov 9
16:43:06
.java
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
Not Yet 2!
Oct 20
22:33:02
.cc
kewing Not Yet Not Yet Not Yet Not Yet 2!
Sep 8
17:08:24
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:37:42
.py
Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 7
08:03:34
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 21
01:56:24
.py
Not Yet Not Yet
koelze 1
Sep 1
20:42:42
.java
1
Sep 1
17:27:50
.java
1
Sep 1
20:42:42
.java
1
Sep 1
20:42:42
.java
Not Yet Not Yet 2!
Sep 8
17:03:21
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet
krenfrow Not Yet 1
Oct 20
07:27:30
.py
Not Yet Not Yet 2!
Sep 8
17:46:15
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:29:14
.py
Not Yet Not Yet Not Yet Not Yet 1
Sep 29
18:52:36
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 21
01:56:24
.py
2!
Oct 21
01:56:24
.py
Not Yet 2!
Oct 21
01:56:24
.py
mawang Not Yet Not Yet Not Yet Not Yet 1
Oct 20
20:43:18
.py
Not Yet Not Yet Not Yet 1
Oct 23
02:52:19
.java
1
Oct 23
01:49:29
.py
Not Yet 1
Oct 22
23:32:30
.py
Not Yet 1
Nov 2
15:41:54
.py
1
Oct 21
00:42:04
.py
Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
20:48:05
.py
1
Oct 22
19:48:25
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:26:24
.py
Not Yet 2!
Oct 20
22:26:24
.py
mleece Not Yet 1
Sep 21
15:56:05
.py
Not Yet 1
Sep 21
15:39:17
.py
1
Sep 23
22:09:15
.py
Not Yet Not Yet Not Yet 1
Sep 27
01:09:14
.java
Not Yet Not Yet 1
Sep 25
11:03:02
.py
Not Yet 1
Sep 23
01:52:11
.py
1
Sep 23
15:06:02
.py
Not Yet 1
Oct 7
02:19:48
.py
1
Oct 3
17:04:15
.py
1
Sep 30
14:47:32
.py
Not Yet 2!
Oct 6
21:01:08
.py
2!
Oct 6
17:08:25
.py
Not Yet Not Yet 1
Nov 3
10:57:51
.py
1
Oct 14
18:40:07
.py
1
Oct 15
11:35:42
.py
Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet 2!
Oct 20
22:33:02
.java
mrichman Not Yet 1
Oct 2
17:03:56
.cc
Not Yet Not Yet 1
Oct 16
16:47:58
.cc
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 16
16:47:58
.cc
1
Oct 9
18:21:50
.cc
Not Yet Not Yet Not Yet Not Yet Not Yet 1
Oct 9
17:32:50
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet Not Yet Not Yet
mvanschaarde Not Yet Not Yet Not Yet Not Yet 2!
Sep 8
18:16:15
.hs
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:26:24
.hs
Not Yet 2!
Oct 20
22:26:24
.hs
mwodrich Not Yet 1
Oct 20
07:30:31
.py
Not Yet Not Yet 2!
Sep 8
17:43:38
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:33:32
.py
Not Yet Not Yet Not Yet Not Yet 1
Sep 29
19:11:02
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 21
01:56:24
.py
2!
Oct 21
01:56:24
.py
Not Yet 2!
Oct 21
01:56:24
.py
rmelick Not Yet 1
Sep 17
00:30:49
.java
Not Yet 1
Oct 3
03:17:53
.java
2!
Sep 8
17:04:09
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:37:42
.py
Not Yet Not Yet Not Yet 1
Oct 20
11:31:34
.py
1
Nov 2
17:13:54
.py
1
Oct 7
08:03:34
.py
1
Oct 10
14:58:02
.py
Not Yet Not Yet Not Yet 1
Oct 19
21:08:41
.java
Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 21
01:56:24
.py
Not Yet Not Yet
sberghel Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Sep 15
17:34:09
.py
Not Yet Not Yet 2!
Sep 22
17:12:40
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
17:19:33
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:33:02
.java
Not Yet Not Yet Not Yet
sjust Not Yet Not Yet Not Yet Not Yet 2!
Sep 8
17:57:26
.hs
Not Yet Not Yet Not Yet 1
Sep 18
07:30:05
.hs
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
22:00:38
.hs
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 20
22:26:24
.hs
Not Yet 2!
Oct 20
22:26:24
.hs
spernsteiner Not Yet Not Yet Not Yet Not Yet 2!
Sep 8
16:45:00
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Sep 22
17:10:10
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Oct 6
17:13:28
.java
Not Yet Not Yet Not Yet 1
Oct 13
16:40:22
.java
Not Yet Not Yet 2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.java
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc
2!
Oct 20
22:33:02
.cc

"The Book"

Lecture Slides

Grading

This class is graded by default. However, you may certainly take the course Pass/Fail, if you would like. However, if you plan to take this class three times for CS elective credit (some students do this), do not take it pass/fail! CS Elective courses may not be P/F.
Here is the table mapping problems solved to grades.

Languages

The ACM contest supports three languages: C, C++, and java. I'm looking forward to the day they add Python to the list of supported languages.

In the fall term you may use other "reasonable" languages, but there will not be an incentive to expand to previously unused languages. It might be a good way to learn a new language, if you've had your sights on one... .

In the spring term, you may choose from a broader set of languages, including C#, D, Python, Perl, Prolog, Haskell, ML, Scheme/Lisp, and any number of others. However, if the language you choose is too unusual - or simply hasn't been used before in the class - you will have to instruct me on how to test things on knuth.

The submission scripts use the suffix of the file to determine the language. For example, you won't be able to submit a java file named solution.cc.

Submission

Be sure to name your file the same as the name of the problem, and then type
/cs/ACM/acmSubmit <filename>.cc
You should run acmSubmit from the directory in which your submission file is located.

The script will test your file against a number of inputs. Unlike the ACM contest, if your submission's output differs from the "correct" output, the differences will be shown to you. This is a protection against the "correct" solutions not actually being correct. If your program passes all of the tests the script will let you know. It will also email me in order to help me keep the chart of solved problems updated.

Compiling your code:

While testing your code, you can compile with the commands

javac filename.java
or
g++ filename.cc
to create an executable file named a.out.

To check your program, copy the sample input and then redirect that file to your program, e.g.,
java  < <testfilename>
or
a.out < <testfilename>
That will print the results to the console (stdout) for inspection. You might also pipe the results to a file and check them against the anticipated output with diff.

Related Links

HMC ACM competition home page This contains links to several large problem sites.
Spring 2009 Programming Practicum Home Page
Fall 2008 Programming Practicum Home Page
Spring 2008 Programming Practicum Home Page
Fall 2007 Programming Practicum Home Page
Spring 2007 Programming Practicum Home Page
Fall 2006 Programming Practicum Home Page
Spring 2005 Programming Practicum Home Page
Fall 2004 Programming Practicum Home Page
Spring 2004 Programming Practicum Home Page
Fall 2003 Programming Practicum Home Page
Spring 2003 Programming Practicum Home Page
Fall 2002 Programming Practicum Home Page
Spring 2002 Programming Practicum Home Page
Fall 2001 Programming Practicum Home Page
Spring 2001 Programming Practicum Home Page
Fall 2000 Programming Practicum Home Page
Spring 2000 Programming Practicum Home Page