Programming Exercise I: Client-Server Connection
(Industry-Level, Second-to-None Comprehensive Specifications)
Absolutely no copying others’ works
- Though these exercises are related, you are NOT allowed to submit one exercise to cover two or more exercises.
- You do not need a VPN (virtual private network) to work on the exercises if you are on campus, but you need it if you are off campus.
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/1/index.txt
” 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 Friday, February 02, 2024.
Send an email to the instructor at
wenchen@cs.und.edu to let him know the exercise is ready for grading.
Objective
Dynamic websites are a must for companies nowadays.
In addition, remote working is a trend.
The goal of these exercises is to have students learn how to build a simple dynamic website by using various fundamental computer tools.
There are four steps to achieve our goal, building a simple online bookstore:
- (Server) Sign in to our server,
undcemcs02.und.edu
.
- (HTML & CSS) Build static webpages.
- (CGI) Connect the Internet to the server-side programs.
- (Python) Write programs to fulfill the users’ requests.
This exercise is the first step to achieve the goal by connecting to the server at “
http://undcemcs02.und.edu/~user.id
”.
Programming Helps
The four programming exercises have each student step-by-step build a simple, dynamic website, which may be the most useful and popular IT system. By doing the exercises, students will gain essential knowledge and experience of using computers because they require you to know how to use various fundamental computer tools (like Linux, HTML, and Python).
If you need helps for the programming exercises,
- Come to the classes physically and the instructor will help you during or after classes.
- Come to the instructor’s or TA’s office during the office hours.
- We can do it over the Zoom during the office hours, but it would take much time.
- Send an email to the instructor for a face-to-face or Zoom appointment other than the office hours.
Requirements
This is the first part of a simple online bookstore construction.
It is to display the text
below at
“http://undcemcs02.und.edu/~user.id/1/index.txt
” by using the following steps:
- 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
- Enter the folder “
public_html/1
” by using the Linux command cd
such as
shell> cd public_html/1
- Create the file by using an editor such as
shell> emacs index.txt
and enter the text below to the file.
- Use a browser to check your result at
http://undcemcs02.und.edu/~user.id/1/index.txt
- 🍀 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.
- 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.
- 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.