Version 1 (modified by chenli, 2 years ago) (diff)


CS122B Winter 2017: Projects in Databases and Web Applications

Time: T/Th 12:30 pm – 1:50 pm (Check UCI Calendar for holiday information)
Location: ICS 174.

  • Instructor: Chen Li chenli AT
    Office hours: Tuesdays/Thursdays, 2:00 pm - 3:00 pm, DBH 2092
  • TA: Jamshid Esmaelnezhad jesmaeln AT
    Office hours: Mondays, 3:00 pm - 4:00 pm, DBH 2066
    Wednesdays, 2:00 pm - 3:00 pm, DBH 2066
  • Reader: Akshay Jain, akshaj1 AT

Online Discussion

Projects (Subject to change)

  • Group Signup Sheet
  • Project 1: MySQL creation, JDBC, Tomcat, AWS. Due: 1/13/2016, Wednesday, 11:45 pm. Submit on EEE.
  • Project 2: Developing Fablix Web site. Due: 2/1/2016, Monday, 11:45 pm. Submit on EEE. An earlier demo
  • Project 3: Securing and Tuning Fabflix. Due: 2/15/2016, Monday, 11:45 pm. Submit on EEE.
  • Project 4: XML Parsing, Ajax, and FULLTEXT Search. Due: Feb. 29, 2016, Monday, 11:45 pm. Submit on EEE
  • Project 5: Scaling Fabfix and supporting Android. Due: March 13, 2016, Sunday, 11:45 pm. Submit on EEE


No. Date Notes
01 01/05/16, Tu Introduction, Project 1
02 01/07/16, Th Setup AWS, Sample JDBC Programs
03 01/12/16, Tu ODBC
04 01/14/16, Th MySQL Logging, Project 2, TomcatTest Example, Form Example
05 01/19/16, Tu Tomcat Logging, Servlet Session Example, "Cookie Idea" in Movie Memento
06 01/21/16, Th GET/POST methods, Shopping cart (client vs server), Caching, Pagination, Connection Pooling
07 01/26/16, Tu "Browsing", "Searching", Open a Window Using Javascript, Javascript debugging, JSP, Web Application Architectures
08 01/28/16, Th CGI, FastCGI, ASP, Quiz 1
09 02/01/16, Tu Project 3, reCAPTCHA, HTTPS
10 02/04/16, Th Jmeter
11 02/09/16, Tu Extending DB Functionalities, UDF Example in Linux
12 02/11/16, Th Performance tuning, XML Overview
13 02/16/16, Tu XML Parsing, Sample Employee XML File, SAX Parser,, DOM Parser
14 02/18/16, Th Ajax Example, Ajax Task of Project 4, Quiz 2
15 02/23/16, Tu MySQL Full-Text Search (1, 2), Inverted Index
16 02/25/16, Th AutoCommit, Batch Insert, Load data file, MySQL Replication
17 03/01/16, Tu Load balancing in Project 5
18 03/03/16, Th Android project in Project 5
19 03/08/16, Tu MySQL Replication in Project 5, Load Balancing on AWS, Android Activity Lifecycle, onSaveInstanceState()
20 03/10/16, Th NoSQL/Hadoop, 3rd quiz, Beyond CS122B

Course Information


This course exposes students to advanced programming concepts and provides students with a greater focus on using DBMS techniques to build Web-based applications. It is intended for two purposes: (1) It introduces students to the modern data management techniques including database connectivity, Web application development, extending database functions, database administration, and XML. (2) It teaches students how to use these technologies to build real-world applications. The course builds on CS122A, which introduces students to the classical relational databases and SQL programming. The course was recently renamed from "Projects in Database Management" to "Projects in Databases and Web Applications" to better reflect its content and goals.

More Focus on Cloud Services

For the first time, we will heavily use Amazon AWS services in the course. You are expected to launch instances on AWS to deploy some of the projects you are developing. AWS provides free-tier 64-bit Ubuntu instances! In addition, you are welcome to participate in the AWS Educate program, which can provide $100 AWS credits per student. (I believe UCI is a member institution.) We will provide more instructions about how to use their services to deploy your projects.


You should have taken CS122A or an equivalent course. In addition, you should have a reasonable understanding of core computer science concepts, good familiarity with relational databases (equivalent of CS122A), good programming skills in Java, skills to learn other programming languages, and familiarity with basic undergraduate-level operating system concepts. Above all, you need to have a positive attitude towards learning, no inhibitions about working in groups and learning from each other. If you are not sure whether you meet requirements, do talk to the instructor after the first lecture to make sure you are ready to take this course.

Grading Breakdown

Projects: 88%
In-class Quizzes: 11%
Participation in EEE Class Evaluation: 1%

For all the graded projects and exams, if you disagree with the grading, you can discuss with us within two weeks after they are returned. After that, all the grades will be finalized.

For each project demo, we assume each group can provide their own computing environment (either a laptop or a remote desktop) to show the demo. If you cannot provide such an environment, please let us know before the demo, so that we can find a solution.


Many online tutorials.

Working in Groups

Working together on projects is strongly encouraged. You can form groups of no more than 3 (three) students and submit one homework solution per group making sure that the names of all the group members appear on the first page. Work in groups will be graded on a per group basis.

Students may leave their existing group in the quarter. But they cannot join any new group after the end of the second week. For each group splitting, the group members should tell the instructor at least two weeks before the corresponding project/homework deadline.

At the end of the quarter, I will announce the top 3 students based on their overall performance in the class (projects and quizzes). I will host a lunch with these students :-)

Project Late Policy

  • The official due date for each assignment is listed here on the wiki, and it is expected that students will turn the work in on or before that date.
  • We will offer a 24-hour "grace period" for each assignment, and will therefore accept submissions turned in within 24 hours of the due date, with a 10-point penalty. It's 10 points, not 10 percent. For example, if your late project got 87 points, then your real score will be 87-10=77 points. Notice that EEE will only keep the latest submission. If so you submit or resubmit the project after the deadline, it will be considered as a late submission.
  • Late assignments will NOT be accepted beyond the grace period, so do always aim to be on time! Please don't even ask, as this is what the 1-day grace period is intended for.

Policy on Academic Honesty

All students will be expected to adhere to the UCI and ICS Academic Honesty policies (see and to read their details). Any student found to be involved in cheating or aiding others in doing so will be academically prosecuted to the maximum extent possible: that means you will fail this course. Just say no to cheating!

In case you reuse another party's source code for certain generic tasks (e.g., JDBC access) make sure you explicitly comment on its origin in your source code.

Attachments (14)