Internet Programming Syllabus

Instructor: Dr. John F. Santore
Phone: 508-531-2226
Office: Hart 220

Instructor Web Page:
Course Web Page:

Office Hours:

Mon: 5-6pm
Tues: 11-noon
Wednesday 10-11am
Thursday: noon-1pm

I also will take appointments if you cannot make my other office hours, however, I generally have meetings and work prepared for a day or two ahead so plan on about 48 hours from the time I get your request to us being able to meet.

Course Description:

This course will be a hands on introduction to programming for the internet. We will study the client server model, web programming and security issues. We will use a variety of languages for the projects including java, python and php. Students will implement a client server program, a web spider, a web-based application and partake in a security exercize in a controlled network environment.


Foundations of Python Network Programming by John Goerzen. ISBN-13: 978-1590593714 Note to class)
PHP Solutions: Dynamic Web Design Made Easy by David Powers. ISBN-13: 978-1590597316
The Web Application Hacker's Handbook: Discovering and Exploiting Security Flaws by Dafydd Stuttard, Marcus Pinto ISBN-13: 978-0470170779

Class Requirements and grading:

This class will have a heavy hands on project requirement, both programming projects and a slightly different security project. Therefore a significant part of the class grade will be from these projects.

Project related work: 50%
Exams (one midterm and one final): 40%

Students with special needs:

Anyone who has special needs should contact me in the first week of classes so that reasonable accommodations can be agreed on.

Academic Integrity:

BSC's official academic integrity statement can be found at

Academic integrity will be taken very seriously in this class. All individual work must be your own. If you cheat or otherwise represent the work of others as your own. You will receive an F for the course.

Guidelines for proper academic integrity:

Discussing problems with your classmates can help you understand the problems and kinds of solutions to those problems that you will learn about in this class. In an effort to make in clear what sort of discussions are appropriate and encouraged in this class and which cross the line to academic dishonesty I use the following guidelines: You may discuss any out of class problem I assign in this class with your classmates or other so long as no one is using any sort of recording implement including, but not limited to, computers, pdas, pens, pencils, phones etc. This lets you talk about theoretical solutions without sharing the actual implementations. As soon as anyone in the group is typing, writing etc, all conversations must stop. You may look at someone else's program code only very briefly in order to spot a simple syntax error. As a rule of thumb, if you find yourself looking at someone else's code for more than about 30-45 seconds it is probably time to stop. If you are having trouble with your program, come to the instructors office hours for more help.

All in class exams and quizzes are closed book and closed neighbor. If you are found using a data storage device of any kind during one of these evaluations, you will be failed for the course.

Of course for your group work, your entire group is intended to produce a single deliverable and are expected to work together on all parts of that so the above does not apply to members of a group working together on their group work.

Standards for in class behavior:

You are all adults and are expected to act as adults in this class. While questions are encouraged in this class, if a particular line of questioning is taking us too far afield, I will ask the student to come by my office hours or to see me after class.

Cell phones, pagers, electronic organizers and other devises should be silenced while in class. If you work of EMS or something similar, please turn your cell phones/ pagers etc to vibrate mode so that you are not disrupting others in the class.

In the unlikely case of trouble makers in the class, those who are simply attempting to disrupt the class will be asked to stop; those who will not, will be referred to the college for appropriate action.

 Tentitive Schedule

Week Topic Assignment
Week 1 Introduction and intro to networks/internet
Week 2 client server model, sockets, network connections, python
Week 3 designing a communication protocol for simple client server game app,
Project 1: client server assignment
Week 4 The world wide web and getting information out of it.
Week 5 web spiders II
Week 6 Web applications project 1 due
Project 2: web spider/etc assigned
Week 7 Web applications II PHP
Week 8  web applications III, Midterm
Week 9 securing internet applications project 2 due
project 3 web application assigned
Week 10 security week II
Week 11 Breaking the security of web applications
Week 12 injection attacks, overflow attacks project 3 due
project 4 security assignment assigned
Week 13 the weakest link attack: human user interface.
Week 14 Web language and technology time.
Week 15 slip time for earlier
Week 16 review and finish up. Project 4 due.