Welcome to CSc31800: Internet Programming

Spring 2004, CS-CCNY-CUNY


| Exams, Projects and Grading Policies | Grades | Syllabus | Computing Facilities | References |


Announcements
  • 06/01: Final grades are available.
  • 05/19: The final grade will be available around June 2nd. Good luck in your other finals and have a nice summer!
  • 05/19: Final Exam (close book) Location: R5/150, Time: 2:00-3:15pm
  • 05/03: I have to cancel today's class due to catching a cold. Those who want to hand in the report of project 3, please submit online. Thanks.
  • 04/01: The requirement for Project 3 stage 2 has been updated to include the Java CGI API part. Check it out.
  • 03/26: Due date for Project 3 stage 2 is extended to 04/28. On that day, we will meet in T513 and you should be ready to demonstrate your work, mainly CGI implementation. The detailed requirement for Java CGI programs will be available no later than next Thursday - 04/01. But if you choose other language for scripts, you may start right away.
  • 03/08: Project/Homework online submission
  • 03/05: Midterm Exam (close book) Location: R5/150, Time: 2:00-3:15pm
  • 03/05: A sample of midterm problems
  • 03/05: A good sample for project #2 report, which got 100
  • 03/05: Late homework and project submission will NOT be accepted from now on, unless you notify me in advance to use some of your 7 flexible days if available.
  • 03/05: Please use your real name in Yahoo email-list so that I may know whose email address is which one.
  • 03/05: Information for running Apache on Solaris in UNIX-Lab
  • 03/01: The due date for the homework of Apache is extended to next Monday - 03/08.
  • 02/25: We will meet in the original room assigned to us on Wednesdays and T513 on Mondays in the rest of this semester.
  • 02/25: The requirement for Project #3 is updated.
  • 02/25: The grades for Project #2 are available.
  • 02/25: The due date for Reading #1 is extended to next Monday - 03/01.
  • 02/24: Here are several issues you may want to know regarding project work
  • 02/23: If you haven't registered into our Yahoo email-list, please do so ASAP to avoid missing important notices.
  • 02/16: Happy President's Day!
  • 02/09: The Helloworld client and server programs I mentioned today may be a good start for implementing a web client and server, so please do it first and we will cover the topic of socket programming with Java on 02/11.
  • 02/09: Thinking in Java (2nd Edition) has been added in the references section. It is the best book about Java I have ever seen.
  • 02/06: Norman Vasquez has set up an excellent tutorial about how to create a personal webpage on the CS server. If you haven't figured it out yourself, please refer to http://www-cs.ccny.cuny.edu/~vasq2042/howtounix.html.
  • 02/03: Project #1 will be due on 02/09. Students are required to demonstrate their work during the class..
  • 01/26: An email-list has been set up. If you didn't receive invitation or welcome email, please go to http://groups.yahoo.com/group/csc31800-ccny/ to join.

Grades
  • Lastest grades
  • Comments on Project #2

  • Syllabus
     
    Date Lecture Projects / Homeworks / Exercises
     02/02 M  Overview of Networking and the Internet  #1: Homepage on CS Server
     02/04 W  Networking and the Internet (cont.)  
     02/09 M  Introduction to Java 1 Introduction to Java 2  #1 Due,  HelloWorldApp.java
     02/11 W  Introduction to Java (cont.)   roster.zip
     02/16 M  President's Day  
     02/18 W(Mon)  HTTP  Reading #1: Xanadu Project; #2: Web Client; #3: Web Server
     02/23 M  HTTP (cont.)  EchoHttpServer.java
     02/25 W  HTTP Authentication  #2 Due; Homework with Apache
     03/01 M  HTML Basics  Reading #1 Due; Exercise with HTML
     03/03 W  Project issues  
     03/08 M  Cascading Style Sheet  Homework with Apache Due
     03/10 W  Midterm Exam (close book)  Location: R5/150, Time: 2:00-3:15pm 
     03/15 M  Project demonstration  #3 stage 1 Due
     03/17 W  Midterm Exam solutions  
     03/22 M  CGI  form-example.html
     03/24 W  CGI (cont.)  
     03/29 M  Cancelled  
     03/31 W  Tomcat server  tomcat.html   testapp.war
     04/02--04/13  Spring Recess  
    04/14 W  Tomcat server (cont.)  
    04/19 M  Tomcat server (cont.)  
    04/21 W  Java Servlet  
    04/26 M  Project 3 Problems  
    04/28 W  Project demonstration  #3 stage 2 Due
    05/03 M  Cancelled  
    05/05 W  Java Server Page  
    05/10 M  XML  
    05/12 W  XML (cont.)  
    05/17 M  Review of topics covered since midterm  
    05/19 W  Final Exam (close book)  Location: R5/150, Time: 2:00-3:15pm 

    References
     
    General
    HTML with Style Tutorials
    Introduction to Web Programming
    Core Web Programming
    RFC Archives
     
    TCP/IP
    An Introduction to TCP/IP
    BSD Sockets: A Quick And Dirty Primer
     
    HTML
    HyperText Markup Language (HTML) Home Page
    HTML 4.01 Specification
    Cascading Style Sheets
     
    HTTP
    HTTP - Hypertext Transfer Protocol
    Hypertext Transfer Protocol -- HTTP/1.1
    RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication
    HTTP Made Really Easy: A Practical Guide to Writing Clients and Servers
    Base64 Content-Transfer-Encoding
    CGI Made Really Easy
    The Common Gateway Interface
    CGI Developer's Guide
    Client Side and Server Side Imagemaps
    Multipurpose Internet Mail Extensions (MIME)
     
    Java
    An Introduction to Java for C++ Programmers
    Java Tutorials at SUN (Input/Output, Setting Program Attributes, Multi-threading)
    Thinking in Java (2nd Edition)
     
    Online Dictionaries
    Online Dictionary - HyperDictionary.com
    Webopedia Online Dictionary for Computer and Internet Terms

    Instructor
  • Jinzhong Niu, jniu at gc.cuny.edu, 212-650-5378
  • Office Hours: T513, 3:15-4:15pm Monday. NOTE: Making an appointment in advance is required.

  • Course Objectives
    This course provides advanced CSc/engineering majors with an understanding of HTTP and Web-based application development. Emphasis of the course is hands-on training on top of recent software development environment. A project-based system development work will be an essential component of the course. Topics include HTTP client/server communication and application design, Common Gateway Interface (CGI) specification, servlet and Java Server Page containers, session management, database connectivities, network security, etc.. Students are required to develop all applications on UNIX platform; students are strongly encouraged to install Linux on their home computers as well as install and set up a web server.

    Textbook
    No specific textbook is assigned for this class. Several references will be set online accessible for the course work.

    Prerequisites
    Good standing in CSc220 Algorithms, CSc212 Data Structures, CSc221 Software Design Laboratory (or EE259 Programming for EE), and at least junior standing. Working experiences in C++/Java programming language are essential. Knowledge of using Unix/Linux programming tools such as text editors, debugger, and common utilities is plus, but is not required. 

    Exams, Projects and Grading Policies (Tentative)
    We will meet Monday and Wednesday 2:00-03:15, at T513 (Mon) and R5/150 (Wed). See syllabus below for the tentative schedule. There will be about 5 projects to be done throughout the semester (counted roughly 60% of your final grade). The project must be demonstrated under CCNY's Unix environment. There will be two in-class, closed-book exams (40%) graded by me. Each will cover lecture and reading material since the previous exam. Dates of these exams will be announced beforehand.

    NOTE:

    • The course project work must be carried out in teams of two. Choose a partner as soon as possible; work with the chosen partner throughout the semester. Changing partner and/or working alone is unacceptable, except for the case your partner has disappeared. Instructions to submit each assignment will be given later. Once again, the programming work must be done individually. Sharing the source code (including logic) and/or modifying the code to fabricate and reproduce other versions (beyond team collaboration) is very seriously treated, and is reported to both CS department and Deans office. Do not underestimate my reaction resulted from breaking this rule. 
    • Two exams will be given in class. You are expected to arrive at the beginning of the class period, and no extra time will be given for late arrivals. No make-up exams will be considered for absent students. You must not place your seat close to other students. Violation or any unfair activity will be treated as cheating.

    Computing Facilities
    Both Unix labs (R7/105, R7/106) and PC labs (R7/118, T513)  will be open Monday through Thursday from 11:00AM to 9:00PM, and Friday and Saturday from 11:00AM to 7:00PM. The computer environment and language used for this class is Unix based. I will not use Microsoft to meet course objectives. I rather strongly encourage you to install Linux and start learning its environment (hundreds of professional software development tools are free).

    To access UNIX lab remotely, you need first download SSH client for your local platform and then connect to csultra.engr.ccny.cuny.edu with your account. For Windows, you may visit http://www.ssh.com/support/downloads/ for the non-commercial version of SSH client program; for Linux, you may use OpenSSH right away, which is an open source implementation of SSH and part of standard installation.



    © Jinzhong Niu, 2004 
    Acknowledgement

    Without Professor Kawaguchi's generous help, the preparation for both this homepage and the syllabus cannot be finished so fast. I really appreciate.