vs Programming in the Small F. DeRemer International Conference on Reliable Software April 1975 § Teaching Object-Oriented Thinking Kent Beck (JUnit 👀) International conference on OOPSLA October 1989 § Continue with programming; but nothing to submit yet
Each major step in the process a module. • And Modules enclose Tasks • Begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. • In some cases, modules will not correspond to steps in the processing.
from node i to node j is the same as from node j to node i. http://www.math.uwaterloo.ca/tsp/world/countries.html 29 - 71009 § Asymmetric The distance from node i to node j and the distance from node j to node i may be different. http://elib.zib.de/pub/mp-testdata/tsp/tsplib/atsp/index.html 17 to 443
problem. Do not worry for an optimal solution a) Calculate and report the total distance for a dummy route as city1, city2, city3, city4, … b) Calculate and report the total distance using a greedy algorithm (nearest-neighbors) or any other fancy solution (2-opt, genetic algorithm, etc.) city1, city2, city3, city4, … Do not forget the GUI
§ Stepwise refinement… How? § How many modules / functions? Why ? § How they will be connected (who call who? Who needs who?) Why ? § Which is the largest file (symmetric and asymmetric) that your solution can process? Can you improve that? How? § Your program should stop (by itself) in 300 seconds. § Sequential solution is acceptable, but challenge yourselves to use at least threads (CPU) or go for GPU programming
team of 2): a) Source Code (every single java files). b) A PDF file a paper describing § your code and how did you apply Wirth and Parnas ideas a.k.a. functional decomposition and information hiding. § Screenshot with the output for small, medium, and large scenario § A conclusion addressing the quality of your solution PS.1. Showcase your skills for readability (make your code easy to read) PS.2. Include Javadoc