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 2007 Southern California regionals. The standings out of 53 participating teams:


Spring 08 lectures (zipped up ppt files)

Problems and progress

NAMES \ problems 0-archives 0-books 0-pebbles 0-roman 1-dna 1-fair 1-scrambled 1-towers 2-debt 2-dolls 2-teamwork 2-telephone 3-alienwar 3-domain 3-moat 3-trompin 4-expressions 4-hull 4-jungle 4-pipeline 5-meteor 5-points 5-role 5-tragedy 6-frogger 6-lakes 6-marbles 6-mcommand 6-rubik
afarmer 2!
Feb 12
17:20:15
.cob
Not Yet Not Yet 2!
Feb 12
17:20:14
.asm
Not Yet Not Yet ** 4 **
Feb 5
17:39:42
.lua
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet ** 4 **
Feb 19
17:20:15
.awk
2!
Feb 25
04:46:53
.math
Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
18:49:49
.js
Not Yet Not Yet Not Yet Not Yet ** 4 **
Mar 24
00:29:40
.pas
Not Yet Not Yet 2!
Mar 28
00:38:16
.bas
ayin 1
May 12
21:54:01
.rb
Not Yet Not Yet 1
May 13
20:28:02
.rb
Not Yet Not Yet 2!
Feb 5
17:02:35
.py
Not Yet Not Yet Not Yet Not Yet 1
May 14
00:30:09
.rb
Not Yet 2!
Feb 19
17:25:53
.py
1
May 16
00:29:21
.rb
Not Yet Not Yet Not Yet 1
May 14
06:20:24
.rb
Not Yet Not Yet Not Yet 1
May 15
15:43:47
.rb
1
Mar 5
11:49:49
.rb
Not Yet 1
May 14
20:40:51
.rb
Not Yet Not Yet Not Yet
bmclarnon 2!
Feb 12
17:20:15
.sql
Not Yet Not Yet 2!
Mar 24
07:52:44
.py
Not Yet Not Yet ** 4 **
Feb 5
17:39:42
.lua
Not Yet Not Yet Not Yet Not Yet 2!
Feb 19
17:20:15
.sh
2!
Mar 24
07:52:44
.py
** 4 **
Feb 19
17:20:15
.awk
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
18:49:49
.js
Not Yet Not Yet Not Yet Not Yet 2!
Mar 24
07:52:44
.py
Not Yet Not Yet 2!
Mar 23
23:20:39
.java
bochen 1
Feb 18
10:01:07
.py
Not Yet Not Yet 1
Feb 26
21:34:11
.py
Not Yet 1
May 14
01:31:26
.py
2!
Feb 5
20:07:59
.py
1
May 14
03:54:46
.py
Not Yet Not Yet Not Yet 1
May 13
22:37:30
.py
Not Yet 2!
Feb 19
19:17:48
.py
Not Yet Not Yet Not Yet Not Yet 1
May 14
02:17:22
.py
Not Yet 1
May 12
12:48:55
.py
Not Yet 2!
Mar 4
18:55:25
.py
2!
Mar 4
18:53:17
.py
Not Yet ** 4 **
Mar 24
00:29:40
.scm
Not Yet Not Yet 2!
Mar 24
00:29:40
.py
chebert 1
Mar 29
18:23:58
.java
Not Yet Not Yet 1
Mar 11
02:05:26
.java
Not Yet 2!
Feb 5
17:07:36
.java
1
Apr 1
01:46:42
.java
Not Yet Not Yet Not Yet Not Yet 1
Mar 29
22:35:22
.java
Not Yet 2!
Feb 19
17:44:59
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
18:44:50
.java
2!
Mar 4
18:00:42
.java
Not Yet 2!
Mar 23
22:12:28
.java
Not Yet Not Yet 2!
Mar 24
01:12:28
.java
csauro 1
Mar 20
23:24:03
.py
Not Yet Not Yet 1
Mar 20
20:42:09
.py
Not Yet Not Yet 1
Mar 20
16:01:08
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 21
00:19:51
.py
Not Yet 2!
Feb 19
17:25:53
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Mar 30
17:48:56
.java
Not Yet 1
Mar 22
00:55:48
.py
Not Yet Not Yet 2!
Mar 21
23:46:36
.java
Not Yet Not Yet Not Yet
dyust 1
Jan 31
18:43:51
.py
1
Feb 1
04:15:22
.py
1
Jan 31
03:27:12
.py
1
Jan 31
16:47:45
.py
Not Yet Not Yet 1
Feb 7
15:34:23
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Feb 19
17:48:04
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Mar 7
16:20:59
.py
Not Yet 1
Mar 7
14:19:00
.py
1
Mar 6
16:59:12
.py
Not Yet 2!
Mar 23
21:47:23
.py
Not Yet Not Yet 2!
Mar 23
23:24:33
.py
gbickerman 1
Mar 20
17:27:55
.py
1
Mar 22
00:03:14
.cc
Not Yet Not Yet Not Yet 1
Mar 26
17:08:56
.py
1
Mar 25
22:13:15
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 20
18:15:37
.py
Not Yet 1
Feb 25
21:46:53
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
17:18:27
.py
Not Yet ** 4 **
Mar 24
00:29:40
.scm
Not Yet Not Yet 2!
Mar 24
00:29:40
.py
gminton 1
Jan 31
14:14:43
.cc
1
Jan 30
13:23:28
.cc
1
Jan 30
13:28:51
.cc
1
Jan 30
13:28:55
.cc
2!
Feb 5
19:35:16
.cc
1
Feb 7
09:03:01
.cc
1
Feb 12
09:45:06
.cc
2!
Feb 5
22:38:45
.cc
1
Feb 17
14:23:34
.cc
1
Feb 19
18:08:45
.cc
1
Feb 12
14:39:17
.cc
1
Feb 17
10:53:57
.cc
2!
Feb 20
14:12:03
.cc
1
Feb 20
21:09:13
.cc
2!
Feb 19
20:43:17
.cc
1
Feb 20
18:46:20
.cc
1
Mar 2
23:40:33
.cc
1
Mar 2
22:08:41
.cc
1
Mar 3
08:32:35
.cc
1
Mar 3
09:34:52
.cc
1
Mar 7
16:01:11
.cc
1
Mar 6
21:46:46
.cc
1
Mar 7
18:52:22
.cc
1
Mar 7
18:59:58
.cc
1
Mar 27
23:46:29
.cc
1
Mar 25
20:00:01
.cc
1
Mar 27
21:18:53
.cc
1
Mar 27
16:48:25
.cc
1
Mar 28
00:38:16
.cc
hhoersting 1
Jan 31
15:24:50
.py
Not Yet Not Yet 1
Jan 31
13:05:06
.py
Not Yet Not Yet 2!
Feb 5
17:13:04
.py
Not Yet Not Yet Not Yet Not Yet 1
Feb 17
14:23:34
.cc
Not Yet 1
Feb 25
21:46:53
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 6
20:48:21
.py
Not Yet Not Yet Not Yet 2!
Mar 4
18:13:06
.py
Not Yet Not Yet 2!
Mar 23
22:12:28
.java
Not Yet Not Yet 2!
Mar 24
01:12:28
.java
jbellister 1
Feb 5
22:21:37
.java
Not Yet Not Yet 1
Feb 3
21:52:26
.java
Not Yet Not Yet 2!
Feb 5
18:47:55
.java
Not Yet Not Yet Not Yet Not Yet 1
Feb 21
20:42:58
.java
Not Yet 1
Feb 22
20:56:49
.java
1
Mar 31
17:47:04
.java
1
Apr 29
23:17:56
.java
1
Apr 16
02:49:47
.java
1
Apr 15
20:41:10
.java
1
Mar 18
18:01:57
.java
1
Mar 4
20:48:27
.java
1
Mar 26
17:13:01
.java
Not Yet 2!
Mar 4
17:44:18
.java
1
Apr 7
03:07:48
.java
1
Apr 16
05:23:33
.java
2!
Mar 23
22:57:59
.java
Not Yet Not Yet Not Yet
jperaza 1
Jan 31
15:05:32
.py
1
Feb 8
17:38:20
.py
1
Mar 19
00:02:34
.py
1
Jan 30
19:30:22
.py
Not Yet 1
Mar 16
18:08:04
.cc
1
Feb 6
22:17:02
.py
1
Mar 16
14:48:21
.cc
Not Yet Not Yet Not Yet 1
May 13
12:32:51
.py
Not Yet 1
May 13
01:02:46
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
17:58:39
.py
Not Yet Not Yet 2!
Mar 23
23:00:41
.py
Not Yet Not Yet 1
May 13
03:06:22
.py
kketcham 1
Mar 21
17:38:47
.cc
Not Yet Not Yet 1
Mar 20
21:27:57
.java
Not Yet Not Yet 2!
Feb 5
17:24:45
.java
Not Yet Not Yet Not Yet Not Yet 1
Mar 20
19:06:20
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Mar 22
16:02:42
.java
Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
17:29:53
.java
Not Yet 2!
Mar 23
21:52:56
.java
Not Yet Not Yet 2!
Mar 23
23:53:59
.java
koelze 1
Mar 22
21:41:52
.java
1
Mar 11
15:15:59
.java
1
May 5
21:09:50
.java
1
Feb 10
05:20:15
.java
Not Yet 1
May 12
20:20:50
.java
2!
Feb 5
17:24:45
.java
Not Yet Not Yet Not Yet Not Yet 1
May 5
22:34:10
.java
Not Yet 1
May 8
01:33:57
.java
1
May 9
17:21:58
.java
Not Yet Not Yet Not Yet 1
Mar 4
15:45:51
.java
Not Yet 1
Mar 29
22:35:29
.java
Not Yet 2!
Mar 4
16:30:00
.java
2!
Mar 4
17:29:53
.java
Not Yet 2!
Mar 23
21:52:56
.java
Not Yet Not Yet 2!
Mar 23
23:53:59
.java
kspitz 1
Mar 20
17:21:34
.py
1
Mar 21
23:59:08
.cc
1
Mar 21
15:26:07
.cc
Not Yet Not Yet 1
Mar 21
19:37:56
.cc
2!
Feb 5
17:13:04
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 20
18:10:51
.py
Not Yet ** 4 **
Feb 19
17:20:15
.d
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
17:18:27
.py
Not Yet ** 4 **
Mar 24
00:29:40
.scm
Not Yet Not Yet 2!
Mar 24
00:29:40
.py
mernst Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Feb 5
17:07:36
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Feb 19
17:47:39
.java
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
18:44:50
.java
2!
Mar 4
18:00:42
.java
Not Yet 2!
Mar 23
22:12:28
.java
Not Yet Not Yet 2!
Mar 24
01:12:28
.java
mpyne Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Feb 5
17:24:45
.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 2!
Mar 4
17:29:53
.java
Not Yet 2!
Mar 23
21:52:56
.java
Not Yet Not Yet 2!
Mar 23
23:53:59
.java
mvanschaarde 1
Feb 12
12:08:37
.py
1
Feb 26
12:08:37
.d
1
Apr 9
19:07:28
.java
1
Jan 29
23:28:27
.py
1
May 7
15:59:25
.java
1
Mar 22
02:06:27
.java
2!
Feb 5
20:03:00
.py
1
Feb 26
12:08:37
.d
Not Yet Not Yet 1
May 9
20:59:14
.java
1
Feb 26
12:08:37
.d
Not Yet ** 4 **
Feb 19
17:20:15
.d
1
May 10
00:23:43
.java
Not Yet 1
Mar 24
21:51:48
.py
1
Mar 30
14:38:07
.java
1
Mar 21
18:31:46
.java
1
Mar 23
02:05:22
.java
1
Mar 18
13:29:58
.java
1
Mar 20
18:25:40
.java
2!
Mar 4
18:49:49
.d
1
Mar 20
18:33:02
.java
Not Yet 2!
Mar 23
22:07:40
.cc
Not Yet Not Yet 2!
Mar 24
00:10:15
.java
rdobashi 1
Mar 13
22:11:39
.py
Not Yet Not Yet 1
Feb 26
21:34:11
.py
Not Yet Not Yet 2!
Feb 5
17:13:04
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 14
18:17:01
.py
Not Yet 2!
Feb 19
19:17:48
.py
Not Yet Not Yet Not Yet Not Yet 1
May 14
02:18:32
.py
Not Yet Not Yet Not Yet 2!
Mar 4
18:56:40
.py
2!
Mar 4
18:53:17
.py
Not Yet 2!
Mar 23
23:11:49
.py
Not Yet Not Yet Not Yet
rmehlinger Not Yet Not Yet Not Yet 1
Mar 29
16:28:55
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Feb 19
17:48:57
.py
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 4
18:49:49
.d
Not Yet Not Yet 2!
Mar 23
23:11:49
.py
Not Yet Not Yet Not Yet
sjust Not Yet 1
Mar 22
21:33:23
.cc
Not Yet Not Yet Not Yet Not Yet 2!
Feb 5
20:06:43
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 24
00:10:15
.java
Not Yet 2!
Feb 19
17:46:10
.py
Not Yet Not Yet Not Yet Not Yet 1
Mar 22
21:30:45
.cc
Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 2!
Mar 23
22:07:40
.cc
Not Yet Not Yet 2!
Mar 24
00:10:15
.java
syang 1
Feb 1
11:55:35
.py
Not Yet Not Yet 1
Feb 1
22:38:47
.py
Not Yet Not Yet 2!
Feb 5
17:02:35
.py
Not Yet Not Yet Not Yet Not Yet 1
Apr 28
11:09:55
.rb
Not Yet 2!
Feb 19
17:26:21
.py
1
Mar 2
12:13:17
.rb
Not Yet Not Yet Not Yet 1
Mar 7
16:34:23
.rb
Not Yet Not Yet Not Yet Not Yet 1
Mar 5
11:49:49
.rb
Not Yet 2!
Mar 23
22:06:27
.rb
Not Yet Not Yet Not Yet
yovadia Not Yet Not Yet Not Yet Not Yet Not Yet Not Yet 1
Mar 20
14:18:42
.rb
Not Yet Not Yet Not Yet 1
Mar 20
12:02:10
.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 2!
Mar 24
07:52:44
.py
Not Yet Not Yet Not Yet

Lecture Slides


Grading

This class is graded by default. However, you may certainly take the course Pass/Fail, if you would like.
Here is the table mapping problems solved to grades.

Languages

The ACM contest has stated that it will support three languages: C, C++, and java. I'm looking forward to the day they add python to the list of supported languages.

In the spring term, you may choose any of those languages or one of your own (postscript, anyone?). However, you may have to instruct me on how to test things on our lab machines!

The submission scripts use the suffix of the file to determine the language, so 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 (due to my limited understanding of Perl).

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" output 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, download the input and output files (right-click on the links and choose "save link as...") or create your own test inputs, and then run
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.
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