Syllabus
Course Details
- Course Name: Introduction to Full-Stack Development
- Course Number: CS 198-099
- Units: 3
- Faculty Sponsor: Josh Hug
- Class Number: 33300
Course Contact: webdev-decal@lists.berkeley.edu
Time: There are 2 lectures every week. Students are expected to attend both lectures every week. Attendance is mandatory.
- Lecture 1: Tuesday @ 6:30-8 PM PT
- Lecture 2: Thursday @ 6:30-8 PM PT
Location: Physics 4
Course Overview
Course Description
Welcome to CS 198-099! This is Introduction to Full Stack Web Development, presented by Web Development at Berkeley.
In this course we cover the basics of web development. This includes everything from the fundamental frameworks that ground web development, the inner workings of the Internet itself, and many of the frameworks, technologies, and best practices that are used in the industry today.
No prior CS experience is required to participate and succeed in this course, but we do acknowledge that we cover a fairly large amount of material and that makes this course fairly heavy, even for those with prior CS experience.
In the spirit of full-stack development, we cover the three main pillars of modern web development: backend development, frontend development, and design.
Teaching Plan
Every week you will attend 2 lectures, each 1.5 hours. Most lectures will have a short vitamin assignment accompanying them and you will typically have a project due every 3 weeks to a month. Course staff will be holding office hours regularly throughout the week to provide guidance and feedback on the assignments. Towards the end of the semester your work in this class will culminate in a final project with a project group.
Learning goals
By going through this DeCal, you’ll learn
- Full-stack web development
- Software engineering principles
- The basics of the internet and cloud technologies
- How to create large software projects from scratch
- How to navigate and use popular web design software
- How to work in a team of cross-functional engineers and much more!
Student Support
Office Hours
We hope you take advantage of the office hours we have scheduled this term, and we will support both in-person and remote office hours. When coming to office hours for homework or project help, there are some policies you'll need to abide by.
Please do not expect TAs to debug your code. This is not a good use of their time, and part of the goal of this course is to turn you into a great tester and debugger. However, the TAs can help you find bugs and offer you the proper approach to resolving them.
Discussion Forum
All communication this semester will be centralized on Ed. Please ask all questions there, and feel free to make private posts if you need to communicate with course staff directly.
Ed Etiquette
- Search before posting. Your question may have already been answered by us or other students in the past. Reading other students' posts will let you refine your question, and gives us more time to answer new questions.
- Link and screenshot any external resources you are referring to (exams, discussion, StackOverflow, lecture slides + webcast time/video). It is more convenient for us and other students to look at the screenshot and follow the link if we need more context on the question. It will also substantially decrease the time it takes for us to answer your question.
- Try to avoid open-ended or vague questions such as: "How does JavaScript work?" or "How come the solution to a discussion problem is this?". If you walk us through your thoughts and reference specific lines that you find confusing, we can better address the problem you are facing. Being specific helps us uncover any misunderstandings that you may have.
- Post questions about assignments as public follow-ups on the corresponding assignment post. For example, post your questions about Homework 1 on the Homework 1 post. If your question is too detailed or revealing to fit as a follow-up, your question would be better answered during office hours.
- Only post in the "Student Answer" box if you are fairly certain about your answer. Do not post follow-up questions or +1 in the student answer. Posting in the "Student Answer" section marks a post as resolved and will likely be missed. Use follow-ups to follow-up while leaving the overall post unresolved.
- No follow-up +1's. Instead, you should use the Helpful! button on a question/follow-up. We do not allow +1's because they clutter the post and make it more difficult to get to the unresolved follow-ups.
- If you want a reply on a follow-up, mark it as unresolved, or we may not see it.
- If you reply to a follow-up answering the question at hand, mark the follow-up as resolved, since it no longer requires attention.
Grading
This DeCal is graded on a P/NP bases. Your final grade will be based primarily upon completion of work in the class. A "pass" is a 70% (700 points) in the class, attendance of 15/20 lectures this semester, and completion of the final project. If one or more of these is not met, you are at risk for an NP in this class. Gradescope will be used to host the grades.
Item | Points |
---|---|
Lecture Attendance | 120 (6 per) |
Vitamins | 280 (35 per) |
Project 1 | 150 |
Project 2 | 150 |
Final Project | 300 |
Lecture pads your grade since it is mandatory.
Attendance
Attendance at lectures is mandatory. You are required to go to at least 15/20 lectures this semester to receive a P in this course. This allows 5 absences to be taken for any reason. Please don't email us about excusing these absences. If you exceed this limit, it may result in an NP or in exceptional circumstances, an incomplete. Our curriculum moves fairly quickly in order to cover everything you need in order to become a full-fledged developer, so it's imperative that you stay up-to-date with each lesson. If you do need an excused absence after exhausting your 5, please either private message us on Ed or email us at the email at the top of this syllabus to do so.
Vitamins
Vitamins are short bite-sized assignments designed let you practice the lecture material. We encourage you to work on the homework problems in small groups, but each student is required to turn in a solution that they have written themselves.
Vitamins for a particular lecture are usually assigned the Monday after that lecture week, and are then due the next Monday. This gives you a week to do that vitamin, and you should know everything needed to complete that vitamin since it covers content taught in the previous week. Vitamins will be graded on completion, but remember: the more you put into this class, the more you get out of it.
Late vitamins not covered by amnesty will get 0 credit. Use extensions!
Projects
Projects are designed to give you heavy-duty experience with the application of course content. These projects are designed to be super open-ended, so that they are useful projects to include on a resume after this class.
In our opinion the projects are by far the most useful part of this class. Since they are so open-ended, it really gives you a place to channel your creativity and 'force' you to start on cool side projects that we hope can help with recruiting after this class. But please note that since they are so open-ended, the benefit that you get out of it will be as much as the effort you put into it.
The final project is the best example of this in our course. We are very proud that it is basically a blank canvas for you to build anything using all the concepts we have taught you during this course, and during our final week presentations, we have seen some remarkable ideas and executions that could easily be fully fledged websites in their own right. Additionally, you are mandated to work in groups of 4-6, which we hope gives everyone real-world experience in software development teams, developing skills that can be easily transferred to industry opportunities after this course. This is mainly why we make the participation and successful completion of this final project a requirement for passing this course. We are very excited to see what everyone builds this semester!
Grading for these projects will be very holistic with a very light requirement outline, mainly through a checkoff demo through office hours. Please refer to each individual project spec for more information.
Late projects not covered by amnesty will get 0 credit. Use extensions!
Collaboration
Collaboration is allowed and encouraged for all assignments and projects unless explicitly specified otherwise. That being said, please try to make sure you understand what we're trying to teach you through the assignments and the projects! One of the biggest pitfalls of collaboration is the possibility of you having to lean on somebody to essentially do your homework for you, not learning anything in the process.
UC Berkeley Code of Ethics
"Neither this school, its students, nor its professional associations will condone cheating, lying, or any other misrepresentations. Moreover, anyone who willingly conceals these activities will be considered accomplices and equally culpable. Violations of the code of ethics will be referred to the University of California, Berkeley's Center for Student Conduct and Community Standards.”
Extensions
This semester we are trying out a new, more lax, extension policy. Use the extension form at the top of the screen to submit an extension for any assignment. Any extension up to 5 days will be approved, no questions asked. For longer extensions, please DO NOT USE THE FORM, but email us instead to explain your extenuating circumstances, and we'll send you back an email within 2-3 days to let you know if your extension request has been approved. These extensions will not be reflected on Gradescope on your end unfortunately, but we will keep track and consider them when calculating grades.
Additionally, we are offering an amnesty policy, which allows every student to submit up to 200 points of assignments by the very last day in the class (12/4/2024), again no questions asked. More information on this policy will be sent out nearing that date, with a form for you to put in the requested assignments that you would like to apply amnesty towards. Note that this allows you to submit an entire non-final project + 1 vitamin or 5 vitamins by this deadline.
Due to the group nature of the final project, we will not be allowing extensions on the final project or for any checkpoints of the final project.
If you have any questions about this, please don't hesitate to reach out to us either on Ed or through email. We're here to support you!
Accommodations
Private message on Ed or email our facilitators for any extenuating circumstances that can't be resolved with extensions. Don't be afraid to reach out! We're here to help you succeed in our course. The sooner we are made aware, the more options we have available to us to help.
Inclusion
If something is said in class (by anyone) that makes you feel uncomfortable, disrespected, or excluded by a staff member or fellow student, please report the incident to our instructors, head TA, or another member of staff you're comfortable with so that we may address the issue to create a more supportive and inclusive learning environment. You may also contact the department's Faculty Equity Advisors (CS) Prof. Josh Hug hug@cs.berkeley.edu or (EE) Prof. Robert Pilawa-Podgurski pilawa@berkeley.edu, the Campus Ombuds Office or the ASUC Student Advocate's Office (SAO). You may also use the department's Student Climate and Incident Reporting Form.
Campus Resources
Your mental health is more important than this course. Seriously. If you're feeling overwhelmed or not in control, talk to us and we'll try to help. Counselling and Psychological Services (CAPS) has multiple free, confidential services:
Also check out UHS's mental health resources
Support is also available for survivors of sexual violence or harassment. While course staff are mandatory reporters for such incidents, we do have free, confidential services available on campus: