some examples of what constitutes Creativity ...
[ Follow Ups ] [ Post Followup ] [ CS2604 Discussion WWWBoard ] [ FAQ ]
Posted by hussein on July 21, 1999 at 15:50:14:
creativity is any substantial improvement beyond the basic solution - it can be applied to any part of the project, for example, the following come to my mind regarding project 1 (and 2 in some cases) :
- user interaction
- it would have been nice to present the user with options to either test the program using internal tests or an interactive interface
- using either escape sequence or a command/enter mode selection (i.e. the user is either choosing what to do or entering keystrokes), it will be possible to interactively test the program for all possible character values (0-255) ... you could have used a 2-key sequence to enter a key (eg. E followed by the character)
- visualization
- a representation of how data is actually being stored in the keyboard buffer, by specific position and value ... (this would even help greatly with debugging) - this could be accomplished with specialized data access routines embedded within the KeyboardBuffer class (since i didnt specify a limit on functions for project 1) or by subclassing for the purposes of output formatting ...
- testing
- simulating real-world conditions for input into the buffer ... by making some assumptions about the distribution of keys and rate of removal/insertion from the buffer, then simulating using random number generators
- intensively testing creation, usage and destruction of the data structure ... to prove there are no memory leaks
- exhaustive automatic testing - go through many (or every) possible scenarios for a queue (up to some time limit) ... for example, assign "enter" and "remove" to a binary variable - then generate all possible strings of operations - test the buffer for each case, and test the results automatically in your main program to make sure theyre what was expected ...
- develop a syntax for file-based testing and use this as an option - eg. "enter X" and "retrieve"
- efficiency
- use a freelist - that could mean changing the definition or subclassing if ure not allowed to change the definition of the class
ask yourself these questions ...
how can i make the interface more natural ?
how can i make the program run faster ?
how can i use less memory/disk space ?
have i thoroughly tested my program ? will my program survive real-world tests ? will my program survive worst-case scenario tests ?
do i expect you to put in all these features ? obviously not ... but if u want that last 10% in the grade, u need to produce something slightly more than the plain vanilla solution ...
---
hussein
Follow Ups:
Post a Followup