Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

what are the points that you recommend to me for my exam to be creative?

+6 votes
asked Apr 19, 2023 by I A (330 points)

I have an exam in **Delphi **next week, what can I do when creating the program that will be asked of us and presenting it in a beautiful and creative way, so that I can make sure that finalize the programs, that is, what are the points that you recommend to me for my exam to be creative?

  • For example, I think of putting a timer in my program as an aesthetic touch What else?

1 Answer

+1 vote
answered Apr 19, 2023 by Peter Minarik (88,520 points)
selected Apr 25, 2023 by I A
Best answer

If I understand things correctly, you are writing this program at home, not during an exam (say in a limited 1-2 hours time).

I'd focus on the following things in this order:

  1. Functionality: the program does what it needs to be done
  2. Correctness: the program does what it needs to be doing correctly
  3. User experience (UX): the user can operate the program with ease and the program communicate clearly.
  4. Formalized testing: although formalized testing is not necessary for the program to work correctly, formalized tests (e.g.: unit tests) greatly help find bugs. It also shows good faith to the consumer that the application was put through testing and is more likely to work correctly than one that's not tested so rigorously.
  5. Documentation: document what you've done. Why you did it like that? How does the program behave? For instance, a program not working on specific inputs is not terrible (unless these inputs are specifically needed by the problem description) as long as they are documented. Show the reader of the documentation that even though your program may not be perfect, you have considered as much scenarios as possible.
  6. Smooth out any wrinkles. Check corner cases. Improve the UI of the application, create a graphics UI if you have the time. Address some of the "known issues" mentioned in the documentation (e.g.: handle those special cases). Maybe create an installer for your program, or package it in a zip if it reduces the size, or put it on a place where it's easily available (e.g. file server).

Order 1, 2 means that if you have 4 things to do in your program, it's more important to do all 4 of them, even if buggy than to focus only on one thing and make it work perfectly, but not address the other 3 features at all.

For user experience, I think of printing things on the screen what the user should do, and what the results are in a clear manner. For instance, the "Number?" output on the screen is not too helpful; is -12.34 a valid input?! It makes more sense to tell the user more accurately what the program is after: "Please enter integral numbers between 0 and 100. Enter an empty line to terminate the sequence." This clarifies the range, whether the program expects floats or integers, and what to do the stop the input.

In the documentation, you can explain your design choices. E.g. for a calculator, you could say you decided to work only on 1-byte signed numbers (0..255) and explain why you did it like that. You can explain that you are aware that the program is unable to add two numbers together where the result will be more than 255 as they would overflow. You show that this has been considered and documented and this is the expected behaviour (even though this could be improved and display something like "out of range").

The last point is the least important: making your application fancier, addressing corner cases, and improving the user experience for some special scenarios. No one cares if you have a fancy GUI with buttons, a progress bar, and 3D animation if your program does not work (sticking to the calculator problem, e.g. if your program cannot add two numbers correctly).

And yes, if you're thinking: wait a minute, I wanted to write some code, but I'm spending a significant time of the development on documentation and testing, then you're right. Software development also includes this (and if you want to commercialize your software, even more, that has nothing to do with writing code).

I hope this helps to have an idea.

Good luck with your exam!

commented Apr 25, 2023 by I A (330 points)
I really apologize for my late reply, but I thank you from the bottom of my heart for your response, I appreciate all your effort and time for advising me, I apologize for bothering you, thanks again < =) >
commented Apr 26, 2023 by Peter Minarik (88,520 points)
No problem at all. I hope your exam when well.
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.