Syllabus and Course Policies
Course Overview
This course is a survey of web technologies that are used to build back-end systems that enable rich web applications. Utilizing technologies such as Python, Flask, Docker, RDBMS/NoSQL databases, and Queues, this class aims to cover the foundational concepts that drive the web today. This class focuses on building APIs that power everything from content management systems to data engineering pipelines that provide insights by processing large amounts of data. The goal of this course is to provide an overview of the technical issues surrounding back-end systems today and to provide a solid and comprehensive perspective of the web’s constantly evolving landscape.
This course is offered as INFO 153B for undergraduate students and INFO 253B for graduate students.
INFO 153B vs INFO 253B
This course is offered as INFO 153B for undergraduate students and INFO 253B for graduate students.
Both INFO 153B and 253B are held in the same lecture room; INFO 153B will require students to take a take-home practical, while INFO 253B will require students to complete a group-based final project and report.
In Fall 2020, INFO 153B did not exist: there was a single INFO 253B class that graduates and undergraduates with permission could take. This COCI submission proposes to make INFO 253B into an INFO 153B/253B class, with the changes documented for the undergraduate INFO 253B class mentioned below:
- INFO 153B will have eight weekly lab assignments due throughout the semester. INFO 253B will have four weekly lab assignments and a final project. Note: INFO 253B students will not be required to attend labs 5-8: the expectation is to use the time for your final projects.
INFO 153B will have an open book Take Home Exam, consisting of a project to complete within seven days during Finals Week. INFO 153B students will not participate in the final project.
If you are interested in learning about front-end systems please check out INFO 253A: Front-End Web Architecture, typically offered in the fall semester.
Class Attendance Expectations
It is expected that everyone attends class in person. This class will be recorded via Zoom, but due to the increased interactive nature of this class, it is important to attend class this semester, and class participation is a significant portion of your grade. There will be in person quizzes delivered only in class, which will be a portion of student's grade.
If there is an medical or personal emergency, or if you are sick, please send the professor a note. If the request is approved, you will not be penalized for not coming to class, and you will be able to take the week's quiz the next week. Recordings for the class will be made available after the end of class.
Textbooks and Class Tools
Course Resources
Instead of textbooks, this class will rely on extensive online video tutorials. We expect the students in the class to watch all class resources before class starts. Class time will be predominately reserved for in-class exercises and interactive learning.
Note: All these online videos/tutorials are either accessible through an O'Reily Subscription (free for Berkeley students) or you will receive a free subscription from the instructor. Please check this link to get your O'Reilly subscription: https://guides.lib.berkeley.edu/c.php?g=530750&p=3630483.
TLDR; Please do not purchase any resources for this class: if you are having trouble accessing the below resources please contact the instructor.
- Fuentes, Jose Salvatierra. REST APIs with Flask and Python in 2024
- Ashaolu, Kay. System Design Course for Junior Engineers
Class Tools
- This website: Primary location for class info, syllabus, schedule, discussions etc..
- bCourses: Assignment/Lab/exam/project info and grades will be delivered here, as well as opportunity to create discussions and get help from both students and instructors
- Github: Where your code submissions will live for all work in the class. You will recieve a link that will create a repository for all work done in the class
Prerequisites
INFO 153B
INFO 253B
- Formal prerequisites are not required for INFO 253B, but students should have familiarity with programming in at least one programming language.
Class Format
Due to student feedback, this COCI submission proposes to change INFO 253B to a 2-hour lecturer once a week and a 1-hour lab once a week, the lab led by a GSI. The ability of a GSI to lead the class will benefit students, providing the GSI the liberty to cover topics specific to the members of their section. The lecture will focus on real-world applications and reviewing best web development practices.
Assignments and Evaluation
Quizzes
- There will be short and simple three question multiple choice quizzes given in class during every lecture. These quizzes are intended to test overall holistic understanding of the material as we go through the course.
Short programming labs
To reinforce concepts introduced in the readings and lectures, students will have small weekly labs focused on using the systems, frameworks, and libraries introduced that week. The lab will be an opportunity to complete these assignments and get support from the GSI.
INFO 253B students will have 4 lab submissions and INFO 153B students will have 8 lab submissions. *
The lab submissions should take the students 1-2 hours to complete. You will have a week to submit your labs.
Lab grade methodology
Grade Mark | Number Grade | Description |
---|---|---|
✓+ | 10/10 | Correct Solution |
✓ | 8.5/10 | Solution isn't exactly right but shows effort |
✓- | 7/10 | Incorrect solution and lacks effort |
- | 0/10 | No submission |
Special Grading Considerations
- For INFO 153B: We will drop the lowest two lab grades
- For INFO 253B: We will drop the lowest lab grade
Long programming assignments
Students will complete two longer assignments that build a cohesive web application using the skills provided in this class.
The two assignments will be longer and are estimated to take 10-12 hours each. Each assignment will have a dedicated grading rubric published.
Special Grading Considerations
If you want to improve your grade, you can resubmit your assignment - the average grade of the two submissions will be the final grade (if it is improved)
Final Project (INFO 253B)
The last half of the class will be devoted to developing a final project. Class members will form teams of 4-5 and build a joint project. The instructor will publish the grading rubric before the start of the project. The instructor/TA will choose group composition based on the class survey to ensure an even distribution of strengths and skills. Lab sessions during this period is highly encouraged to be used for group projects.
Take Home Exam (INFO 153B)
A take home exam will be given to be completed during reading week. It will be designed to take two hours and you'll be given seven days to complete the exam. This will be a project similar but less comlex than a assignment
Grading
Assignment Type | INFO 153B | INFO 253B |
---|---|---|
Quizzes | 10% | 10% |
Labs | 40% | 20% |
Assignments | 30% | 30% |
Final Project | N/A | 40% |
Take Home Exam | 20% | N/A |
Late Work Policy
Late submissions after the extension will see 2% marks deducted each day. Note that 10 minutes late is a day late.
If your situation warrants an exception to the above, please contact the instructor and TA for next steps.