Programming assignment for module 1
The programming assignment for module 1 is to develop a class with fields, getter/setter methods, function toString, and two other methods. As you develop the class, you will also develop a JUnit testing class, which will contain the test cases for the class.
You have a choice of assignments. They are basically the same, but we provide alternatives so that you can choose one that interests you the most.
How the assignment is "graded"
You won't be finished with this assignment until your class is correct and you have appropriate test cases. When you think that your assignment is finished, submit it on the CMS. We will process it as follows:
- If the field specifications and the javadoc specifications for the class and methods are not appropriate, we will ask you to fix them and resubmit the assignment.
- If the field and javadoc specs are ok, we will look at your test cases. If they are inadequate, we will ask you to fix them and resubmit the assignment.
- If the specs and test cases are adequate, we will test your program. If there are errors, we will ask you to correct them and resubmit.
- If at any point we determine that you did not develop the class and test cases appropriately, we may ask you to stop working on this assignment and do one of the alternatives instead. Basically, you are expected to develop the methods and test cases for them in groups, moving on to the next group only when the current group of methods are correct.
You won't be able to take the test for module 1 until your programming assignment is done. To save yourself —and the course staff— time, please read the assignment instructions carefully and work so that we don't have to ask you to revise and resubmit.
The alternatives for the programming assignment
Computer viruses | You probably have met a computer virus or worm, especially if you use a PC. Did you know that the first computer worm that did any real damage was created by a Cornell CS graduate student? back in 1988, almost 20 years ago. He didn't mean to do harm, but he did. The class that you will write will be used to maintain information about computer viruses and worms. | |
Accelerator physics | Cornell is deeply involved in accelerator physics, with a 768-meter electron storage ring buried under part of the campus. Click on the image to the right to see an enlargement that shows more clearl where the synchotron is. Magnets of different sizes are used here. The class you write will maintain information about them. | |
Robots | Cornell is involved with robots in a number of ways. CS100R teaches programming using robots. The Engineering Robocup team has been very successful, winning several times. Prof. Hod Lipson of MA&E builds robots that can adapt to injuries and also teach themselves to walk. Take a look at the self-modeling page. In this assignment, you will write a class to maintain simple information about robots. | |
Rhinos | As this website will tell you, rhinos are an endangered species. If we are to keep them from dying out, we have to stop poachers from killing them and work to maintain habitats that are rhino-friendly. And, we have to keep track of the rhinos that exist. In this assignment, you will write a class to maintain information about individual rhinos. | |
Textbooks | Cornell faculty often write texts for the courses they teach, and some are quite prolific. The CS Department faculty wrote over 75 books in the first 40 years of the department (all piled up to the right; you can read some of the titles in an enlarged image by clicking on the image to the right). Other departments are also well-known for their contributions to course materials. In this assignment, you will maintain information about textbooks. | |
Company | These days, it is important for scientists and engineers to learn about business and management. Just being technically skilled may not be enough. Read this assignment to lern a little but more about this. In the assignment itself, you will write a class to maintain information about companies. |