Internet Commerce Programming
(updated 5/22/16)

Valid XHTML 1.0 Strict

CSE 336 News

Hot Links

Course Information

Semester: Spring 2016
Time: Monday and Wednesday, 7:00PM - 8:20PM
Location: Javits 111
  1. Java Servlets and JSP, 3rd Edition, Joel Murach and Michael Urban, Mike Murach & Associates, Inc., ISBN#978-1-890774-78-3.
  2. (optional) Head First HTML5 Programming, Eric Freeman and Elisabeth Robson, O'Reilly Press, ISBN#978-1449390549
On-line texts (Safari)
  1. Head First Servlets and JSP, 2nd Edition, Basham, Sierra, and Bates
  2. JavaScript, The Definitive Guide David Flanagan
  3. XML in a Nutshell, 3rd Edition, Harold & Means

Contact Information

Instructor: Dr. Robert Kelly
E-mail: robkelly@cs.stonybrook.edu
(be sure to include "CSE336" with no spaces, in the subject line of any e-mail message you send to me)
Office hours: Tuesdays, 11:00AM-12:30PM
Wednesdays, 11:30AM-1:00PM
Office location: New Computer Science 218, 2nd floor.


CSE 336 will provide students with an introduction to the technology of Internet Electronic Commerce. While the business and tools of Electronic Commerce are still evolving, the underlying technology has become fairly well established. This technology takes the form of various standards, architectural approaches, interfaces, and programming APIs. The programming APIs are particularly relevant in that they provide an abstraction of the underlying technology. CSE 336 uses the programming APIs (primarily Java) to present the technology of the Internet and of Electronic Commerce. The course presents the concepts needed to build enterprise-wide solutions, particularly the server-side components of those solutions. Students are expected to complete many programming assignments that develop components of E-Commerce solutions.

Completion of CSE 219 is required to enroll in this course.

Course Objectives

The principal outcomes of the course are:

  1. An understanding of the issues in software architecture design for Internet Commerce applications
  2. An ability to implement Internet applications using industry standard technologies such as HTML page templates (i.e., JSPs) and related objects (i.e., servlets and Java Beans)
  3. An understanding of aspects of XML useful in the development of Web Services applications

Development Tools

You should use an Interactive Development Environment (IDE) to complete the programming assignments. The official IDE for the class is NetBeans. However, you can use any Java IDE supporting Java SDK 8.0 and servlet/JSP development and testing (JSP 2.1).


NetBeans is available as a download from the NetBeans site; use the standard 8.0 version. If you have not already installed the Java 8.0 SDK, it also might be easier to download and install the Java SDK with NetBeans at the Oracle site.

Another Java IDEs that you might use is Eclipse.

We will not cover the use of any Java IDE in class. However, all the information you need to use it successfully is provided at the download site. In addition, the TAs will help you with NetBeans during TA sessions.


For HTML development, Amaya is a very capable HTML tool supporting your HTML and CSS development, and is available for a free download. Dreamweaver is the industry standard tool, but it is not available with a free unlimited license. However, if you already have access to it, it should be fine for this course.


You can use either XML Spy, which is installed in all the CS Labs or EditiX, which is available as a free download.

Lectures and Assignments

We will be following the syllabus closely. The assigned reading for the class contained in the textbook and in documents (articles, standards, etc.) available on the Internet. The readings are included in the class notes and in a page on the class Web site. A sizable portion of the reading will include XML, servlets, and JavaServer Pages.

Click on the lecture topic below to download a PDF file containing the class notes.

Date Topics Textbook Assignment
1/25 (M) Introduction   Due 2/5
1/27 Background    
2/1 (M) Project discussion and HTML Chapter 4  
2/3 CSS Style Sheets    
2/8 (M) Snow closing   Due 2/17
2/10 Project Discussion, JavaScript (Part 1)    
2/15 (M) JavaScript (continued)
Due 2/22
2/17 JavaScript/DOM   Due 2/24
2/22 (M) Servlets Chapters 1-2, and 5  
2/24 Quiz and Http    
2/29 (M) Form Datasets    
3/2 Ajax, Servlet/Ajax interaction   Due 3/7
3/7 (M) Java Beans, JSP Intro Chapter 6, pages 173-175  
3/9 Mid-term exam#1    
3/14 (M) Spring Break    
3/16 Spring Break    
3/21 (M) More JSP, Data Sharing/Sessions Chapter 7  
3/23 EL (Expression Language) Chapter 8  
3/28 (M)
Quiz and EL (continued)    
3/30 (W) JSP/Servlet Interaction   Due 4/10
4/4 (M) JSTL   Due 4/10
4/6 JSP Tags Chapter 10 Due 4/26
4/11 (M) Mid-term exam#2    
4/13 JSP Tags (continued) and XPath    
4/18 (M)


4/20 jQuery (continued)    
4/25 (M) No class    
4/27 Quiz and jQuery/Ajax    
5/2 (M) jQuery/Ajax (continued)    
5/4 Quiz and Review    
Javits 111
Final Exam (5:30PM-8:00PM)
(exam will be 60 minutes, starting around 5:45PM)

Assignment Information

Hands on use of the Internet through the Java APIs is critical to your success in this class. Every week there will be assigned reading and for most weeks there will be programming assignments. Don't fall behind in this work. It will be difficult to catch up with the class.

There will be one large programming project for the class, but it will be broken into smaller programming assignments. You will develop your project incrementally, with each part assigned as the associated topic is covered in class. You should plan on spending between three and seven hours per week on the assignments.

On-time submission of the assignments will count as the assignment portion of your grade. The material in the programming assignments constitute a large component of the mid-term and final exams.

You will submit the programming assignments electronically to the TAs, beginning with Assignment # 2. Just send the Java files (not the class files). Also, the sooner you submit the assignment, the sooner it will be returned to you. The assignments are due at Midnight on the due date listed in the class Web site. However, TAs will not begin grading until at least the next morning, so if you submit it a few hours after midnight it will also be accepted.

You may work on the assignments either individually or as part of a small group (maximum of 3 students in a group). If you do work in a group, remember that you have a responsibility to understand all aspects of the assignment.

When you submit an assignment, please include the following in the body of the e-mail.

If a group works on an assignment, you only need to submit one e-mail.

Grades and Exams

This is a three credit graded course. Your final grade is based primarily on your exam and quiz scores (2 mid-terms, 1 final, and 2-4 quizzes). The assignments are used to raise or lower your grade. The approximate weighting of the 2 midterm exams, the final exam, and the quizzes is 30/30/30/10. However, this may change if we lose more than one class day to University snow closings.

Extra points may be added to your exam scores for correct answers to certain in-class questions during regular class meetings. We will also have in-class hands-on programming exercises. You can work on these exercises in a small group (sharing a computer), and the first group to complete the exercise will receive extra credit in the subsequent exam. In addition, there may be some extra credit assignments, and credit for these assignments (if any) will be added to your exam scores.

You are required to submit all but two assignments to receive a passing score in the assignment portion of your grade (meaning that your grade will neither be raised nor lowered due to the assignments). If you have fewer missing assignments, your grade can be improved and if you have more than two missing assignments, your grade can be lowered. A maximum of three assignments can be submitted late (up to 2 days) without affecting your grade.

All the exams will be closed book, however relevant class libraries and APIs will be provided to you. The exams will be composed of some short answer questions and some programming questions. For the programming questions, your understanding of the concepts will be more important than your knowledge of the exact syntax.

Be sure to bring your student ID to all exams. The TAs will check your ID, and no one will be allowed to take an exam without the proper ID. Any incidents of cheating will be reported to the University committee on academic honesty.

Be sure to be in class on-time for you assigned examination time since there will be no make-up exams.

The Pass/No Credit (P/NC) option is not available for this course.

Labs and TAs

Alisa Yurovsky

Alisa Yurovsky


Vasudev Balasubramanian

The class is a hands on programming class, so you will require access to a computer and a Java development environment. The NetBeans development environment is available on the workstations located in the Transaction Lab. The Trans Lab is actually two labs in rooms 2114 and 2126 of the Computer Science building. Your initial account number in the lab is predetermined. Remember, you can always change your password during any Trans Lab session. And you should change your password so it is not your ID.

If you need to quickly set up account, please go to room 1309. You will need to provide the CS Systems staff with a student ID and an e-mail address. An e-mail will be sent to you when the account is ready.

The class TAs are available to help you in understanding the material in many ways. They will provide hints and suggestions when they respond to your submission of a homework assignment. They may also be available in teaching sessions given in the Computer Science Teaching Lab. Click the link in the TA names below to pop up a mail window.

The TAs will be coordinating hints and instructions concerning the HW assignment through Piazza. Piazza is a Q&A platform designed to get you answers from classmates and instructors. It serves as a forum to allow you to collaborate and solve common challenges. You can post any doubts you have or errors you may encounter, and we will post our answers on Piazza directly. You are also encouraged to answer any questions posted by your classmates.  This way when a issue is resolved, everyone gets to benefit and learn from the answer.

We also be posting assignment-specific instructions or notices on Piazza, so make sure you sign up. We would also like to remind you that Piazza is for sharing errors or doubts you encounter. For the sake of academic integrity, you should avoid posting your actual code in the discussion forums. If you feel it is absolutely necessary, you can check either with the instructor or one of the TAs.

Academic Integrity & Behavior

As a student at Stony Brook, you have agreed to follow the university's rules regarding academic integrity and appropriate conduct. You should read both the academic integrity information and procedures and the student code of conduct.

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person's work as your own is always wrong. Any suspected instance of academic dishonesty will be reported to the Academic Judiciary.

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of Judicial Affairs any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn.  

Special Assistance

If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Disability Support Services office, 128 ECC Building (631) 632-6748. They will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.

Students who require assistance during emergency evacuation are encouraged to discuss their needs with their professors and Disability Support Services. For procedures and information go to the Environmental Health and Safety web site, and search Fire Safety and Evacuation and Disabilities.

If you need general computer help, you can use the Computer Science Help Desk. Services offered include setting up an account on a department server, using Windows NT, using a browser, and connecting to the campus network. The Help Desk office is located in the SBCS Office - Room 2110.


The following list will contain links and references that will be useful in the course. To access some of the documentation, you have to register for the Oracle Java Developer Connection and the IBM DeveloperWorks.