|
ñéîåï ùâéàåú áäâùåú ùì úøâéìéí
Exercise 8: General: A: No documentation at all (-10) B: Code general issues (won't compile) (up to -100) X: No sources in the submission (leads to 0 grade). Y: Interface based work (IAddressBook
interface at least) (+3) Address / Contact C: Bad encapsulation of Address / Contact (Not
making the fields private) (-2 each) Address book: D: Using wrong DS (not the tree map) (-3) E: Not asserting that a contact has a name. (-3) F: Method not asserting appearance of contact (-2)
[Modify, Delete] G: Method not asserting that contact doesn't appear
(-2) [Add] H: Method not asserting parameter != null (-1) [Add,
Modify, Delete, Search] I: Bad implementation of the search method (-4) J: Not throwing an exception on error (-2 per method) TUI: K: Not asserting first command is [n | l] (-4) L: Wrong input would halt (-5) or crash (-10) the
program M: Improper printing. (-2). Exercise 7: A: Code duplication (no delegation between doGet & doSet) (-5) B: Not trying to explain how service()
works. (-5) C: Error in acquiring the parameter. (-5) D: Not setting the response type as text/plain (-5) X: No sources in the submission (leads to 0 grade). Y: Handling error cases (such as non numeric format)
(+5) Exercise 6: A: No documentation. (upto
-10) B: Constants in code instead of const ints. (-3) C: Not using List or some other extensible data structures
on growing fields. (-2) D: No field encapsulation (-5) E: Writing the entire application as a single class,
no OOP. (-8) F: Not advancing according to the length fields, but
performing linear search for (FF). (-10) G: No EXIF parsing. (-50) V: Implementation bug / Application doesn’t solve the problem. (upto
-100) X: No sources in the submission
(leads to 0 grade). Y: Really pretty OOP. (+5). Exercise 5: A: Assuming knowledge of the board size and not
using the constants for computation. (-5) B: Explanation instead of logical analysis (-5) C: Not analyzing Alpha-beta move (-5) D: Not implementing score / score returns constant
(-30) E: Not implementing isGameOver
(-20) F: Score doesn’t reflect state / not using the full
(0,1) range (-5) G: Adding public aux methods (-5) H: Possible out of array bounds during run (-10) I: Bad code indentation (-5) J: When checking for full board passing not only on
the top row (-5) K: No proofs at all (-30) X: No sources in the submission
(leads to 0 grade). Exercise 4 A: Wrong package name (-5) B: Not validating the array is long enough
(possibility of out of bounds exception) in isASet
(-5) C: Bug in extend – not filling the newly allocated
part with -1 values (-5) D: Inefficiency in extend – filling the original
part with -1 values and then overriding (-3) E: Inefficiency in extend – double allocation or on
no growth allocation (-3) F: Any helper function declared as public (-4) G: Not implementing isASet
/ loop in isASet(-10) H:
Not implementing equiv (-10) Exercise 3 A: Wrong package
name. (-3 points) B: Not validating
that the return value from a search method is not null (3 methods = -5
points) C: Bad naming of
the helper recursive methods (-3 points) D: Allocation of
object in the search methods (-3 points) E: Storing extra
class variables (for lookup, for example) ( -5 points) F: Wrong return
value from findDepartment / findWorker
( -5 points) G: Bug in findDepartment ( -5 points) H: Code duplication
between the original and the helper methods ( -4 points) I: Bad
encapsulation of the helper recursive metods ( -3
points) X: Empty /
corrupted / no source code submission (Leads to 0 grade). Y: Helper methods
in the department class. (+3 points) Z: Implementation
and usage of additional helper methods (such as fire employee, move employee
etc.). (+3 points) Some more notes: Starting ex4 I'm
going to use automatic test scripts on your works, so make sure all the
naming issues I wrote about in the feedback of the first 2 exercise are taken
care of. If not contact me ASAP and I'll see what can we do. Specially - for
all who still can't write the package name right – you were warned. Now about this
exercise - almost all of you didn't check for the return value of the search
method, and assumed you got some value you can use (error code B). This is
correct if you are writing the code, the test methods and sure you will run
it once and never see that again. Generally - this will never happen. The
user (which is me, this time) should be assumed dumb, and be sure that if you
left some opening for him to crush your software he will. For example, what
will happen if I invoke fireKermit or reorganize
twice - the second time you got wrong behavior. So don't be shy to add some
validation code - it will prove worthwhile. Really many of you
would return null from findDepartment invoked with
the name of the head department. This is just the case of edge cases - make sure
you cover them in your tests. And yes, I expect you to test your methods
separately and not only insure your "main" services are functional.
Some of you assumed
knowledge of the company structure in the lookup methods. I will accept that
only if there is no way that the organization will have another form (this is
not the case in this assignment). So in the future - write your services as
general as required, and not for the test methods you write. I added 2 bonus
codes - the first is for who implemented the recursive lookup methods in the
department class - I just believe it is more correct way of OOP. The second
code is for any who added private aux functions and used then instead of
dealing with "Departments" and "Workers" directly. Best regards, have
a great week and happy Independence Day, Sasha ____________________________________________________________________________ Exercises 1&2 are checked and the results will be published soon.
Due to technical issues, I’m unable to return it to you through the system,
so you will get the grades and the feedback through a file in the web site,
using error codes. The codes are as follows: Exercise 1 A: Wrong package name. (-5 points) B: Lack of documentation (-2 points) C: Not using standard library ABS function (-3 points) D: Improper indentation of the code. (-3 points) E: Bug, or improper implementation of the GCD (upto
-5 points) F: Bug in the G: Elegant recursive implementation of GCD (+2 points) X: Empty / corrupted / no source code submission (Leads to 0 grade). Exercise 2 A: Improper indentation of the code. (-3 points) B: Unreadable code (-3 points) C: Weird mathematical notations (such as j-j instead of 0) (-3 points) D: Allocating a matrix for MatrixA
and then invoking copy and overriding it. (-4 points) E: Copying the U & L matrices before returning them (-5 points) F: Changing any of the immutable matrices (-5 points if only in one of
the functions, -10 (FF code) else) G: Lack of documentation (-3 points) H: Allocating square L, U or the matrix the returned from decompose.
(-5 points) H: Solving the exercise for a constant size matrix. (-5 points) X: Empty / corrupted / no source code submission (Leads to 0 grade). Some more notes: As I’m going to use automatic tools in the following exercises please
pay attention to package and method naming (your package name is il.ac.tau.cs.YourUserName.exN – where N is
the exercise number), visibility of the classes and methods (public for
everything we told you) and also the name of the files themselves – you must
use the same file name as supplied. Also, the case of the package name is
important (use only lowercase!!!). Some students implemented some of the library functions by themselves
(such as abs or array copy) – what for? When you have a method in the
standard library that does the work use it. You should investigate the java
API – this will save you a lot of time in the future. In the following submissions I want the source only. I have no use in
any other files, and I don’t want to receive .jar files as well. I want only
the plain sources. I will talk to the developer of the submission plug-in and
ask him to do so automatically, and maybe also to add some validation on the
submitted files (such as names and that all the expected files exist), but in
the meanwhile please do so manually. Last issue – the exercises should be submitted in singles. Not pairs
and not in larger groups. I have a way to verify it, and already in the first
exercise I found some “cliques”. So, please spare me the dealing with
dishonesties, these exercises are for you to learn and we are putting a lot
of effort both in writing them and in checking them. Best regards, enjoy the holiday, Sasha òåãëï ìàçøåðä áúàøéê þþþ23/06/2006 11:40:20. |
|