![]() |
Computer Science 302 The Tactics of Programming |
|
![]() | ||
This is a novel approach to this course. Directions for sequence and timing of instructions and assignments are experimental and will be modified after discussion between Mr. Donaldson and students taking this course. [ 27 January 2008 ]
![]() |
CLICK HERE TO INSTALL JAVA & ECLIPSE |
|||||||||||||||
| Task | Assignment | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Battle Binder |
Create a binder that will hold both an electronic and hard copy of all code researched and generated in the course.
|
|||||||||||||||
| Task | Assignment | |||||||||||||||
| ACSL 17 December 2007 8 February 2008 7 March 2008 11 April 2008 |
![]() American Computer Science LeagueComplete all ACSL contests that occur while you are enrolled in Computer Science 302. Click on the link above and prepare with resources identified on that web page. There are two components to each ACSL contest:
|
|||||||||||||||
![]() TopCoder brings members together once a week to compete online (Single Round Match) and twice a year both online and on location (Tournaments). Competitions provide an understanding of a person's capabilities through a demonstration of skill. What was lacking in the world of programming competitions was a format that offered immediate and objective scoring. The solution was the creation of a "Single Round Match". In addition to regular Single Round Matches, TopCoder holds two major multiple-round, elimination tournaments each year. These tournaments span many weeks and include significant prize purses along three independent tracks of competition: algorithm, component design, and component development.
Rated TopCoder members are eligible to participate in TopCoder Component Development. Members submit design and development solutions for these challenging and potentially lucrative projects. |
||||||||||||||||
| Task | Assignment | |||||||||||||||
![]() Computing Contests |
TopCoder's Computing ContestsThree TopCode problems must be completed each week, one of which must be a live competiton. Qualifying competitions may be high school or single round matches. |
|||||||||||||||
| Task | Assignment | |||||||||||||||
![]() Algorithm Tutorials |
TopCoder's Algorithm TutorialsKeep all hard copy materials related to assignments in a separate Algorithm Course Binder. Choose the sequence in which you do the articles with your teacher. Your choice should be determined by selecting the next article that best addresses issues that you are least familiar with but which you believe best fills that lack of understanding. Attempt to complete an average of one tutorial per hour. This will require that you read and study as vigorously as you can. For each tutorial article that you read, you should:
|
|||||||||||||||
| Task | Assignment | |||||||||||||||
| COMCON [html] [pdf] 17 October 2007 14 November 2007 12 December 2007 13 February 2008 No January contest March, April TBA |
COMCON contests [html] [pdf] are computing contests held between teams of 1-4 members. Computer Science 302 students are encouraged to participate in them. Contests are held about half a dozen times per school year, usually about once a month. The contests are free; there is no fee of any kind. Teams may participate over the internet: there is NO TRAVEL required. The contest consists of four programs. These are solved by a team (up to four people) using one computer within a two hour limit. Schools can compete alone or against other schools; to compete against other schools successful program solutions must be emailed. |
|||||||||||||||
| Task | Assignment | |||||||||||||||
USACO![]() |
|
|||||||||||||||
![]() USACO TRAINING PROGRAM | ||||||||||||||||
| Task | Assignment | |||||||||||||||
| Register | Register to receive your personalized user name and password for the USACO Training Program and USACO Contests. Your name and password will also be immediately sent via return e-mail. If you don't receive the mail, you can double-check your e-mail address after you login (or you can register again). |
|||||||||||||||
| Task | Assignment | |||||||||||||||
| Resources |
|
|||||||||||||||
| Task | Assignment | |||||||||||||||
| Hardcover Books | ||||||||||||||||
| Task | Assignment | |||||||||||||||
| Section 0.0 | USACO Training is a set of computer programming problems that become progressively more difficult that require the construction of different types of algorithms as the student progresses. The training was established as practice for competitors of USACO type computer programming contests. In the spring of 2007 a small group of talented SWC students used the USACO Training as their primary material in a course geared to the study of algorithms. The challenge of the problems was great but, amazingly, the motivation and response of the students was tremendously high. Much motivation came from knowing that implementing the algorithms required to solve the USACO Training problems led to superior performance in problem solving contests. In a word, it made the entire process of studying algorithms fun! It happens that, in order to successfully and satisfactorily orchestrate computer programming constests, sets of efficacious conventions and processes evolved with the delightful side effect of making it possible to rigorously study algorithms while having a whole lot of fun doing so. In order to negotiate programming contests, competitors learn and value both effectiveness and efficiency. Regardless of the profession that competing students eventually practice later in life, the values and habits accrued from their experience in studying algorithms in the context of contest preparation and involvement will leave those individuals demanding that solutions of all sorts be both effective and efficient in their execution. Fortunate are those future employers who will discover such high performing emplyees. Fortunate too are those imployees, for they will have knowledge and standards that assure success. | |||||||||||||||
| Task | Assignment | |||||||||||||||
| Section 0.1 | TEXT USACO Template | test.java is a simple example of code that is typical for most solutions. Note the following parts of code.
| ||||||||||||||
| Task | Assignment | |||||||||||||||
| Section 0.2 | TEXT Personal Template | newPrg.java is a comprehensive example of code that may be used to solve a wide variety of problems. While you may start with this example, you should extend it to include other "chunnks" of code that may be easily modified for application to future solutions. Your personal template will contain code that reflects specific programming structures and techniques that you personally used to solve other programs. In this way, you will be intimately familiar with the code in your personal template. | ||||||||||||||
| Task | Assignment | |||||||||||||||
| Section 1.0 | TEXT Introduction | The USACO Training and its web site. | ||||||||||||||
| Section 1.1 | TEXT Submitting Solutions | Include an ID header. Read input from file. Write output to file. | ||||||||||||||
| PROB Your Ride Is Here | Do two names match according to a specific scheme? | |||||||||||||||
| TEXT Contest Problem Types | Contest problems are grouped into 16 different types! | |||||||||||||||
| TEXT Ad Hoc Problems | Nonstandard algorithms not falling into a standard category and without well-studied solutions. | |||||||||||||||
| PROB Greedy Gift Givers | Determine how much more/less money friends give each other. | |||||||||||||||
| PROB Friday the Thirteenth | Calculate the frequency that each week day falls on the 13th. | |||||||||||||||
| PROB Broken Necklace | Determine where a necklace is broken so the most beads are collected. | |||||||||||||||
| Section 1.2 | TEXT Complete Search | Complete search exploits the brute force, straight-forward, try-them-all method of finding the answer. | ||||||||||||||
| PROB Milking Cows | Calculate intervals during which cows are milked and not milked. | |||||||||||||||
| PROB Transformations | Recognize transformations of patterns of black and white square tiles. | |||||||||||||||
| PROB Name That Number | Print all valid names of letters associated with a specific telephone number. | |||||||||||||||
| PROB Palindromic Squares | ||||||||||||||||
| PROB Dual Palindromes | ||||||||||||||||
| Section 1.3 | TEXT Greedy Algorithm | |||||||||||||||
| PROB Mixing Milk | ||||||||||||||||
| PROB Barn Repair | ||||||||||||||||
| TEXT Winning Solutions | ||||||||||||||||
| PROB Calf Flac | ||||||||||||||||
| PROB Prime Cryptarithm | ||||||||||||||||
| Section 1.4 | TEXT More Search Techniques | |||||||||||||||
| PROB Packing Rectangles | ||||||||||||||||
| PROB The Clocks | ||||||||||||||||
| PROB Arithmetic Progressions | ||||||||||||||||
| PROB Mother's Milk | ||||||||||||||||
| Section 1.5 | TEXT Introduction to Binary Numbers | |||||||||||||||
| PROB Number Triangles | ||||||||||||||||
| PROB Prime Palindromes | ||||||||||||||||
| PROB SuperPrime Rib | ||||||||||||||||
| PROB Checker Challenge | ||||||||||||||||