Syllabus
Tu/Th 9:30-10:50 AM in DBH 1100.
Staff | Email (use Ed first) | Office Hours | |
Instructor |
chenli@ics.uci.edu |
Tuesdays: 11 am - noon, Thursdays 2 - 3 pm, DBH 2086 |
|
Teaching Assistant |
Yinan Zhou | yinanz17@uci.edu |
Wednesday: 10 - 11 am, Thursdays: 11 - 12 am, ICS 3rd floor Openlab 364b |
Teaching Assistant | Aditya Karad | ankarad@uci.edu |
Mondays: 12-1pm, Fridays: 12 - 1pm, ICS 3rd floor Openlab 364b |
Reader | Justin K. Huang | huangjk2@uci.edu | |
Reader | Robert Justin Lauv | rlauv@uci.edu | |
Reader | Jayden Le | khangtl3@uci.edu | |
Reader | Michelle Lin | mblin1@uci.edu | |
Reader | Kashyap Patel | kashypp1@uci.edu | |
Reader | David Yoon | seongjiy@uci.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.
In this offering for the first time we will include a new task related to Docker and Kubernetes given the recent trend of micro services and containerization.
Lectures
Projects
Project | Tasks | Days | Deadline | Weight |
1 | Project 1: Setup AWS, MySQL, JDBC, Tomcat, Start Fabflix | 14 | Sunday April 14th, 11:59pm | 17% |
2 | Project 2: Developing Fabflix Website | 14 | Sunday April 28th, 11:59pm | 17% |
3 | Project 3: reCAPTCHA, HTTPS, PreparedStatement, Stored Procedure, XML Parsing | 14 | Sunday May 12th, 11:59pm | 17% |
4 | Project 4: Full-Text Search, Autocomplete, Fuzzy Search, Scaling Fabflix | 14 | Sunday May 26th, 11:59pm | 17% |
5 | Project 5: Docker, Kubernetes, and JMeter | 14 | Sunday June 9th, 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 | 4/23/24 | 5% |
2 | 5/14/24 | 5% |
3 | 6/6/24 | 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 4 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.
A UCI Research Group, Mondego, led by Professor Crista Videira Lopes has developed a ChatGPT-like AI Tutor that is custom-trained for CS122B. It is now available at https://cs122b.clotho.ics.uci.edu/. You can refer to this Google doc Links to an external site. for detailed instructions.
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. You are welcome to participate in the AWS Educate program, which can provide $100 AWS credits per student. $100 credits are no longer available. We will provide more instructions about using their services to deploy your projects. We will also use Google Cloud Platform (GCP), which provides $300 free trial credits at Google Cloud Free Trial Links to an external site..
Grading Breakdown
Projects: 85%
Quizzes: 15%
Participation in EEE Class Evaluation: 1%
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.