Spring 2006
I consistently get lots of questions about the prerequisites for this class. First, a reasonable background in programming in a programming or scripting language such as Java, C++, Perl, Javascript, or Pascal. "Reasonable" means either coursework or equivalent practical experience. You should be able to design, implement, debug and test small to medium sized programs. Much of programming in the web-db context involves writing server-side "glue" programs in scripting languages like Perl, so experience with this language, or one like it, is helpful. We will be exploring an array of web-db solutions, so you definitely will be writing code in more than one language and you should have some familiarity with the process of programming before enrolling in the class.
The second prerequisite is maturity in database design, and conceptual and practical experience with SQL (Structured Query Language). You should be able to write SQL to query, insert, update and delete information from databases, as well as perform joins on relational tables. Experience with MS Access is minimally sufficient - IF AND ONLY IF you've worked directly with SQL. If you've only used Microsoft's QBE to construct queries and joins, you'll probably be in over your head. You should also understand the concepts of relational theory and normalization.
Finally, you should have some knowledge of Internet concepts and application-level protocols, especially client-server, HTML, and CGI concepts and principles.
Though my goal is definitely to help you succeed in this course, I do not expect to be offering continued, detailed support on areas like program debugging. The focus of this course is to give you practice learning several different approaches to web-based databases, so we will be covering a lot of ground.
This class is not intended to be a computer science programming course, nor is it intended to give you in-depth programming knowledge. It is intended instead to present a bigger picture of web application environments and how these can be integrated and utilized, while at the same time giving you some hands-on experience with commonly used architectures and scripting languages. Note that while databases are assumed to provide back-end data storage, the focus is not on the databases themselves, but instead on the middleware layer of web application environments.
This course revolves around an examination of various solutions for providing web-enabled databases. Related technologies, such as DOM, web services and WDSL, and CORBA, may also be covered if time allows. Three main technology solutions will be covered, as follows:
| Technology | Database | Platform | Notes |
|---|---|---|---|
| ASP | Access | PC | Scripts are written in VBScript or Javascript and interpreted by the web server |
| Cold Fusion | Access | PC | Tagged language that allows database connectivity without significant programming |
| PHP | MySQL | Unix | Scripts are written in a perl-like language and interpreted by a web server module |
One additional solution will be covered (to be determined by common class experience).
The main goal of the class is to give you hands-on experience with a variety of web-db technologies. This exposure, supplemented with in-class discussion, will allow you to create a generic model for web-enabled database connectivity. Ideally, this conceptual model combined with the hands-on experience will significantly increase the size and weight of your skill set and allow you to confidently tackle the next set of technologies that are sure to emerge.
Your grade will be based on both individual assignments and a group project. Groups will be 3-5 people in size and can be chosen based on interest. A brief overview of assignments is given below. More details will be forthcoming.
I will usually not accept late work without a steep penalty - typically 1/2 letter grade per day. If you know that you will have problems meeting an assignment date, your best bet is to discuss this with me before the due date.
| Assignment | Value | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Programming and Database Review | 0% | This is a sanity check for both of us, to ensure that you have the requisite background to succeed in this course. Not worth any points, but required. | ||||||||||
| Lab Assignments | 3 @ 10% | Individual assignments. Typically this will be a demonstration that you can push the solution through to a working database with web-based access. | ||||||||||
| Code Reviews | 2 @ 5% | Individual assignments. Typically you will complete a code review on an assigned lab item. | ||||||||||
| Participation | 10% | Instructor's perception of your participation in and out of class. Also included in this portion of your grade is your participation and comments during other classmates' code reviews as well as during any virtual class sessions. | ||||||||||
| Final Project | 50% | This is a full-featured solution on a problem of your choosing. you will determine the problem area, develop an implementation plan, and execute it. While this is not a full-fledged Systems Analysis project in that you can assume that a web-database solution is appropriate, much of the same types of documentation and processes will be required. The particulars of the database and the methods of access are what is undetermined. This project is divided into several interim deliverables, which are due on different dates. For more information, see the assignments page.
|
There is a required text for this class - Web Standards Programmer's Reference: HTML, CSS, JavaScript, Perl, Python, and PHP, by Steven M. Schafer (ISBN: 0-7645-8820-6)

The University Honor Code is in effect. When work or ideas are not your own, you must attribute them. When an assignment is designated as individual, then the substance of the work you turn in must be your own. If you have any doubts or questions about a course of action or a specific situation, please ask for clarification.
Within these parameters, I encourage the discussion and exchange of ideas. I also expect that students will give and receive minor assistance to others in the class. However, students should NOT receive (or give) major creative assistance or ongoing minor support on individual assignments. There is definitely a line that should not be crossed, which can be identified through a simple idea - that of "Open Hands". Basically, you must leave any meeting or work session you have with other people with regard to specific assignments with open hands. No notes, no e-mail with specific solutions, no floppy disks. Thus you can talk with your fellow students about anything, but you cannot leave with physical artifacts when your discussion relates to specific work assigned for the class. That said, if you do receive help (minor creative assistance or help talking through a particular logic problem, for example) from your fellow students, be sure to acknowledge this. Of course with group assignments, the policy doesn't apply within the group.
If you have any questions about this or any specific situation that may arise, please ask me.
UNC has also put up a web page on plagiarism and the correct way to cite other's work.
| Home | Resources | Schedule | |
| Syllabus | Assignments | ||
Last modified: 12/8/2005 by Kristin Chaffin. © Kristin Chaffin, 2004-2006. All rights reserved.