Comp 353-001
Database Programming
Spring, 2018

Course #: COMP 353-001  3397 (in-person with  several online meetings)
There is no online section, but I am fully supporting online students
Day/Time: Thursday, 4:15 - 6:45
Classroom: Cuneo Hall , Room  203
Prerequisites: COMP 271 or  COMP 251
Instructor: Dr. Channah Naiman
web page:
office hours:
Thursday, 2:45 - 3:45, or by appointment
Doyle Center 205   x. 88113  (email preferred!!)
Also, shortly before and after class in or near our classroom.
no such luck--it's all me, all the time....
Syllabus Index
Learning Objectives
Texts and Software Grades
Tutoring Programmng environment
Academic Honesty
Class Format, Attendance
Religious Holidays
Homework/Assignments Students with Disabilities
Course Schedule Important Dates

Course Description:  This course covers the fundamentals of database design and application development by accessing a transaction-oriented database server.  Emphasis on SQL.  An open-source database is used.  Additional topics include enabling access to the database via the web.

Outcome:  Students will learn SQL, database design and application development using the latest software tools. Students will also learn techniques for web based data retrieval and manipulation.

Learning Objectives:
Course Materials: 
All of the material (text and software) that you need for this course is available for free online:


As of this writing, Sakai will be used for course announcements, homework submissions, and grade postings.  While the raw scores posted on Sakai should be correct (although I have encountered some problems with that too!), please do not rely upon Sakai's Course Total calculations.  Usually, they are okay, but there have been problems.  I check the total grade postings periodically, to check up on Sakai's calculations.  Certainly, before the mid-term grade posting on Locus, and before the drop deadlines, check your grades (and I will too!)  Grades are calculated as specified in this syllabus.  If Sakai presents too many problems, we will switch to CourseSites.

Class Format:
The class sessions will be a mixture of lecture and lab.  The proportion of each will vary by the topic being covered.  If you have a laptop, you will want to bring it to class starting with the third wek of class, unless I let you know in advance.  Some of the labs are worth points, and some of them cannot be made up outside of class.  Labs 4, 5 and 6 have assignments associated with them.  Nearly all of the lectures and labs will be videoed, and links provided on Sakai.  Reading materials, lab assignments and homeworks are all posted, either on Sakai or linked to on this syllabus.

I will be presenting examples and demonstrating code that are not in your text.  You are responsible for what is presented in class, even if some of the activity may not be covered in the class notes. If you choose not to attend, that is your prerogative; however, make sure that you find out what you missed. 

The last third of the class  will focus on the project.  We will have two guest lectures from Mr. Elliott Post, one of our adjuncts, a professional full-stack web developer, who specializes in PHP.  We will also have several "flipped" classes, where you may review the videos of several short topics (such as transactions, cookies, sessions) on your own time, and I will work with teams during "project walkarounds" during class time.

Cell Phones: Only you know the relative importance of any particular cell phone call, and whether it is important for you to answer a call immediately rather than later. I do want you to be respectful of your classmates and disrupt the class  as little as is practical. If you get cell phone calls with fair frequency, be sure to have the ring muted before coming to class. If you rarely get calls, you might not mute it ahead, and your cell phone may happen to ring. Get rid of the noise as soon as possible, and do not get flustered. I assume you will move outside the classroom for a conversation. If you get fairly frequent calls that you are likely to consider important answering, sit in a place where your exit and re-entrance are as unobtrusive as possible.

Homework Assignments:  Source code for your Homework assignments should be submitted to Sakai.  Lab assignments will usually be checked in class.  In addition, a list of the exercises and the due dates for each assignment are linked to on the Course Schedule.  You can submit your homework with a partner, since you are working together on homework anyway.  However, every student must submit something in Sakai:  either submit the homework, or submit a comment telling me who is submitting the homework on your behalf.  If you are submitting on behalf of your  homework partner, please submit a comment in the Sakai Assignment box to that effect.
Project:  You will form teams of two,  three, or four, to complete a project, which is a major programming assignment in PHP.  The project will be discussed further in class.

Programming Environment: 
Campus Network, Rights and Responsibilities
As a user of the campus network, you should be aware of your rights and responsibilities in

Much of your work will be done on your laptop, on your local server, and on our class server.  So I don't think there will be an issue with saving your work.  However, if you use the University computers, be aware that the University computers labs provide Computer Science students with permanent storage on P: drive. If you use both computer lab machines and other machines, or just share with a partner, you will want to take all of your files with you. You can use a flash drive, Google Drive, Mercurial and BitBucket, Box, or, in a pinch, send an email to yourself or your partners wtih attachements.

Academic Honesty:
The penalty for cheating may be anywhere from a 0 on an assignment to a grade of "F" in this course. The appropriate dean will be informed in writing of any cheating incidents. No exceptions, for any reason.

Cheating consists of, but is not limited to:
Help from any source is fine concerning
Exam:  There is one exam, on March 1.  This exam will cover material discussed in class, reading material on the web, and assignments. A review for the exam is posted one or two weeks before the exam.  They may already be posted.There is no final exam.  Your project is instead of a final exam.  If you must miss the exam, let me know well in advance. Then if you have a good reason we can possibly make other arrangements, at my discretion. I have little sympathy for people who inform me after the fact for no good reason. Exam absences will be veririfed.  If they can't be verified, you will not be excused. 

*No second try*: If you have an excuse for not being prepared to take the exam, but decide to take it anyway, you don't get to change your mind after you see a poor grade. Being sick is not a way to get one more chance than everyone else. I may allow you to delay an exam due to illness, but I will not let you be reexamined due to a poor grade.

Religious Holidays:  Students with religious holiday conflicts:  Please let me know within the first two weeks of class if you have a religious holiday conflict with any exam or homework due date, so that we can plan on an accommodation.

Students with Disabilities:  If you have a documented disability and wish to discuss academic accommodations, please contact the Services for Students with Disabilities Office (773-508-3700 and as soon as possible.  Students with documented disabilities who provide me with a letter from the SSWD office will be fully accommodated as per the terms of the letter.  Students who are allowed to take their exams in the SSWD office are encouraged to do so.  Should you choose to take the exam in the classroom, I cannot guarantee that the classroom environment will be quiet enough to provide you with the environment that your disability may require.  If you choose to take the exam in the classroom, you are taking that risk.

Students with Sponsorships and Scholarships:  If you require a certain grade in order to satisfy a sponsor or a scholarship requirement, please be sure to monitor your grade on Sakai.  I will consider only your performance in this course in calculating grades, using the grading rubric posted in this syllabus.  If you cannot achieve a minimum grade that is required by a sponsor or a scholarship, I will not change your grade to help you meet that requirement.  This would be unfair to other students, and not reflecive of your performance in this course.  You are reponsible to monitor your grade and to keep apprised of the withdrawal dates posted by the registrar.


Orientation Assignments      40
Homework Assignments 1 - 5 @50 points
Labs 1 - 7
Midterm Exam
Project    200
Project Excellence
Total   1000

What is Project Excellence?  A "very good" project that fulfills the requirements and is perfectly satisfactory can earn full points for the Project.  That would be 200 points.  If you get full points on your project and do not earn any Project Excellence points, please don't ask me what you did "wrong".  The answer will most likley be  "nothing".  Project Excellence points can be earned for a project that is truly excellent, incorporating components well beyond the material covered in class, or simply having a real "Wow" factor.  A grade of "A" means "excellent".  There are many points in this course that could be considered free points.  Full points for Homework and Labs can be earned if significant effort is demonstrated:  you are graded for completeness, not necessasrily for correctlness (although grossly incorrect answers will be makred off).  But for a project to get an A, it must be excellent.  As I review your progress during project walkthroughs, I will tell you what you can do to earn excellence points for your project.
Course grades are assigned as follows:

Course Schedule:

The dates below give the sequence and a general idea of the time spent, though we may get ahead or behind this time schedule at different points, depending on the needs of the class.  Be sure to keep up with where we really are in class.

Labs (except for Lab 0, which isn't really a lab) are listed for the class when we will work on them together. The TA or I should check off your completion or at least your participation during the same class.  Labs 1, 2 and 3 cannot be made up outside of class.    Sometimes, we can't finish the labs in class.  In that case, I will check that work was done during class and allow a submission later, usually that night or the next day.  Labs 4 - 7 have assignments associated with them.  Due dates are listed on this syllabus and on Sakai.

Assignments are to be turned in on the date where they are listed below as due, generally by 11:55PM.

In general, read the assigned chapters before coming to class.  Most lectures will not follow the book exactly.  Very few will use the text's PowerPoints.  However you are responsible for the chapter anyway, even if I focus on certain examples and not others from the text.  It's the best of both worlds!

The first few weeks look like we are covering a lot of chapters. This is because the chapater topics are interrelated, and there is a lot of overlap.  The data modeling examples given in class will  include a discussion of the functional dependencies inherent in the applications, and the ER diagrams will reflect the normalized relations for that model.  Do not get overwhelmed with the reading (although the book is very clear).  Rather, I will walk you through the important topics.  You will have time to catch up on the reading by the midterm.

  • Administrative introduction, syllabus
  • Chapter 1:  DB History, Motivation, basic terminology (lecture ppts)
  • Intro Overview:  integrity, concurrency, SQL
  • Chapter 2:  Schemas, DBMS, Architectures
  • Supplier-Parts:  motivational example (actually references topics in Chpater 15.1 - 15.4)
  • Chapter 3:  ER Diagrams.  
  • Pilot-Plane Type (example with flaws)
  • Use any modeling tool you want, even Word or PPT.   BETTER:  try  ER Assistant (Windows only); Gliffy; something like (I don't prefer their EER notation, but no biggie); StarUML; ErDraw (ok EER notation) Dia (Windows or mac); Lucid (You can keep renewing the free trial); ERDPlus (seems cool and very clear!); worst case, draw and scan into a pdf file.  That is really a worst case.  Yeah, don't do that....
  • You can go another direction entirely, and use SQL Workbench as an alternative to PHPMyAdmin, and also for ERD design.  You're on your own with that, but if you're comfortable with it, great.
  • Discuss Lab #0 (not done in class):  assign and test software installtion on laptops.  It's part of your Orientation points,which also include testing PHPMyAdmin by creating a University database, and populating with this DDL and Insert file.  For more detailed instructions and links, go to Sakai, click on "Orientation" in the left menu bar, and then click on the installation buttons.
Install XAMPP on your laptops, if you are using a laptop.  Configure PHPMyAdmin,  (possible issues),  (You can use any WAMP, MAMP or LAMP stack, or you can use a VM on Guacamole if you request one.  But I have supplied instructions to XAMPP, which works on Windows and Mac.  Check the orientation assignments on Sakai.)  Test your installation as per instructions on Sakai.
You may also want to install SublimeText, atom, TextWrangler (or any good text editor) on the mac, or Notepad++ on Windows

Assign:  Homework #1

Orientation:  Available on Sakai.  Best to complete before the course begins.
  • Chapter 3:  continue ER Examples:  EN 3.21, 3.23, 3.32, 3.33, 3.34
  • Chapter 4:  EER Diagrams: Examples
  • Requirements Definition 
  • possibly begin Chapter 9
Due:  Homework #1
Assign:  Homework #2 (use EER case)
 resolve any installation issues on stack
  • Chapter 9:  mapping ERDs to relations (PPT Slides 12-23) revisit the Supplier-Parts example
  • Chapter 5:  relational model  (formalize what you already know by now) and begin SQL (PPT slides)
  • Lab #1 see  Company Schema  using DDL  and Insert  to create and populate the database
  • Text, 5.11, and begin on Simple SQL Queries (based on Chapter 6, but modified for MySQL)
  • useful links:  copy and rename a DB in PHPMyAdmin  and msqldbcopy or  mysqldump for command line
  • Create and populate the Pine Valley database.
Due:   Orientatinon Tasks
Due:  Homework #2
Assign:  Homework #3
Lab #1:  show me or TA at end of class
  • Chapter 14:  sections 14.1-14.4, normalization and functional dependencies, brief overview
  • Lab #2More complex SQL Queries (based on Chapter 5, perhaps with some extra examples)   user PVFC Big  Version DDL, data1, (data2 needed for HW)
DUE :  Homework #3
Lab #2:  show me or TA at end of class
Assign:  Homework #4
  • Before completing Lab#3, read Chapter 14.1 - 14.4 to review functional dependecies and normalization.
  • Lab #3:  In-class supervised assignment:  Create a schema; insert values; queries; normalization
  • Team work on Homework #4
  • So much is covered in the first 4 weeks, that this will be your chance to catch up, and pull the concepts and techniques together.
Lab #3:  due at the end of class
Hard deadline for Homeworks 1-3
DUE:  Homework #4

3/01  Midterm Exam  (Review for midterm)

3/07Spring Break, no classes
  • Lab #5:  Use PHP to publish MySQL data on the web.  Files will be posted after the lab.
  • Assign Lab 5 assignment, using these files.
  • Using a remote server (time permitting)
Assign:  Homework #5
DUE:  Lab 4 assignment
3/22 Possibly a "flipped" class.  Watch these videos on your own time, and we'll finish work from the previous lecture, and spend time clarifying project requirements with teams.  Depends on how far we are in the material.
  • Review Homework #5 
  • Lab #6:  Functions, scope and global variables, using these files
  • Assign Lab 6 assignment
  • Demo:  Overview of Web DB application (videos available.  probably not during class time)
  • Discuss Project  (supervised project scope definition time)
DUE: Lab 5 assignment
3/29Easter holiday break, no classes
But let's set up project team meeting using Skyp or zoom!!

4/05 Demonstration of advanced topics:   (Mr. Elliott Post)
  • Debug
  • Lab #7: Passwords using bcrypt    (Lab 7 may or may not be assigned, at Mr. Post's discretion.)
  • Professional approaches to programming in PHP  (object orientation, dependency managers)
  • Possibly project questions

DUE:  Homework #5
DUE:  Informal Project Proposal
DUE:  Lab #6
Demonstrations of additional topics:
Probably a "flipped" class.  Watch the videos on your own time, and project walkarounds in class.

4/19 Project Help Day  (Mr. Elliott Post)
DUE:  Lab #7 (unless otherwise instructed)
4/26 Supervised project work (and possibly some topics from the previous week)

Project Presentations, in lieu of Final Exam DUE:  Project PPTs , report, code.

Important Dates:
Here are some dates from the LUC academic calendar:
 Spring Semester, 2018
Spring Semester Open registration ends at midnight Jan. 14
Martin Luther King, Jr., HolidayNo classes Jan. 15
Spring Semester Begins. Late and Change of Registration begins - Late registration fee applies Jan. 16 (Tues)
Late and change registration ends. Last day to withdraw without a mark of "W" Jan. 22
Last day to drop class(es) with a Bursar credit of 100%- dates maintained by Bursar Jan. 29 (Mon)
Last day to convert from credit to audit or vice versa - Last day to request or cancel pass/no pass option Jan. 29
Last day to drop class(es) with a Bursar credit of 50%- dates maintained by Bursar Feb. 12 (Mon)
Summer Registration Begins Feb. 12
Ash Wed (46 days before Easter): Classes meet, Special worship services available Feb. 14
Last day to drop class(es) with a Bursar credit of 20% (zero credit thereafter) Feb. 19 (Mon)
Last day for students to submit assignments to change an "I" grade, from the preceding Fall Semester and the preceding "J" Term, to a letter grade; Faculty may set an earlier deadline Feb. 26
Early alert process begins on Mon week 7 and runs through Fri of the week 9 Feb. 26
Last day to file applications with Deans' offices for degrees awarded in December for this year Mar. 1
Spring Break: No classes Mar. 5 - 10
Classes Resume Mar. 12
Last day (5:00 p.m.) to withdraw with a grade of "W", after this date, the penalty grade of "WF" is assigned Mar. 26
Good Friday , No classes (offices closed) Mar. 30
Easter Holiday: No classes Thurs evening (classes that start 4:15 p.m. or later are canceled) through Mon afternoon (classes beginning on or after 4:15 p.m. will be held) Mar. 29 - Apr. 2
Fall Semester UGRD Registration begins 16-Apr
Spring Semester classes end 27-Apr
Final Examinations April 30 - May 5
*Study Day Wednesdays: No daytime exams will be held.     
Evening classes meeting at 4:15pm or later will hold exams as scheduled.