|Time:||Monday and Wednesday, 5:30PM - 6:50PM|
|Location:||NCS120 - Since the NCS room has an excellent AV system, we will use this room for most of our sessions. When announced, other sessions will use Light Engineering 102. When the NCS room is used, remember that food and drinks are not permitted.|
|Text:||Assigned on-line readings are provided in lecture notes.|
|Instructor:||Dr. Robert Kelly|
(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
|Office location:||New Computer Science 218|
CSE 336 will provide students with an introduction to the technology of the Internet, especially approaches to programming cloud-based systems. While the business and tools of the Internet-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. 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 cloud solutions.
Successful completion of CSE 219 is required to enroll in this course.
The principal outcomes of the course are:
You should use an Interactive Development Environment (IDE) to complete the programming assignments. The official IDE for the class is IntelliJ IDEA. However, you can use any Java IDE supporting Java SDK 8.0 and Java EE 8.0.
IntelliJ is available as a download from the IntelliJ site.
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 IntelliJ during optional TA sessions. You may find it useful to review a slide set describing the use of IntelliJ for RESTful Services.
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.
Click on the lecture topic below to download a PDF file containing the class notes.
|8/27 (M)||Introduction||Due 9/9|
|9/3 (M)||No class - Labor Day Holiday|
|9/5||Project discussion and HTML|
|9/10 (M)||No class|
|9/12||CSS Style Sheets||Due 9/24|
|9/24 (M)||Http, Servlets|
|10/1 (M)||Quiz Preparation, Ajax||Due 10/9|
|10/3||Quiz and Restful Services|
|10/8 (M)||No class - Fall break|
|10/10||Restful Web Services - Part 1|
|10/15 (M)||Mid-term exam|
|10/17||Mid-term results review, RESTful Web Services - Part 2|
|10/24||RESTful Web Services - Part 3||Due 11/1|
|10/31 (W)||Quiz and jQuery/Ajax||Due 11/8|
|11/5 (M)||Server Side Scripting|
|11/7||Data Sharing, EL (Expression Language)|
|11/12 (M)||EL (continued), Template/Servlet Interaction||Due 11/18|
|11/19 (M)||Integrated Frameworks - Spring|
|11/21||No class - Thanksgiving Holiday|
|11/26 (M)||Quiz and Spring Controller|
|11/28||Spring Model and View Introduction|
|12/3 (M)||Thymeleaf||Due 12/16|
|12/5||Quiz and Client Side Scripting (e.g., React)|
|Final Exam (5:30PM-8:00PM)
(exam will be 45 minutes, starting around 5:45PM)
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 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. We will also use alternate development approaches to develop the same project.
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. 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 4 students in a group). If you do work in a group, remember that you have a responsibility to understand all aspects of the assignment since material from the assignments will frequently be included in quizzes and exams..
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, but be sure to include the names of all students participating in the assignment in the message body..
This is a three credit graded course. Your final grade is based primarily on your exam and quiz scores (mid-term and final exams, along with 2-4 quizzes). Assignments will be graded on a range of 0-10, and the total of all the assignments will constitute your assignment grade. That grade will be normalized so the final grade in this category will be in the range 0-100. The approximate weighting of the midterm exam, the final exam, the quizzes and the HW is 40/30/15/15.
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.
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.
The class is a hands on programming class, so you will require access to a computer and a Java development environment. The class-standard development environment is included in computers in the Computer Science Labs.
If you need to quickly set up an account, please contact the CS Department system staff. You will need to provide the CS Systems staff with your 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 and the instructor 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 questions 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 an 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. 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.
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.
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.
Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students' ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.
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.