||COMP 453-001 3267 (in-person with
several online meetings)
There is no online section, but I am fully supporting online students
||Tuesday, 4:15 - 6:45
||School of COMM, Room 014
||COMP 271 and COMP 251
||Dr. Channah Naiman
12:30 - 2:30.
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....
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
- Apply data modeling concepts and techniques to capture the
conceptual model of an applicaiton
- Create and query a database, using a professional DBMS
- Query against a database using SQL
- Implement a database application (in this case, in PHP and
- Learn fundamental principles of the relational model,
normalization and functional dependencies
- Survey current topics and trends in database programming
Materials: All of the material (text and
you need for this course is available for free online:
textbook covers all of the topics for the course. Many of the
lectures and assignments will draw upon Fundamentals
Systems, by Elmasri and Navathe, 6th edition,
The text has a chapter that discusses PHP programming; however, expect
to use publically-available resources on the web for the hands-on
segment of the course. The 6th edition is old, but
free pdf versions are available all over the internet.
The 7th edition is not that new either (but it is the most
recent). I bought a pdf version for $3 on ecrater.com.
The reason I'm not concerned about getting the latest edition
is because the fundamentals, which are relational database design, do
not change. And PHP upgrades frequently (and has had a major
upgrade recently), so we are not relying on the textbook for that
- Course Support:
- Assignment submission and grades will be maintained on Sakai.
- We will be using PHP and MySQL (actually MariaDB, which
is a clone to MySQL) to develop web database
applications. These require a web server, which you can
install on your laptops. You may install
each component separately. Alternatively (and strongly
install a "stack" that integrates these components into one
installation. These are often referred to as WAMP (Windows,
Apache, MySQL, PHP), MAMP (Mac, ...) or LAMP (Linux,...).
There are many (such as WAMP Server, XAMPP, MAMP-PRO, etc). I
have been using
demonstrate my local server programs using Bitnami
to demonstrate programs in class, simply
because it is easy to use and it has a similar interface for its
Windows and its Mac implementations. However, since the PHP upgrade
from 5.x to 7.1, Bitnami's 7.1 version is still a development version,
and it's Mac version is not available yet. So for this
semester, I'm using XAMPP,
which has both a Windows and a Mac 7.1 version. I have tested
both, and they both work fine. Of course, the stack manager
doesn't look identical, which it did in the Bitnami version.
In fact, the Mac version looks like the old Bitnami version,
and the Windows version looks different. But once you have
everything running, the differences are negligible, and you should be
able to follow along just fine. Another option for Mac users
is MAMP. All installations instructions and links are
available in the Orientation module on Sakai. If you have a
problem installing the software on
your laptops, contact me and I will set up a Virtual Machine for you.
I have a WAMP stack installed on the virtual machine.
Or, you may share with a classmate.
- You can use any text editor to write PHP
programs. I really like Notepad++ for
Windows. But I will be using Sublime Text to demonstrate the
files for this course. It is compatible with both Windows and
Mac, and has some nice packages to support the text
editting for PHP and html. The Orientation module has
instructions for installing those packages.
As of this writing, Sakai will be used for course
homework submissions, and grade postings. While the raw
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
class sessions will be a mixture of lecture and lab. The
proportion of each will vary by the topic being covered. If
have a laptop, you will want to bring it to 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.
For the online section, nearly all of the lectures and labs
and links provided on Sakai. Reading materials, lab
and homeworks are all posted, either on Sakai or linked to on this
be presenting examples and demonstrating code that are not in your text You are
what is presented in class, even if some of the activity may
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. For the online
section, you are responsible for any material in the weekly videos, and
in any posted reading materials and assignments listed, whether or not
they are reviewed in the videos.
Cell Phones: Only
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.
code for your Homework assignments should be submitted to
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.
You will form teams of two or three, to complete a project,
is a major programming assignment in PHP. The project will be
discussed further in class.
Environment: Campus Network, Rights and
As a user of the campus network, you should be aware of your rights and
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
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.
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
- Using or copying an outside person's work on an exam or
assignment in any fashion. "Outside person" includes a person who put
something on a web page. It has become depressingly familiar for me,
most every semester, meting out penalties for using someone else's work
on the web. Do not do it.
- Anything that vaguely resembles something from any
- Work includes outlines, pseudocode, code, and documentation.
- Allowing your own work to be copied or used by an outside
- Submitting as your own work something that has been written
outside person (or web site).
- Using any unauthorized reference on an exam or assignment
- Not acknowledging and describing in writing on an
help you received or gave.
- If you are working on a pair or group project, an "outside
person" only refers to people other than your assigned partner or team.
- Note that cheating goes both ways: both giving and
- Consultation is allowed with the TA (if we are fortunate
to get one) and with me. If you
consult with the TA and/or with me, still make a comment at the top
of your work about the substance and depth of the help.
are two exams.
Tentative dates are:
- The meaning of program or query specifications (not the
solution or the actual solution).
- The tools used to write programs.
- The restrictions of the current programming language syntax.
For the online section, there will be a window during which you can
schedule the exam. The exact days/times will be posted as we
get closer to exam week. However, expect it to be very close
to 10/17 and 12/12. Questions may be randomized so that you
will not have the exact set of questions that another student may have.
Online students may also opt to take the exam with the
Exams will cover material discussed in class, reading material on
web, and assignments. Exams will always be cumulative.
each exam will be posted one or two weeks before the exam.
They may already be posted.
- Midterm: 10/17 for the in-person class.
Options for the online section will be announced as the date
- Final Exam: 12/12 Options for the online section will be
announced as the date gets close.
If you must miss an exam, let me know well in advance. Then if
a good reason we can possibly make other arrangements. 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,
will not be excused.
*No second try*: If you have an
excuse for not
being prepared to
take an exam, but decide to take it anyway, you don't get to change
mind after you see a poor grade. Being sick is not a way to get one
chance than everyone else. I may
you to delay an exam due to
illness, but I will not let you be reexamined due to a poor grade.
Holidays: Students with religious holiday
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
with Disabilities: If you have a documented
and wish to discuss academic accommodations, please contact the
Services for Students with Disabilities Office (773-508-3700 and
SSWD@luc.edu) as soon as possible.
Students with documented disabilities who provide me with
letter from the SSWD office will be fully accommodated as per the terms
of the letter. Students who are allowed to take their exams
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.
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
only your performance in this course in calculating grades, using the
grading rubric posted in this syllabus. If you cannot achieve
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
grade and to keep apprised of the withdrawal
posted by the registrar.
A "very good" project that fulfills the requirements and is
perfectly satisfactory can earn full points for the Project.
That would be 150 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.
1 - 5
Course grades are assigned as follows:
- No extra credit opportunities will be
is neither practical nor fair to the other students.
assignments are worth only half credit. This is true
even if you have a valid reason for submitting the homework
late. Usually, late assginments must
be submitted within one week of the due date for half credit. For some
assignments, you can't submit it late at all. And for some, I do not
allow an entire week for late submission, but only a few days. Please
check Sakai for exact due dates and the last time for a late submission
for a specific assignment. Further,
they can only be submitted late if I have not posted the answers to the
After one week (or the late submission deadline), you will receive zero
points for any unsubmitted
assignments. No exceptions.
The dates below give the sequence and a general idea of the
spent, though we may get ahead or behind this time schedule at
different points, depending on the needs of the class. Be
to keep up with where we really are in class.
Labs (except for Lab 0, which isn't really a lab) are listed
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
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
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
in the applications, and the ER diagrams will reflect the normalized
relations for that model. Do not get overwhelmed with the
(although the book is very clear). Rather, I will walk you
through the important topics. You will have time to catch up
the reading by the midterm.
- Administrative introduction, syllabus
History, Motivation, basic terminology (lecture ppts)
- Intro Overview: integrity, concurrency, SQL
- Supplier-Parts: motivational example
references topics in Chpater 15.1 - 15.4)
Type (example with flaws)
- Use any modeling tool you want, even Word or
BETTER: try ER Assistant (Windows only); Gliffy;
something like Draw.io
(I don't prefer their EER notation, but no biggie); StarUML; ErDraw
(ok EER notation) Dia (Windows or mac);
(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
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
file. For more detailed instructions and links, go to Sakai,
click on "Orientation" in the left menu bar, and then click on the
on your laptops, if you are using a laptop. Configure PHPMyAdmin, (possible issues),
use any WAMP, MAMP or LAMP stack, or you can use a VM on Guacamole if
you request one. But I have
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, TextWrangler
good text editor) on the mac, or Notepad++ on Windows
Assign: Homework #1
Orientation: Available on Sakai. Best to complete
before the course begins.
continue ER Examples: EN 7.21, 7.23, 7.32, 7.33, 7.34
EER Diagrams: Examples
- possibly begin Chapter 9
|Due: Homework #1
Assign: Homework #2
resolve any installation issues on stack
||Due: Homework #2
#1: show me or TA at end of
15.1-15.4, normalization and functional dependencies,
#2: More complex SQL Queries (based on Chapter 5,
some extra examples) user PVFC Big Version DDL, data1, (data2
needed for HW)
|DUE : Homework #3
#2: show me or TA at end of class
- Before completing Lab#3, read Chapter 15.1 - 15.4 to
functional dependecies and normalization.
#3: In-class supervised
Create a schema;
insert values; queries; normalization
- Team work on Homework #4
- So much is covered in the first 4 weeks, that this
your chance to catch up, and pull the concepts and techniques together.
#3: due at the end of class
Hard deadline for Homeworks 1-3
|| Midterm Exam (Review
#5: Use PHP to publish MySQL data on the
will be posted after the lab.
- Assign Lab
5 assignment, using these files.
- Using a remote server (time permitting)
- Review Homework #5
#6: Functions, scope and
variables, using these
- Assign Lab 6 assignment
- Demo: Overview of Web DB application (videos available. probably not during class time)
- Discuss Project (supervised
- Using a remote server (if we didn't get to it last time)
- Start Lab 7. However, the Passwords part of Lab 7 may be deferred until 11/21
Sessions using these
- (Sneak peek at Debug)
of additional topics:
||Demonstration of advanced topics: (these topics may be
spread over two weeks)
#7: Passwords using bcrypt
- Professional approaches to programming in PHP (object orientation, dependency managers)
- Project Checkup and help
#7 (unless otherwise instructed)
Supervised project work (and possibly some topics from the previous
Here are some dates from the LUC
|Fall Semester's Open
Registration ends at Midnight
|Fall Semester Begins
|Late registration and
registration change period begins, late registration fees apply
|Late and change registration
ends, Last day to withdraw without a "W" grade
||Mon (Tues, if Labor day)
|Labor Day weekend begins,
Classes that begin at 4:15 p.m. or later do not meet
|Last day to
withdraw from class(es) with a Bursar credit of 100% - dates maintained
|Labor Day, Classes do not meet
|Classes resume after Labor Day
|Last day to convert from
credit to audit or vice versa, Last day to request or cancel pass/no
|Last day to
withdraw from class(es) with a Bursar credit of 50% - dates maintained
|Last day to
withdraw from class(es) with a Bursar credit of 20% , zero credit
therafter - dates maintained by Bursar
|Application for Degree. Last
day to file, for degrees being awarded at the end of the Spring
Semester and the Summer Term of the following year.
|Last day for students to
submit assignments to change an "I" mark, from the preceding Spring and
Summer Terms, to a letter grade. Faculty may set earlier deadlines.
|Mid-Semester Break: No classes
||Mon & Tues
9 - 10
|Classes resume after
|Early alert process begins on
Mon of week 7 and runs through Fri of week 9
|Last day to withdraw with a
grade of "W," After this date the penalty grade of "WF" is assigned
|Spring Registration Begins
|Thanksgiving Break: No classes
22 - Nov. 25
|Fall Semester classes end
11 - Dec. 16
|*Study Day Wednesdays: No
daytime exams will be held.