CPSC 120
Introduction to Computer Science:
Web Site Programming

   Department of Mathematics and Computer Science
   Hobart and William Smith Colleges

   Fall 2012.

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

   Monday, Wednesday, Friday, 3:00 -- 3:55 PM
       Monday, Wednesday: Lecture in Room Gulick 206A
       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, as long as it is the first computer science course that you take.) Different professors teach different versions of this course. For Fall, 2012, 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, and JQuery, for starters. 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 create some reasonably serious web sites, 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 programming component of this course will cover JavaScript, a langauge for writing programs that run in your web browser and make web pages active.

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.


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 apply 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 19, October 17, and November 14. The final exam will take place during the officially scheduled exam time for the course, which is Thursday, December 13, at 1:30 PM. The final exam will be in our regular classroom. Remember that final exams cannot rescheduled; be sure to make your travel plans accordingly!

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 work for that lab, but your grade on the lab 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.


Teaching Assistants

Teaching assistants will be available 7:00 to 10:00 PM, Sunday through Thursday, in the Math/CS Department's computer lab, Lansing 310. The TA's are students who have taken several computer science courses and are probably majoring in computer science. Only some of the TAs know about web site development; those TA's will be there on Sunday, Monday, and Thursday. However, any TA can help you with general questions about computers and programming.

Note that TA's are under instruction never to write code for you. There are there to help you to use the computers, think about your assignments, and find errors in the code that you write. They are not there to do your work for you.


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. My office hours will be posted on my office door and on the course web page. Here are the office hours that I have planned (but they are still subject to change, depending on how my final schedule works out):

     Monday,      11:00--12:00 and 1:30--2:30    
     Tuesday,     2:00--3:00
     Wednesday,   11:00--12:00 and 1:30--2:30 
     Friday,      2:00--2:50

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_f12. This page will contain a weekly guide to the course and links to lab worksheets.


Tentative Schedule

Here is a very tentative schedule 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.

Dates What's happening
Aug. 27, 29, and 31 Introduction to HTML and CSS.
Lab: Your first web pages.
Sept. 3, 5, and 7 Introduction to JavaScript.
Lab: Your first programming; the Firefox Web Console.
Sept. 10, 12, and 14 HTML tables; div and span; more CSS properties and selectors.
Lab: Web pages with tables and lots more style.
Sept. 17, 19, and 21 There is a test on Wednesday, September 19.
Review HTML, CSS, and JavaScript for the test.
Lab: Using Aptana Studio; a multi-page web site.
Sept. 24, 26, and 28 JavaScript functions and HTML buttons.
Lab: Adding user control to a page with buttons.
Oct. 1, 3, and 5 HTML canvas graphics; the if statement in JavaScript.
Lab: Drawing a picture with canvas graphics.
Oct. 10 and 12 There is no class on Monday, because of Fall Break.
JavaScript loops and timers.
Lab: Animated graphics.
Oct. 15, 17, and 19 There is a test on Wednesday, October 17.
Review JavaScript programming for the test.
Lab: Image editing with Gimp.
Oct. 22, 24, and 26 CSS positioning.
Lab: Animating a page with JQuery.
Oct. 29 and 31; Nov. 2 Mouse and keyboard events with JQuery.
Lab: Programming events.
Nov. 5, 7, and 9 HTML forms and input elements.
Lab: Using input elements with JQuery.
Nov. 12, 14, and 16 There is a test on Wednesday, November 14.
Review for the test.
Lab: Using forms to communicate with the server.
Nov. 19 No class on Wednesday or Friday, because of Thanksgiving break.
What's on the server??
Lab: none.
Nov. 26, 28 and 30 AJAX and modern web applications.
Lab: Using AJAX with JQuery.
Dec. 3, 5, and 7 Winding down the course; what we did and didn't cover.
Lab: Finalize your Web Portfolio.
Dec. 13 Final Exam.
Thursday, December 13, 1:30 PM