Welcome to Building Complex Web Sites (SI539)
This course covers the topics of building today's interactive Web 2.0 sites. Topics covered include:
- Basic HTML
- Using CSS to Design a web site
- The Python Programming Language
- The Google Application Engine environment
- Database Design and Modelling
About the Course
The course is taught in a lecture and lab format. There are weekly programming assignments which form the backbone of the course. These assignments start quite simple and straightforward and build to the point where students are building and modifying very complex database backed web sites.
The course is designed for students with no programming experience at all. The material is covered slowly and thoroughly with each important concept reinforced in lecture, lab, podcast, and assignment.
Experience in the course indicates that students who have no prior experience can do quite well in the course and find it very enjoyable. Students who find SI539 challenging tend to be students that are taking a heavy course load and are trying to fit the SI539 work in a few hours per week. Since Python and Application Engine are a somewhat unique programming environment - prior experience is not automatically a great advantage. All students must invest time to learn the material in the course.
The course is roughly broken into thirds:
- Basic HTML and CSS
- Web Site Server Programming with Python, Django, and App Engine
- Advanced topics including Ajax, Data Modeling, Testing, and Page Layout
Frequently Asked Questions
This section will be updated as questions and issues come up and you ask more questions :).
- What computer skills are required for the course?
The ability to use basic software, edit files, and install programs on your computer is all that is needed. The pace of the course is designed for students with no prior programming experience. - Will I have to buy any software?
No - everything you will use is free and you can keep the software and use it as long as you would like. - Should I have a laptop?
You should have a laptop and bring it to the discussion section. Particularly when there is an assignment that requires you to do something technical. If you do not have a laptop, you will need to watch any demonstrations carefully, taking notes, and then redoing the demonstrations on your own or a lab computer. This is generally *not fun* because you are doing the work without anyone to ask for help when some weird dialog box popps up. - The course is full - How can I get into the course?
We have expanded the course in the past - to be notified of when the course size is expanded come to the first lecture period and put your name on a list. Once we get a sense of the number of insterested students, we can make some decisions about expanding the course. We do not expand the course before the first day of the course.
Open Educational Resources
To the extent possible the course materials will be published in an open way to that people who are not registered for the course can follow the course as it progresses and use the materials to independently learn the material.
Feel free to view the Public Course Resources or the public Course Web Site.