Course Outline and Objectives
This
course will expose students to design and implementation of Database
systems and team software development. The course introduces
relational database design, query languages including SQL, theory
behind the design of relational schemas and normal forms, database
application development, and team software development. It introduces Not just SQL (NoSQL) database
systems, types of NoSQL databases, and design of NoSQL databases.
A semester long team project requiring the
design and implementation of a relational database system and full stack development.
As part of the Writing in the Disciplines (WID) requirement, a number
of written reports will be
assigned (in this class and in CS2501) and classroom discussions will be required.
Note: Students taking this course are also
expected to be taking CS2501 to meet the degree requirements.
Learning Outcomes:
Upon completion of this course students should:
- Design and evaluate relational database schemas, apply
normalization techniques.
- Understand formal relational query languages, and understand
and write queries in SQL.
- Experience programming in SQL using commercial relational
database management systems.
- Understand different types of NoSQL databases and experience
application development for NoSQL systems
- Improve technical writing skills, and write technical reports.
- Give oral presentation and demonstration of term projects.
- Build web applications, including both front end and
backend, using database systems to solve real world
problems.
- Work in teams to design, implement, integrate and test a
database application.
Course material and course announcements will be placed at the
following URL: www.seas.gwu.edu/~bhagiweb/cs2541/
Prerequisites and Texts
-
Prerequisites: CSci 1311, 1112, and Co-requisite of
CSci2113
- Primary Text: Notes will be provided and links to free
online resources will be provided.
For those who wish to purchase a
textbook, the following are recommended for Relational Databases
(1)
Database Management Systems*, by Raghu Ramakrishnan, 3rd Edition,
McGraw-Hill, (2) Fundamentals of Database systems, El-Masri and Navathe, 7th edition, Prentice Hall.
*The notes
posted on the web will be sufficient for most of the database topics.
Working in
Teams
In this course, you will work in a team during in-class exercises and
the term project. Lectures and labs will include in-class
activities, some of which will require students to work in teams to cooperatively solve
the assigned problems. Participating in team activities is essential
for learning in this course. Details of roles within a team, team
contracts, and how your role changes in this class will be provided.
Writing Requirements
This is a WID course -- as a result there will be a number of writing
requirements in this course and in CS2501. We will post some resources on this topic. As a
starting point read the resources posted on the lectures webpage. A
copy of the book The Elements of Style, by Willian Strunk and E.B.
White Jr, Longman
Press. An earlier edition is available free on-line.
Course Materials
Grading
There will be many components for the grade: Lab Assignments,
Homeworks, Team assignments, Exams and quizzes, Written reports, Term
project and in-class participation. The tentative breakdown is
provided below:
- Assignments: Homeworks, in-class assignments/quizzes, and class participation:35%
- Exam: 22.5%
- Team based project: 42.5%
You
have one week after the grade is posted to contact the instruction
team. Afterr that your assignment will not be regraded. Details of grading and assessment are provided
here.
Team
based term
Project
There will be a term project. The project will involve working in a
team to design and implement a database System.
Syllabus:
- Course Overview and Introduction to Database Systems.
- Introduction to the Relational Model
- Formal query languages: relational algebra and relational
calculus.
- SQL and programming in SQL (MySQL)
- Theory of relational schema design and normal forms
- ER Model and ER to Relational mapping
- Views, Security in SQL
- Application development using PHP (or other server side tools)
- Team Software Development
- Overview DBMS
- Introduction to NoSQL Database
management systems, and Data Analytics (Data Mining)
- Project Demos
Official Syllabus Document
Lab Section and Teaching
Assistants
You must be registered in the lab section. These will be conducted by the
instructor(s) and TAs
The lab sessions will focus on skills related to database design -
including, but not limited to, PHP, MySQL, and some NoSQL systems. You
are expected, as a CS major, to learn enough web programming and web
design on your own -- this is required for the project.
Lab
Schedule
- Front end dev. tools
- Introduction to PhP
- Introduction to MySQL
- SQL Queries using MySQL
- Team Project discussions and design document 1.
- More SQL: App development with MySQL+PHP+Web Front end
- Team project Phase 1 demos
- Teamwork assessments.
- Introduction to Unstructured Data (JSON) and NoSQL Databases
- Team Project Phase 2 discussions - design document 2.
- Team project final demos
Schedule of Lectures and Lecture
Notes
Homeworks (blackboard)
Link to
Lab Section Materials (github)
Projects and Teams
Academic
Integrity Policy
|