Hello, world.
Welcome to web programming, the most exciting course you are likely to be reading about at this very moment. This course will provide you with the basic techniques necessary to build a dynamic site on the World Wide Web. This first sub-module is intended to provide an overview of the structure of the course, and some of the mechanics. It is, in other worlds, a syllabus.
Contents
- Objectives
- Lecture
- Introduction to the Course
- Communicating With the Instructor
- Texts & Materials
- Course Web Site
- Course Structure
- Evaluation
- Submitting Challenges via Diigo
- Policies
Objectives
- Understand the aims of the course
- Understand the structure of the course and this website
Lecture 1-1
Introduction to the Course
Web Programming is intended to increase your ability to make media that matches your vision. It assumes no substantial background in computing or in programming, but does require a willingness to work hard to come to grips with technical matters. By the end of the semester, you will not be an expert programmer, by any means. However, you will have a foundational understanding of coding HTML and CSS for the web, and creating dynamic, database-backed, programmatic web interfaces. When finished with the course, you should be able to create or modify a simple application on the web, and have the confidence that with enough time you can create far more complex applications.
It is also worth noting what this course is not. This is not a course on web design or usability. That material is treated in far more depth in other courses. This class will not discuss issues of project management or large-scale strategy. Our interest is much smaller and more constrained here: the creation of technically competent, standards-compliant dynamic sites for the World Wide Web. Although we will be making use of visual elements and creating user-interfaces, our treatment of visual design and user experience will be superficial, where it exists at all.
The topic of each of the modules could easily be a semester-long course unto itself. Here, I hope to give you the core concepts and provide you with the sort of survival skills that can help you both grow your own abilities in the future, and interact intelligently with other web development professionals. Throughout, I will ask you to directly apply these skills to produce small, but significant, projects. You may fear this provides you with an incomplete education in these areas, and you would be correct. Rest assured, however, that every person who does web work has gone through this process of muddling through the early stages, of creating the equivalent of the “Hello, World” program in a range of different environments. This course is intended to provide some framework and scaffolding to help you through those early steps, and build the foundation and confidence for you to continue learning afterward.
Communicating with the Instructor
My name is Alex Halavais. I’ve taught in QU’s Interactive Communication program since the autumn of 2006. I have had the honor of meeting many of you in the Introduction to Interactive Communication Seminar.
The best ways of finding me are online. During the semester, I will attempt to have my chat clients up and make myself available whenever I am online. Skype and Google Chat both provide good text, voice, and video ability. In both cases, my user name is “halavais”. My preference is usually text, depending on what else I am doing, but if you prefer voice or video, that’s fine too. You may also email me at webprog@halavais.net.
I will have IRC “office hours” each Monday and Wednesday, from 5 pm to 7 pm. I will be in the #halavais channel on Freenode. For more information, please see IRC Hours.
Finally, I will have regular office hours at the Mt. Carmel campus of Quinnipiac University, Faculty Office Building 23 (41.420281,-72.895204), on Thursdays from 2:45 to 5:45pm EST.
Texts & Materials
There is a textbook recommended for the course, Head First HTML with CSS & XHTML. It has been ordered from the bookstore or can be purchased online or at many large bookstores. Do not be daunted by the size of the book—you will find that the reading is very quick, and that we will not dwell on many of the details in that book. In fact, we won’t be working with it very much beyond the first two modules, though you will find it a useful reference during the rest of the course, and after the course is through.
A number of free online resources will be pointed out as we move through the modules. You will also find that any good bookstore will contain a good set of titles relating to the topics we are covering in the course, and I encourage you to avail yourself of those resources. However, it is important–and this is true of bookstores, and even more true for libraries–that you make sure the reference is recent. A book that is providing information about HTML that is a few years out of date can easily lead you away from current practices. As noted in the introductory lecture, we are focusing on doing things in the way that current standard practice dictates, and not everyone does things that way.
There are no particular hardware requirements for the course, except for a computer with a reasonably high-speed connection to the web. We will be making use of a handful of software applications, but these are generally free of charge, and will work across the most popular platforms (Linux, Max, Windows). Most of the video examples I will be giving will be in Windows Vista, but we will be working largely on creating work for the most common form of web server (LAMP).
You will be asked to set up web space with a web server. While one web host will be recommended, there are a number that meet our requirements (namely, the availability of PHP and MySQL, and the ability to login to a shell account). The recommended site charges by traffic, and should result in very reasonable hosting charges (possibly as little as none at all).
Course Web Site
The course materials are all available at http://webprog.halavais.net. If you are more comfortable with the Quinnipiac Blackboard site, you will find that this information is either copied there, or windowed in frames for more dynamic content.
Course Structure
The course is divided into seven modules. Each module is a bit like a mini-course, consisting of a set of sub-modules, each with it’s own learning objectives, resources, assignments (or “challenges” as they are called here), and lectures. You are welcome to do as many or as few of these assignments as you like, and may engage as many or as few of the resources as you find useful. It may be thought of as a bit like a Chinese take-out menu. Some of the challenges are worth only a few points, and some are worth more because they are more difficult to accomplish. Of course, in any course you have the ability to choose how much time you are willing to invest, but here it is explicit.
Schedule
The schedule for the course depends both on which course you are enrolled in (if any), and your own preferences. If you are enrolled in the 7-week course, you need to complete at least one module each week, and if you are enrolled in the 14-week course, you need to complete at least one module every two weeks. In either case, you may go through the material more quickly if you so choose. I suppose if you were extremely ambitious, you could complete the entire course in one week, if you were to do away with bothersome distractions like sleeping or bathing.
The driver for this schedule is the deadlines on the Challenges page. Late challenges (no matter why they are late) incur penalties, losing a point each day past “fresh,” ultimately falling to zero. There is also a hard deadline for each course, after which I must submit a final grade in the course.
Evaluation
For each unit, your grade (for the most part) is determined by the number of points you accumulate. Each challenge has a total number of points associated with it. If you successfully complete the challenge in all regards, you get the total number of points for that challenge. If you do not, you do not receive any points. However, you may attempt to complete the challenges as many times as you like. In other words, we are seeking mastery of a core set of skills. Either you are capable of accomplishing these skills satisfactorily or you are not.
Grades for each module are awarded as follows:
- A- 100 or more points
- B+ 90 to 99
- B 80 to 89
- B- 70 to 79
- C+ 60 to 69
- C 50 to 59
- C- 40 to 49
- D+ 30 to 39
- D 20 to 29
- F Less than 20
In order to receive the maximum number of points, the challenge must be completed by the first listed deadline for your course. Note that all deadlines are summarized on the Challenges page.
As noted, your grade is determined by completion of these challenges, for the most part. However, the maximum number of points can only get you to the A- level. In order to receive an A, at least some of the challenges must demonstrate a degree of uniqueness, creativity, or originality. There is room within many of the challenges to express your own point of view, your creativity, and your vision—make good use of that room. This “creativity bonus” is only available to those who manage to get to the 100 point level, and will be determined at the end of the semester for those who have maintained an A- average.
Submitting Challenges via Diigo
This class is, by design, highly distributed. Because people will be finding and creating work in a wide range of places, we will use the collaborative bookmarking site called Diigo to share our work with one another. You will need to set up an account within the first few days of starting the course. In fact, setting up a Diigo account, joining the group, and posting your first bookmark, you will find, is one of the challenges in the next sub-module.
Diigo allows you to bookmark a particular URL using tags. Any bookmark you make during the semester relating to the course should be added to our group. In addition, each challenge has a particular tag associated with it (for example: “webprog-1-1-1″). You may add additional tags, as you like, but each bookmark should have, at a minimum, the class tag and the tag for the assignment.
Once a tag is submitted, I will take a look at what you have done and make sure that it meets the requirement. It will be added to the Completed page, at that point, with the associated number of points. If it doesn’t meet the requirement, I will provide a note indicating where it needs to be improved in order to meet the requirements of the challenge. There is as little ambiguity as possible in the challenges, and you should be able to tell by carefully reading the challenge whether your work is complete.
Policies
Outside help. I encourage you to make use of my knowledge and help, and that of your colleagues in the program or elsewhere. If someone has been particularly helpful, I hope you will acknowledge this in some way (e.g., on the assignment or in the text of the bookmark). Having someone else do your work, whether for pay or for charity, or otherwise submitting work you didn’t do, is wrong. You cheat yourself when you do this, especially since later work in the course builds on earlier understanding. Moreover, you violate the student code if you are a student at Quinnipiac.
You are likely to find it not only useful, but necessary, to use others’ work. There are many books and websites that are “cookbooks,” solving common programming or scripting issues. There are libraries and modules that can be (and should be!) applied to overcome challenges. In doing so, you must adhere to the licenses for that code, and you should provide some form of acknowledgment when it is not clear that the work is your own. A simple comment in the code indicating where you found a particular snippet is enough.
You are likely to find a number of solutions to some of the challenges already out there. Like a math class, there are many subtly different ways to solve the same problem. I encourage you to come up with your own original solution, and to inject your own creativity in that solution.
Generally, you cannot submit work for this class for credit in other classes without the explicit permission of the instructors in both classes. It may be that some of the challenges in this class can be used as components in another class, but you need to secure the permission of both instructors before submitting it for credit in the second class.
You own all of your creative efforts in this course and in all your courses at Quinnipiac. If you put together tutorials or guides, I urge you to license these in such a way that they can be reused by others most effectively.
As noted above, late work incurs a penalty of one point for each 24-hour period beyond the deadline. The exception is the hard deadline for each QU course, indicated on the Challenges page. Generally, “Incomplete” grades are not available to students except in the most extreme of cases.