next up previous
Next: About this document ... Up: My Home Page

Information Systems 390 - Programming Challenges
Spring 2001

At its best, computer science is an exciting blend of programming, mathematics, and problem solving. This course will introduce an interesting variety of subjects in programming, algorithms, and discrete mathematics though puzzles and problems which have appeared in the International ACM Programming Contest and similar venues.




Instructor: Steven Skiena

Office: 1411 Computer Science Building

Phone: 631-632-9026

Email: skiena@cs.sunysb.edu

Office Hours: 11:15AM-12:45PM Tuesday-Thursday, and by appointment.



Course Time: Tuesday-Thursday 12:50-2:10PM Place: Life Sciences 30

Textbook: none

Recommended Books:

Skiena, The Algorithm Design Manual, Telos/Springer-Verlag, 1998.

Sedgewick, Algorithms in C

O'Rourke, Computational Geometry in C

Kernighan and Ritchie, The C Programming Language

Rules of the Game:

1.
Despite the official course name/number, this is intended as a computer science course for primarily computer science.

2.
The WWW page for the course is http://www.cs.sunysb.edu/$\sim$skiena/390/index.html. All course handouts and notes are available there, along with the latest announcements. Please check it out.

3.
This course is designed to have a weekly flow. Each Thursday, a new set of problems will be assigned, and a lecture or two devoted to the algorithmic theory and ideas associated with them. Over the weekend, students will work on the problems, with experiences and problems discussed in Tuesday's class. You are not expected to complete all problems, but you can impress me if you do!

4.
This course is intended to be a positive, fun experience for a small, enthusiastic group of students. Everyone participating on a regular basis during class and seriously attempting the programming projects (at least 5 hours per week) will get a grade no lower than a B.

5.
The grading of class assignments will be done by the robot judge of the Univ. de Valladolid, Spain ACM Problem Set Archive, at http://acm.uva.es/problemset/. Students are urged immediately to go the site and register as a new member (use your real name). All class assignments will be problems from this site which have a robot judge.

6.
Email me your Valladolid name and ID number soon as it is issued so I can monitor your progress.

7.
You are strongly encouraged to do your programming in C language or C++, to take advantage of the robot judge. If you insist on using Java, you will have to submit a test file containing at least 7 test cases for each problem you solve. The programs to solve these problems are sufficiently short that they do not benefit from the advanced features of Java or C++, so you will likely be using a very C-like subset of Java, anyway.

8.
Students are to work on all problems individually. You make discuss the problems among yourselves, but you must write all your own code.

9.
You are allowed to look in any books you wish, but are honor bound not to search the WWW for help. This is to mirror the official contest conditions.

10.
There may be updates or clarifications to some problems on the Valladolid site, in either the HTML problem version or the newsgroup. You are encouraged to consult these sources.

11.
Each week, you are also to submit to me an electronic version of all the programming problems solved. The set of all class solutions will be submitted to similarity testing programs, to identify students who did not work on their own. Since cheating in this course is a particularly stupid thing to do, I will be particularly energetic in pursuing any suspects.

12.
I expect my lectures each week will be somewhat informal, but all lecture materials I prepare I will put on the WWW.

13.
Because a primary goal of the course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved, and will be grounded for receiving a grade of F. (See CEAS Procedures and Guideline Governing Academic Dishonesty, 1/81.)

14.
If you have a physical, psychological, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133, Humanities, 632-6748v/TDD. DSS will review your concerns and determine with you what accommodations are necessary and appropriate. All information and documentation of disability are confidential.

15.
Homework assignments will be due at the beginning of class on Tuesday. The class will vote to decide whether to allow/encourage work from Tuesday to Thursday.

16.
I hope to establish as much personal contact with each of you as is possible. Don't be afraid to stop by during office hours to ask questions or say hello. To facilitate interaction, every few weeks there will be 'Pizza with the Prof'. Outside my office will be a sheet for you to sign-up to join 5-10 other students from the class for a pizza lunch (on me). I look forward to getting to know you.

DATE	TOPIC
----	-----
1/24	arrays and iteration problems out -- 100 151 254 256 340 349

1/30	understanding specifications
2/1	game and puzzle problems out -- 127 170 227 339 395

2/6	strings and library functions
2/8	string problems out -- 175 272 306 333 335 385

2/13	sorting and library functions
2/15	sorting problems out -- 120 156 230 299 390

2/20	arithmetic and algebra
2/22	arithmetic problems out -- 138 200 338 343 344 369

2/27	divisiblity and modular arithmetic
3/1	number theory problems out -- 180 202 294 324 374 382

3/6	constructing subsets and permutations
3/8	backtracking problems out -- 148 165 167 195 386

3/13	contest strategy
3/15	midterm programming contest (teams)

3/20-22	Spring Break

3/27	DFS/BFS
3/29	graph traversal problems out -- 112 168 193 315 352 

4/3	shortest paths and topological sorting
4/5	graph path problems out -- 157 196 336 314 318

4/10	edit distance and making change
4/12	dynamic programming problems out -- 116 147 164 231 357

4/17	rectangular and hexagonal grids
4/19	geometry grid problems out -- 155 201 260 320 356

4/24*	convex hulls, areas, and intersection
4/26*	computation geometry problems out -- 152 191 218 313 361 378

5/1	recursive descent parsing
5/3	parsing problems out -- 172 271 310 327 384

5/8	final programming contest?
Final exam: May 10, 11-1:30PM  (if not held 5/8)



 
next up previous
Next: About this document ... Up: My Home Page
Steve Skiena
2001-01-22