Meeting times and location:
Sec 1: TTh 9:30-10:45 Trinkle B52
Sec 2: TTh 2:00-3:45 Trinkle B7
Instructor: Ron Zacharski
googletalk & gmail: ron.zacharski
Wednesday: 11-2 / Friday: 10-12
- Normally, this course would be a 15 week course on SQL databases. We will cover all the material from that 15 week course in 11 weeks. The pace of the class is fast.
- The last month of the course will be a mini-course on noSQL databases.
- For the SQL component, we will be going through the textbook, one chapter per week. You are responsible for keeping up with the reading. I will not lecture on material covered in the textbook. In the first 11 weeks there are 5 Readiness Assessment Tests (RATs) that assess whether you have read the material.
- The vast majority of the class time is spent doing not listening to me yabbering away. You will be working on tasks that require you to apply the knowledge you have gained from reading the textbook.
- Because of the hands-on nature of the course, you will need to bring a laptop if you are to gain full benefit from the course.
- There is a 6 week long programming project where teams will design and implement a web application that uses a MySQL database. There is a 3 week long programming project where teams design and implement a web app using a nonSQL database.
Textbook: Head First SQL Lynn Beighley Publisher: O’Reilly Media, Inc. Pub Date: August 28, 2007 Print ISBN-13: 978-0-596-52684-9 http://headfirstlabs.com/books/hfsql
Supplemental material: Depending on your learning style, you may want to pick up a book on PHP programming. There are many good books out there. Among them are
PHP and MySQL Web Development. Luke Welling and Laura Thomsom. Any edition. $34.64 from Amazon.
Head First PHP & MySQL. Lynn Beighley and Michael Morrison. $29.69 from Amazon.
If you have a laptop I encourage you to bring it to class for several reasons. First, you can install a web server on it and do the in-class lab work (see, for example,the first lab). Second, you can take notes by typing significantly faster than by writing. And finally, you can use the net to research questions I may pose.
Presents logical database modeling and design, emphasizing the construction and analysis of relational schemas. Covers semantics, integrity constraints, functional dependencies, and table normalization. Practical use of relational algebraic operators, the tuple relational calculus, and their expression in declarative query languages. Introduces basic data mining concepts. May involve student team projects to develop small but representative data collection and analysis applications.
On successful completion of this course, you should be able to
- demonstrate a good understanding of SQL including subqueries, joins, and transactions.
- demonstrate the ability to create rudimentary database web applications.
- demonstrate the ability to use the Apache Web Server/MySQL/PHP stack.
Format of course
During the first day of class, all students will be assigned to permanent teams. Throughout the course, teams will both take team tests and participate in joint activities. Team performance will be one component of your final grade.
This consists of units of study roughly corresponding to the chapters of our textbook. The structure of each unit is as follows. First there will be an assigned reading. Following the reading, there may be a short multiple-choice test (the Readiness Assessment Test described below). We will then practice applying the material in class both with individual and group work.
Grading is based on a method developed by Professor Lee Sheldon at Indiana University. It is based on obtaining experience points (XP). The number of XP determines what level you are at. You start the class at Level Zero and with 0 XP. The level you obtain at the end of the semester determines your final grade. Here is the chart:
If you are at Level Zero when mid-semester reports are due, I will report your work as unsatisfactory.
RATs -Readiness Assessment Tests – 600XP
There will be approximately 5 short multiple-choice readiness assessment tests given during the course. Each test will be taken individually, then, immediately after, the same test will be taken as a team. Each individual test is worth on average 60 points; each team quiz is also worth on average 60XP. Makeup tests will not be given.
Final – 250XP
The final will be a comprehensive take home final. Often the fate of what grade you receive for a class, hinges on how well you perform on the final given at the last possible moment of the semester. Our final will work differently. Starting around the midpoint of the semester, I will be posting questions and problems which are part of the final for the course. You can elect to complete the work anytime between the time the problem is posted and our official final exam time. You will gain 10% more XP if you complete the work within a week of the problem being posted.
Projects – 700XP
The projects will be team based using Agile Software Development with Scrum. Scrum is a software development process that works on a development cycle called a sprint. In the case of this class, sprints will be two weeks long. At the end of each sprint each team will demo their application. Projects will also require use of the Git versioning system and GitHub. A significant portion of the XP for the projects is given for strictly conforming to the Scrum process and Git.
The MySQL Project involves writing a web application using PHP and MySQL about the difficulty level of developing a simple shopping site or simple social networking site.
This project will involve installing one of the nonSQL servers mentioned on the homepage (e.g., Apache CouchDB) and writing a simple cloud application such as a very rudimentary GoogleDocs application.
Worksheets/Labs -600 XP
A good deal of class time will be directed at doing hands-on work. Sometimes a group will collaborate on one task. At other times, each individual must do something (for example, the first task is to get a web server, and mysql server running), but the idea is that everyone in the team will help make sure each individual will succeed.
Team participation – 120XP
Each student will rate the helpfulness of all members of their group. Individual group participation scores will be the sum of the points they receive from other members of their team. Each team member distributes 100 points to other members of the team. The average team participation score will be 100 points. The rater must differentiate some of their ratings (they cannot assign the same rating to all members).
Accommodations for students with special needs
Any student with a documented disability may receive a special accommodation to complete any requirements of this course. If you are have a disability or believe you have one you may wish to self-identify. You may do so by providing documentation to the Office of Disability Services located in Room 203 of George Washington Hall (Phone: Voice 540-654-1266, Fax: 540-654-1163). Appropriate accommodations may then be provided for you. If you have a condition that may affect your ability to exit the premises in an emergency or that may cause an emergency during class, you are encouraged to discuss this in confidence with me and/or anyone at the Office of Disability Services. This office can also answer any questions you have about the Americans with Disabilities Act (ADA).
I assume you are an ethical student and a person with integrity. I expect that you will follow the university honor code (see http://rosemary.umw.edu/CSHonorCode.html). Please use common sense and ask yourself what would a person with integrity do? To help you, I would like to make three comments related to this:
Plagiarism means presenting some other person’s work as your own. This can mean using some other person’s words without acknowledging their source, or using some other person’s ideas. Copying another student’s work (homework or exam) is also plagiarism. Plagiarism will minimally result in an automatic zero for that submission.
Collusion is unauthorized collaboration that produces work which is then presented as work completed independently by the student. Collusion includes participating in group discussions that develop solutions which everyone copies. Penalties for plagiarism and collusion include receiving a failing grade for the course.
I ask that you respect the other people in the class. I recognize that your life circumstances may require you to receive cell phone calls during class. If this is the case please set your cell phone on vibrate and discretely leave the class to accept calls. During tests, if you walk out of the classroom, or consult/display your cell phone, I will assume you are done with the test and collect your grading sheet
The class schedule is posted on the course website.
Here are some other important things you should know.
- Regarding XP. As in a computer game, there is no negotiation for what XP you need to attain a certain level. For example, level 11 (the level associated with an A-) requires 2000 XP. Last semester someone sent me email saying they had 1998 XP, they worked really really hard all semester and deserved an A-. I gave him the A- but starting now the boundaries are hard and there is no negotiating.
- Cheating. Every semester I have multiple cases of people cheating either through plagiarism or collusion (see above definitions). Minimally, I give a person a 0 for that submission. When I taught a New Mexico, I automatically flunked people for an instance of cheating. For example, last semester two people worked together on the final exam. When I sent email telling them they got a zero, one wrote back complaining that this would really affect their final grade. In this class, most of the work will be done in groups, but be very mindful of when you should be doing work on your own.
- Crowd sourcing and reducing my Cognitive Load. Here’s the deal. When communicating with me please error on the side of giving me too much information. Last semester, I received emails with sentences like “My partner was Austin” (when there were 3 Austins in the class) or “I worked with Matt”. It reduces my cognitive load if you specify what section you are in and give full names.