This class provides an introduction to the design and implementation of interactive, dynamic web sites. The class will be based on web2py, a Python-based framework for the rapid implementation and deployment of web sites (read why web2py was chosen).
If you need a permission code to enroll, you can request one using this form.
The web2py book. You can also download it in pdf if you wish to read it offline.
For this class, you need a laptop / desktop on which you can install the required tools for the class. Any OS is fine: Linux, Mac OS X, or Windows. Please follow these installation instructions to set up your machine for development.
The project will need to be hosted online somewhere, and pythonanywhere is one of the many places where this can be done easily. More information will be provided during the class.
All announcements will be posted to the Piazza discussion group. It is your responsibility to keep up with announcements and deadlines.
The form for proposing projects will be made available later.
The class grade will be determined 50% by homework assignment and 50% by the project.
Groups and topic. You should start early on in the class to decide with whom to collaborate for the project. Groups of size 1-3 are recommended. Please also start thinking about a topic.
Project presentations. The last day of class, and the day of the final, are dedicated to project presentations. You will be able to choose the day for your presentation.
Project evaluation. The project evaluation is a holistic process, that takes into account factors such as: how ambitious the project is, how clean the code is, how polished the UI is, how good the database model is, how well the project progressed from initial proposal to final project, how much was the feedback received in prior project submissions is addressed in following submissions. Extra credit is given for projects that solve real problems, and that are hosted and made accessible for all to use.
Syllabus
What's different from last year? Every year, I change the class a little bit, trying to improve it. This year, I will initially use bottle.py to develop simple web sites to motivate the main features of web2py. We will still use vue.js as our javascript framework, as I quite like its simplicity.
You should work individually on all homework assignments. You can discuss the assignments with others, and you can ask questions on Piazza showing small portions (a few lines) of code, and you can discuss techniques with your peers. However, the bulk of the work needs to be your own, and wholesale copying of submissions is not allowed, and will incur disciplinary sanctions. Students who host their code on public repositories, facilitating copying by other students, will equally incur sanctions.
You can work in groups on the project.
You are free to borrow code from stack overflow or the web (not from other students), but you must cite the source of your code (the URL where it came from) in all cases. However, you cannot ask anyone to do the homework for you.
Here are some links that you might find useful.
UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by appointment, preferably within the first two weeks of the quarter. At this time, we would also like us to discuss ways we can ensure your full participation in the course. We encourage all students who may benefit from learning more about DRC services to contact DRC by phone at 831-459-2089 or by email at drc@ucsc.edu.