Programming Exercise: My Meal Ordering
Part I: User Interface
(Industry-Level, Second-to-None Comprehensive Specifications)
Absolutely no copying others’ works
Development Requirements
When start developing the exercise, follow the requirements below:
- The exercise has to be Internet-enabled (a trend of current IT systems).
- The system entry page must be located at “
http://undcemcs02.und.edu/~user.id/280/1/interface.html
” and all pages must be hosted by “http://undcemcs02.und.edu/~user.id/
”.
- The systems have to be active even after being graded until the end of this semester.
They will be re-checked for plagiarism from time to time.
Due Date and Submission Methods
Due on or before Monday, September 23, 2024.
Send an email to the instructor to remind him the exercise is ready for grading.
Objective
An application of meal ordering is trivial, but its implications, such as searching and optimizing, could be significant.
The objective of this exercise is to have students set up the user interfaces, which are required for all software.
There are three approaches available for user interface construction:
- Internet-enabled interface:
It is the most popular one and a trend for current IT systems.
The system entry page must be located at “
http://undcemcs02.und.edu/~user.id/280/1/interface.html
” and all pages must be hosted by “http://undcemcs02.und.edu/~user.id/
”.
- Graphical user interface:
It is the most difficult one (e.g., using AWT, Abstract Windowing Toolkit).
- Text user interface:
It is the least favorite one and an obsolete method.
This exercise is to set up the Internet-enabled interfaces for the meal ordering application.
Requirements
This is the first part of a meal-ordering application, which is to build a user
interface as follows:
Recommended Steps
This exercise is simple (copying and pasting mainly) and is not related to Java.
It is a warm-up for web programming, which paves the way for the remaining exercises.
Take the following steps to build your Programming Exercise I:
- For your convenience, here are the reference cards of Linux and Emacs.
- (Off-campus only) You may skip this step if you are on campus.
Otherwise, you may connect to the NDUS servers by using VPN (virtual private network) like GlobalProtect.
- Connect to the server “
http://undcemcs02.und.edu/~user.id/
” by using SSH (Secure Shell) like PuTTY (PC) or Termius (Mac).
- Sign in to your account by using your UND credentials.
- Open your account by using the Linux command
chmod
such as
shell> chmod 755 ~/../*
- Create your web folders by using the Linux command
mkdir
such as
shell> mkdir public_html
shell> mkdir public_html/1
- Do not forget to open the folders that you just created such as
shell> chmod 755 public_html
shell> chmod 755 public_html/1
- Enter the folder “
public_html/1
” by using the Linux command cd
such as
shell> cd public_html/1
- Create three web pages by using an editor such as
shell> emacs interface.html
shell> emacs interface.txt (text version of interface.html)
shell> emacs help.html
- Open the folders and files that you just created such as
shell> chmod 755 *
- Use a browser to check your result at
http://undcemcs02.und.edu/~user.id/1/interface.html
- 🍀 Good luck! 🍀
Evaluations
The following features will be considered when grading:
- Specifications:
- The instructor (or your assumed client) has given the exercise specifications as many details as he possibly can.
If you are confused about the specifications, you should ask in advance.
Study the specifications very carefully.
No excuses for misunderstanding or missing parts of the specifications after grading.
- The specifications are not possible to cover every detail.
You are free to implement the issues not mentioned in the specifications, but the implementations should make sense.
Implemented functions lacking of common sense may cause the instructor to grade your exercise mistakenly, and thus lower your grade.
- The exercise must meet the specifications.
However, exercises with functions exceeding the specifications will not receive extra credits.
- Grading:
- This exercise will not be graded if the submission methods are not met.
Students take full responsibility if the website/system is not working.
- Though these exercises are related, you are NOT allowed to submit one exercise to cover two or more exercises.
- A set of test data will be used by all students.
The grades are primarily based on the results of testing.
Other factors such as performance, programming styles, algorithms, and data structures will be only considered minimally.
For example, finding the lowest price could be an NP-hard problem.
Instead of finding an optimizing algorithm, an exhaustive search may be used to find the answer.
- Before submitting the exercise, test it comprehensively.
Absolutely no extra points will be given after grading.
- The total weight of all four exercises is 40% (10% each) of the final grade.
- If not specified, no error checking is required; i.e., you may assume the input is always correct for that case.
For example, the food items entered will always be valid names.
- The newest Firefox browser will be used to grade exercises.
Note that Internet Explorer, Edge, Chrome, and Firefox are not compatible.
That is your exercises may work on the IE, Edge, or Chrome but not Firefox.
- The systems have to be active until the end of this semester.
They will be re-checked for plagiarism from time to time.
- The instructor will inform you the exercise evaluations by emails after grading.
- Comments:
- Make the exercise work first.
Do not include extra features, such as fancy interfaces, in the beginning.
By the way, you will not receive credits for the extra features.
- Time management is critical for software development.
If you are not able to complete the exercise, display whatever you have accomplished, so the instructor can give partial credit to your exercise.
- According to a study, students in computer courses learn much more by building large-scale exercises instead of many small-scale test programs, which give fragmented knowledge contrary to solid understanding of the language.
However, not to overwhelm students by the large size, the exercise is divided into several sub-exercises. This is the first part of a meal-ordering exercise. Together, they give students an understanding of a large-size exercise development experience.
- The only effective way to learn a programming language is practicing, instead of studying concepts or writing some testing programs.
No pain, no gain 😂