|
|
HomeworksYou should EMAIL me homeworks, alex at theparticle dot com. Start email subject with "CIS53"HW# 1 (due by 2nd class; not accepted after 20080918): Email me your name, prefered email address, IM account (if any), major, and year. HW# 2 (due by 3nd class; not accepted after 20080929): In Perl/CGI, implement a forum, similar in functionality to this one. You will need 4 cgi programs: 1) to display the forum topics and have form to `add topic'. 2) to actually add the topic (ie: no display; just append topic to file, and go back to [1]). 3) to display the individual topic (with all of the replies), with a form to `add a reply'. 4) to actually add the reply (ie: no display, just append reply to topic file and go back to [3]). You can organize your files as you wish (I suggest 1 file per topic, with topic name as name of file). Later on we will save things in a database---but for now, keep it in files. HW# 3 (due by 20080929; not accepted after 20081012): Using JSP pages, implement a forum, similar in functionality to this one. This is HW2 done in Java and using a database. You will need 4 java server pages: 1) to display the forum topics and have form to `add topic'. 2) to actually add the topic (ie: no display; just insert topic into db, and go back to [1]). 3) to display the individual topic (with all of the replies), with a form to `add a reply'. 4) to actually add the reply (ie: no display, just insert reply into db and go back to [3]). Your database should have two database tables: one for the topics (ie: "topic"), another for all the replies (ie: "post"). The schema should be similar to: topic(topicid,subject,name,email,postdate), and post(postid,topicid,subject,name,email,message,postdate). When someone adds a topic, you will add a record to "topic" AND "post" tables. When someone replies, you will just add a record to "post" table for that topic. In view pages, you display contents of "topic" tables or "post" table respectively. Use MySQL database, etc. HW# 4 (due by 20080913; not accepted after 20081031): Do homework 3 using PHP/MySQL. As an option, try to add login/user support---only allow logged in users to post. HW# 5 (due by soon): Refactor HW4 to use the "MVC" pattern (ie: Model View Controller). Your program should have a main controller that all requests go through. The controller, based on some parameter, includes the appropriate file, etc. Take a look at the class notes for the last few classes for an idea. HW# 6 (due by 20081110): Take a look at class notes for 20081020, and build your own generator capable of generating a database schema. You should be able to define some "meta" file (either in text or xml), and your program will loop through the table/column definitions, and output appropriate SQL that you can actually run against the database without changes. HW# 7 (due by 20081124): Build an AJAX version of the forum (ie: hw3, only build pages that do not refresh---but use AJAX calls to the server). HW# 8 (due by 20081201): Build a chat server and a chat client (command line based) using RMI.
|