Syllabus
CS 122B - Projects in Databases and Web Applications
Tu/Th 9:30-10:50 AM in HH 178.
Staff | Email (use Ed first) | Office Hours | |
Instructor |
chenli AT ics DOT uci DOT edu |
Tuesdays: 11 am - noon, DBH 2086 |
|
Teaching Assistant |
Juncheng Fang | junchf1 AT uci DOT edu |
Fridays: 11 am - noon, ICS1 458A |
Teaching Assistant | Ali Risheh | arisheh AT uci DOT edu |
Mondays 3 pm - 4 pm, |
Reader | Alyssa Lauron Reyes | alreyes3 AT uci DOT edu | |
Reader | Lara Sabha | sabhal AT uci DOT edu | |
Reader | Aditya Dev Singh | adityads AT uci DOT edu | |
Reader | Qizhi Tian | qizhit AT uci DOT edu | |
Reader | Jun Xia | xiaj8 AT uci DOT edu |
Course Overview
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:
- It introduces students to modern data management techniques, including database connectivity, Web application development, extending database functions, database administration, and XML.
- It teaches students how to use these technologies to build real-world applications. The course builds on CS122A, which introduces students to classical relational databases and SQL programming.
Lectures
Projects
Project | Tasks | Days | Deadline | Weight |
1 | Project 1: MySQL, JDBC, Tomcat, AWS, Start Fabflix | 14 | Sunday Jan 19th, 11:59pm | 17% |
2 | Project 2: Developing Fabflix Website | 14 | Sunday Feb 2nd, 11:59pm | 17% |
3 | Project 3: reCAPTCHA, HTTPS, PreparedStatement, Stored Procedure, XML Parsing | 14 | Sunday Feb 16th, 11:59pm | 17% |
4 | Project 4: Full-Text Search, Autocomplete, Fuzzy Search, Scaling Fabflix | 14 | Sunday Mar 2nd, 11:59pm | 17% |
5 | Project 5: Docker and Kubernetes | 14 | Sunday Mar 16th, 11:59pm | 17% |
Note: Remember to update your website's URL in this spreadsheet Links to an external site. when you finish each project or if your AWS instance's public IP is changed. We need to access your website to grade it.
Quizzes
- We will do a quiz in-person through Canvas Quiz.
Quiz | Date | Weight |
1 | Jan. 28, Tuesday | 5% |
2 | Feb. 20, Thursday | 5% |
3 | March 13, Thursday | 5% |
Online Discussion
We are using Ed for course discussion.
- Please use Ed properly. It's a place for students to exchange ideas. Don't post easy or random questions without much thinking.
- To encourage students to participate in Ed discussions and provide high-quality answers actively, we will select 3 students with the best Ed performance. These students will get 2% extra credit in the overall scores.
Use Ed to ask questions. Make posts public as much as you can so that the answers can benefit the whole class. Please do NOT email the staff members unless it's confidential and sensitive.
Use Ed Instead of Email
Due to the large class size and many staff members, please only unnecessary email communication to the staff if your question is personal and confidential. Most questions can be asked on Ed. Make it public if you think it can benefit the entire class. If you want to avoid the class seeing it, make it private and visible to all the instructors so that the staff members can see it and give consistent answers.
Grade Book
Your grades will be returned through GradeScope (for regrades) and finally imported into Canvas.
Using Cloud Services
The course will heavily use cloud services (Amazon AWS and Google Cloud Platform). 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. We will provide more instructions about using their services to deploy your projects. We will also use Google Cloud Platform (GCP). Please check Google Cloud Free Trial Links to an external site..
Grading Breakdown
Projects: 85%
Quizzes: 15%
If you disagree with the grading for all the graded projects and exams, you can discuss them with us within one week after they are returned. After that, all the grades will be finalized.
Prerequisites
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 (the 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 and no inhibitions about working in groups and learning from each other. If you are still determining whether you meet the requirements, contact the staff on Ed ASAP to ensure you are ready to take this course.
Working in Teams
- Working together on projects is strongly encouraged. You can form teams of no more than 2 (two) students and submit one project per group making. Work in teams will be graded on a per-team basis.
- Students may leave their existing team in the quarter. But they cannot join any new group after the end of the first week. For each team splitting, the team members should tell the instructor at least two weeks before the corresponding project deadline.
- From the previous quarters, we saw quite a few students who worked alone first but found out the workload was much higher than they initially expected. Thus, please seize the opportunity of the first two weeks to find good teammates to work together.
Project Late Policy
- The official due date for each assignment is listed here on this page; students are expected to turn the work in on or before that date.
- We will offer a 24-hour grace period for each assignment and 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, your real score will be 87-10=77 points. If you commit to the master (main) branch after the deadline, it will be considered using the grace period.
- Late assignments after the grace period will NOT be accepted beyond the grace period, so always aim to be on time! Please don't even ask, as this is what the 24-hour 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 https://conduct.uci.edu/students/academic-integrity/index.php for 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.