What you need to know
- This class is fast pace. However, the class is not intellectually difficult. This is intensive training that is geared at having you acquire the necessary skills for developing skills as a backend web-app developer and to gain this proficiency requires lots and lots of practice. You may be spending up to 8 hours outside of class programming (maybe more).
- For most of the class you can work at your own pace. This class is based on mastery learning.
- The class is divided into two parts. The first part covers SQL databases and the second covers noSQL databases.
- There will be approximately 4-6 Readiness Assessment Tests (RATs) that assess whether you have learned the material.
- The vast majority of the class time is spent doing. You will be working on tasks that require you to apply the knowledge you have gained from learning the meaterial.
- Because of the hands-on nature of the course, you will need to bring a laptop (or a chromebook) to every class if you are to gain full benefit from the course.
- 3-5 hours per week of studying outside of class
- 6-8 hours of programming per week outside of class time (as the semester progresses you will be spending more and more time programming)
- ~3,000 source lines of code for the entire semester.
Google Cloud Account (or equivalent)
Laptop: You need to bring a laptop to class. You will be using it for in-class programming, learning to write SQL queries, and online tests.
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 develop applications based on the model-view-controller design.
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.
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 Three or lower when mid-semester reports are due, I will report your work as unsatisfactory.
RATs Readiness Assessment Tests – 500XP
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 50 points; each team quiz is also worth on average 50. Makeup tests will not be given.
Core Competency Tasks (replaces exam) – 200-400XP
Programming Rudiments – 1200XP
There will be ten guided graduated projects throughout the semester designed to give you practice in writing data driven web apps. You can progress through these at your own speed but they must be completed by the 30th of November.
Creative Project – 200-500XP
Optional. Description forthcoming.
Lightning Rounds – 500XP
Timed team exercises on SQL statements where you compete against other teams.
Team participation – 100XP
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).
Slack Participation – 100xp
Slack is a work chat application that many tech companies use. We are going to be using Slack in a number of ways. If you have a particular programming question you can ask it in a general channel and hopefully you will get an answer or suggestion quickly. In addition, you will report your progress to the class through it. In addition, all class announcements are distributed through Slack.
Since there are no firm deadlines in this class, I worry that people will focus on work for other classes, delay working on tasks for this class and get far behind. To nudge people to work on this class I have decided on the following negative reinforcement.
If you are on or ahead of the suggested schedule there is no attendance requirement. If that is not the case, the following attendance penalties apply:
- first day absent: -10xp
- second day absent: -40xp
- third day absent: -150xp
- fourth day absent: -1000xp
Again, if you are on schedule there is no attendance requirement and you can miss as many days as you like without penalty. There are two components of attendance:
Physical presence means you are present from the start of class to the end. You can leave for a short time –10 or 15 minutes total–(for example, to get coffee). Be respectful of people trying to focus in the class and take your fun off-topic conversations outside the classroom.
Several times per week one of our Slackbots will ask you three questions:
- What have you accomplished since the last class?
- What are you working on now?
- What is holding your back?
Failure to do the Slack check-in also counts as missed attendance.
You are also limited to 2 demos per week. Last semester someone came in the last day and demoed nearly all the projects moving from an F to a C+. That would be fine if I thought they learned something, but my gut reaction is that they just got the code from someone else. This is not an isolated occurrence and I always think that people really didn’t learn anything with this project dump.
The last day to demo anything is the 4th of December.
Avatar names, pseudonyms, noms de plume
During the first week of class I will ask you for your avatar name, pseudonym, whatever. This is the name that will appear on the Experience Point Google Spreadsheet that will be viewable by everyone in the class. If you wish to remain anonymous, don’t share your avatar name with anyone. On the other hand, if you would like recognition for achieving level 10 as an example (“a big shout out to tera miner for achieving level 10″), you can share your name. The decision is yours. To further protect the anonymity of those who wish to remain anonymous, the spreadsheet will also be populated by fictitious avatar names.
Announcements, discussions, and questions
I will communicate with the class via Slack and the course web page.
For questions about any aspect of the course including homework and labs, please use Slack.
You are responsible for checking your email and Slack every 24 hours and the web page at least weekly.
The Office of Disability Resources has been designated by the college as the primary office to guide, counsel, and assist students with disabilities. If you receive services through the Office of Disability Resources and require accommodations for this class, make an appointment with me as soon as possible to discuss your approved accommodation needs. Bring your accommodation letter, along with a copy of our class syllabus with you to the appointment. I will hold any information you share with me in strictest confidence unless you give me permission to do otherwise.
If you have not made contact with the Office of Disability Resources and have reasonable accommodation needs, (note taking assistance, extended time for tests, etc.), I will be happy to refer you. The office will require appropriate documentation of disability
Title IX Statement
University of Mary Washington faculty are committed to supporting students and upholding the University’s Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence. Under Title IX and this Policy, discrimination based upon sex or gender is prohibited. If you experience an incident of sex or gender based discrimination, we encourage you to report it. While you may talk to me, understand that as a “Responsible Employee” of the University, I MUST report to UMW’s Title IX Coordinator what you share. If you wish to speak to someone confidentially, please contact the below confidential resources. They can connect you with support services and help you explore your options. You may also seek assistance from UMW’s Title IX Coordinator. Please visit http://diversity.umw.edu/title-ix/ to view UMW’s Policy on Sexual and Gender Based Harassment and Other Forms of Interpersonal Violence and to find further information on support and resources.
Tiffany W. Oldfield, J.D.
Title IX Coordinator
Office of Title IX
Title IX Deputy for Students
Talley Center for Counselling Services
Lee Hall 106
Student Health Center
Lee Hall 112
Classroom activities in this course may be recorded by students enrolled in the course for the
personal, educational use of that student or for all students presently enrolled in the class only,
and may not be further copied, distributed, published or otherwise used for any other purpose
without the express written consent of the course instructor. All students are advised that
classroom activities may be taped by students for this purpose. Distribution or sale of class
recordings is prohibited without the written permission of the instructor and other students who
are recorded. Distribution without permission is a violation of copyright law. This policy is
consistent with UMW’s Policy on Recording Class and Distribution of Course Materials.
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 a negative score for that submission. For example, if a task is worth 100xp, a plagiarized submission will result in -100.
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.