CPSC 120
Introduction to Computer Science:
Web Site Programming

   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall 2011.

   Instructor:  David J. Eck  (eck@hws.edu)

   Monday, Wednesday, Friday, 12:20--1:15 AM
       Monday, Wednesday: Lecture in Room Napier 201
       Friday: Lab in Room Gulick 208

About The Course

CPSC 120 is an introductory course in computer science, meant primarily for students who do not plan to major or minor in computer science. (However, it can count towards a major or minor.) Different professors teach different versions of this course. For Fall, 2011, CPSC 120 is an introduction to web site development. You will learn about many of the technologies that are used to create modern web applications. There are a lot of them -- HTML, CSS, JavaScript, AJAX, databases, and server-side programs. Obviously, we will not be able to cover all of these topics in great depth. But by the end of the course, you should know enough to write some reasonably serious web applications, and you should be prepared to go off and learn more on your own as you need it.

One of the topics that is covered in every version of CPSC 120 is basic computer programming. The main programming component of this course will cover JavaScript, a langauge for writing programs that run in your web browser and make web pages active. Towards the end of the course, you will also encounter PHP, a language for programs that run on a web server, and SQL, a language for interfacing with databases. Together, PHP, SQL, and JavaScript can be used to create full-scale web applications.

The textbook for the course is HTML, XHTML, & CSS All-in-one for Dummies, 2nd edition, by Andy Harris (ISBN 978-0-470-53755-8). Like many "Dummies" books, this one is not really for dummies at all. In fact, it does a good job of introducing a wide range of technologies. This book is not really a textbook as such, but it does cover most of what we will do in class (though not in exactly the same order). I will assign readings from the book, and I encourage you to explore the parts of it that we do not cover.

You should also take a look at the web site w3schools.com, which has learning and reference materials for HTML, CSS, and other things that we will cover. I suggest that you bookmark this site.


Computer Labs and Assignments

Every Friday, class will meet in Gulick 208 for a lab. (We might use a few other class periods for lab as well.) You will have a lab worksheet with several exercises for you to work on. In general, you should not expect to complete all the exercises in class. Any exercises that you don't finish in class should be completed as homework. In fact, lab exercises will be the major part of the homework that you do for this course. In general, exercises from one lab will be due before the start of the next lab; however, you might be given more time to complete some of the longer exercises.

In addition to the lab exercises, there will be a few longer, more general assignments. These assignments might ask you to create a web site using a combination of several techniques that you have learned, or they might ask you to research some topic and present your findings on a web page. Some of the assignments might be group assignments; we will discuss that possibility in class.

You will post all of the work that you do for this course on the web. However, to help your classmates avoid the temptation of copying your work, you will post your work after it has been collected.


Web Portfolio

As you work though lab exercises -- and try things on your own -- you will build up a collection of web pages. You will want to assemble at least the more interesting of those pages as a "portfolio" that shows off your work. You should organize your portfolio with a main page that links to all the work that you want to include. But you don't just want a page of links -- you should the techniques that you learn in the course to make a nice presentation of your work.

At the end of the semester, you will recieve an overall grade for your portfolio. As you prepare your web portfolio, you have a chance to improve your work and correct any errors, and your grade will depend in part on the status of all the individual components of the portfolio.

The portfolio must be in final form by the time of the final exam.


Tests, Exam, and Grading

There will be three in-class tests in addition to a final exam. The tests will be given on the following Wednesdays: September 21, October 19, and November 16. The final exam will take place during the officially scheduled exam time for the course, which is Tuesday, December 13, at 1:30 PM.

The final exam will actually be no longer than the other tests and will count for the same number of points in your overall grade for the course.

All tests are cummulative to some extent, since every new topic that we cover will build on previous material. However, each test will be directed mainly towards new material.

Your numerical grade for the course will be determined as follows:

             First Test:            15%
             Second Test:           15%
             Third Test:            15%
             Final Exam:            15%
             Labs and Assignments:  30%
             Final Web Portfolio:   10%

Attendance, Etc.

I assume that you understand the importance of attending class. While I do not take attendance in every class, I expect you to be present unless circumstances make that impossible. Participation in lab is particularly important, and I do take attendance at lab. If you miss a lab without a good reason, you can still turn in a lab report for that lab, but your grade on the lab report will be reduced.

If you miss a test or final exam without an extremely good excuse, you will receive a grade of zero. If you think you have an excuse for missing a test, please discuss it with me, in advance if possible. If I judge that your excuse is reasonable, I will -- depending on the circumstances -- either give you a make-up test, or I will average your other grades so that the missing grade does not count against you. A missed final exam is a much bigger deal; please try to avoid it!

Although it should not need to be said, I expect you to maintain a reasonable level of decorum in class. This means that there is usually no eating or drinking in class. Cell phones are turned off. There is no walking in late or walking in and out of the room during lecture, without a very good reason.


Statement from the CTL

Disability Accommodations: If you are a student with a disability for which you may need accommodations, you should self-identify and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL), and provide documentation of your disability. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/disabilities

Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at silver@hws.edu or x3351.


Office Hours, E-mail, WWW

My office is room 313 in Lansing Hall. My office phone extension is 3398. I am on campus most days, and you are welcome to come in anytime you can find me there. I will announce office hours and post them on my office door and on the course web page as soon as my schedule is determined, but note that your office visits are certainly not restricted to my regular office hours!

My e-mail address is eck@hws.edu. E-mail is good way to communicate with me, since I usually answer messages within a day of receiving them. I expect you to be able to receive email at your official HWS email address.

The home page for this course on the World Wide Web is located at http://math.hws.edu/eck/cs120/index_f11.html. This page will contain a weekly guide to the course and links to lab worksheets.


Tentative Schedule

Here is a tentative schedule of readings for this course. We will try to keep approximately to this schedule, but you should expect some adjustments -- possibly even major adjustments, depending on how things are going.

Note that, even though it is not listed here, we will continue to cover new aspects of HTML and CSS throughout the course, along with the topics listed.

Dates What's happening
Aug. 29 and 31; Sept. 2 Introduction to HTML and CSS.
Lab: Your first web pages.
Sept. 5, 7, and 9 Introduction to JavaScript.
Lab: Your first programming.
Sept. 12, 14, and 16 More HTML tags; more CSS properties and selectors.
Lab: Web pages with links, images, and style.
Sept. 19, 21, and 23 There is a test on Wednesday, September 21.
Review HTML, CSS, and JavaScript for the test.
Lab: Hosting a web site at 000webhost.com
Sept. 26, 28, and 30 Programming with JavaScript and the HTML5 <canvas>.
Lab: Shapes, colors, and mouse-clicks.
Oct. 3, 5, and 7 Control structures: Loops and Branches.
Lab: while loops and if statements in JavaScript.
Oct. 12 and 14 There is no class on Monday, because of Fall Break.
Defining your own commands: Functions.
Lab: JavaScript functions.
Oct. 17, 19, and 21 There is a test on Wednesday, October 19.
Review JavaScript programming for the test.
Lab: Image editing with Gimp.
Oct. 24, 26, and 28 The DOM (Document Object Model).
Lab: Manipulating the DOM with JavaScript.
Oct. 31; Nov. 2 and 4 The JQuery JavaScript library.
Lab: JQuery events and effects.
Nov. 7, 9, and 11 Introduction to AJAX and Web 2.0.
Lab: Using AJAX in JQuery.
Nov. 14, 16, and 18 There is a test on Wednesday, November 16.
Review for the test.
Lab: Intoduction to server-side programming with PHP.
Nov. 21 No class on Wednesday or Friday, because of Thanksgiving break.
On Monday, we will have either a lab or a lecture on PHP.
Nov. 28 and 30; Dec. 2 Web Applications with PHP and MySQL.
Lab: Introduction to MySQL.
Dec. 5, 7, and 9 Winding down the course...
Lab: Finalize your Web Portfolio.
Dec. 13 Final Exam.
Tuesday, December 13, 1:30 PM