CS1116/CS5018 Lab 7
Continuous Assessment
Read all these instructions first. Yes, I know they're longer than anything you've ever read before in your whole life — except for the last time.
This final lab sheet, lab 7, is a 'project' that will last until the end of term. It is the continous assessment for CS1116/CS5018. It is worth 25% of the overall grade for the module.
Everyone will come up with their own project.
Your project must involve either server-side programming in Python or client-side programming in JavaScript or both.
Maybe it's something with a database, where users want to run server-side programs to update and query the database. For example, a club or society may wish to keep membership records; a social network will want to store its members, their connections, and so on; a bookshop may wish to keep track of its stock; a busy house-husband may wish to keep a diary of dental appointments, birthdays, and Pilates lessons; a quiz program would store questions, answers, and the scores of its users in a database;… Or maybe you want to write a client-side game (but not Breakout) or a puzzle. Or maybe you want to combine the two. For example, maybe a client-side game records players' scores in a server-side database.
Your chosen scenario can be real (e.g. an actual
UCC society) or fictitious (e.g. a shop you've made up). If you are doing something for real,
make sure that no issues arise from the fact that your system will be available on the
cs1
server for
all-and-sundry to view.
Examples from previous students include: database-driven quiz programs, shops (for CDs, DVDs, games, flowers, …), libraries, social networking sites, bulletin boards,…, simplified Mario-style games, top-down racing games, top-down adventure games,…
By now, you should have checked your scenario with me: check it with me now, if you haven't already done so. I will want to be convinced that your chosen scenario is ambitious enough to warrant a 'project' that will last until the end of term. (E.g. a database with just one table, a form for insertion and a form for retrieval is almost certainly not challenging enough: it is little more than what you did for lab 4. Similarly, a web site consisting of just some HTML and CSS is not enough: this is a module about web programming so the focus needs to be on server-side Python or client-side JavaScript or both.) Remember, this is 25% of the marks for this module.
If you submit a project that has not been agreed with me, it will be given a mark of zero.
(Projects must be agreed with me no later than 2pm, Friday 13th March 2020 2pm, Tuesday 24th March 2020.)
Once I have agreed it, you can start designing your database, your forms and your server-side/client-side programs.
Here are some random bits of advice:
- Bear in mind that there will soon be lectures on user comments, shopping carts and user authentication (i.e. user registration and user login).
-
Put your database creation commands into a file, like I did with
eurovision.sql
for lab 3. Then, if you ever need to create the database again from scratch, you can easily do so from the file using DBeaver (again like you did for lab 3), rather than by typing in all the commands again. - Don't waste hour upon hour typing the name of hundreds of books or movies or whatever into your database, as some students have done in the past. A dozen books, movies or whatever is surely sufficient. Put your effort into the things that matter: HTML, CSS, SQL, and (above all) Python and JavaScript.
- I will grade your work in Chrome.
- Your work should be in English, otherwise it will receive a score of zero. Of course, occasional common foreign language place names and phrases are acceptable, where necessary.
- When grading your work, I will take into account ambition, achievement and quality.
- Don't be tempted to depart from labs before the full two hours are up (if you do, I will mark you absent), or to stop attending labs because the deadline seems so remote. Start designing and programming NOW.
Submission
-
In your
public_html/cgi-bin
directory, we have created a new directory calledlab7
(no spaces, all in lowercase!!!!!!). Place all your work for this lab sheet into this new directory. (If it's not there, create it yourself and change ist permisssions to 701.) -
Your 'start' page should be called
either
index.html
orindex.py
. When grading the work, this is the page I will visit first. If there is no such page, you will score zero. -
If you think I will need instructions or passwords to run certain parts
of your system, then put these details into a file called
readme.txt
. E.g. the file might contain:My system has two kinds of user: regular ones, and administrators. Choose Sign Up on the main page in order to register as a regular user. But to login as an administrator, the user name is admin and the password is mussolini
If I cannot run the program because you fail to supply details like these, then I cannot give you credit for these features. The permissions for this file can be the same as regular Python files (chmod 700 readme.txt
), which will prevent others from seeing these passwords. -
Similarly, if there's anything you want to tell me, e.g. you might want to point
out a special feature that you're particularly proud of and that you fear I might overlook
when grading the work, then mention it also in your
readme.txt
file. - The work should, of course, be your own. Do not submit the work of others (e.g. from the Web or from another person) as if it were your own. If you do use anything from the Web, give proper credit to the original source. In particular, if you are doing JavaScript games, do not copy large amounts of code from books, online tutorials or videos. If you're in doubt, ask me. Where there are violations of these rules, they will meet with severe penalties, which may include exclusion from the University. You may be called to discuss your submission with me and this will inform the grading, any penalties and any disciplinary actions.
- Deadline: 11am, Friday 3rd April 11am, Tuesday 14th April.
- Late submissions will not be accepted.
-
You don't have to do anything. We have a program that will copy your work from your
lab7
directory. - After submission, do NOT alter your database in any way. If you do, then your software may not run when I come to grade it.