CSC 415 Web Applications
Fall 2018

Course Description

CSC 415 Web Applications (3.00)
Development of web applications using various client-side and server-side web technologies on the Java EE and .NET platforms. Topics include: HTTP protocols, the Model-View-Controller design pattern, Java Servlets, Java Server Pages, JSTL, ASP.NET Core, JavaScript, and Single Page Applications. Introduction to ORM frameworks for database access and web applications security. Extensive programming required.

Instructor Accessibility

Office hours are by appointment 12:45 to 1:45 pm on Tuesdays and Thursdays in the Part-timer's office, first floor of Wentz Science Center. If these hours do not suit, I can also see you by appointment at a mutually convenient time if these hours do not work for you. You can contact me by email at gcmuganda@noctrl.edu

Course Textbook

There is no one suitable textbook for the wide variety of topics we need to cover. Most of the course concepts will be based on Java EE web application technologies on the back end and JavaScript/HTML/CSS on the front end. The best reference for the Java EE technologies is

David R. Heffelfinger, Java EE 8 Application Development, Packt> Publishing, 2017

Best references for JavaScript/HTML/CSS are w3schools and the Mozilla MDN sites. For JavaScript, I also recommend

David Flanagan, JavaScript: The Definitive Guide, 2011

Although the Flanagan text is somewhat dated, it is still the best comprehensive introduction to JavaScript out there.

Course Outline

This weekly schedule is tentative and is subject to change as the term progresses.

Week Course Topics Reference
1 Introduction to Networks and Network Protocols, Socket programming, and the HTTP protocol. MDN
2 More on HTTP; Server-side web application frameworks; CGI, Java Servlets. MDN and Heffelfinger Chapter 13
3 Server-side Programming Using Java Servlets. Introduction to HTML/CSS for front end development. Java Server Pages and JSTL tags. Heffelfinger Chapter 13,
4 Anatomy of a Java EE web application, life cycle events and web event listeners, HTTP sessions, Request dispatchers, servlet contexts. Heffelfinger Chapter 13,
5 Introduction to Relational Databases, database programming and ORM frameworks Heffelfinger Chapter 3
6 JavaScript Language basics, JSON. MDN
7 Advanced concepts in JavaScript Programming. The Promise API, the Fetch API, Asyncronous Programming in JavaScript MDN
8 RestFul Web Services (JAX-RS) and Single Page Applications. Heffelfinger Chapter 10
9 Single Page Applications Intro to SPAs
10 Introduction to ASP.NET core and JavaScript frameworks for SPAs such as Vue.js Vue.js

Schedule of In-class Quizzes and Tests

All tests and quizzes will be on Fridays unless otherwise announced.

Class Event Date Percent Weight
Quiz 1 Week 2 5%
Quiz 2 Week 3 5%
Test 1 Week 5 12.5%
Test 2 Week 8 12.5%
Final Exam Week 11 25%

In addition to the tests, there will be a number of homework/ programming assignments. These will account for 40% of the course grade. They will be designed to help you understand course concepts and prepare you for the in-class quizzes and tests. Some of the tests and quizzes may involve writing short programs based on the concepts covered in lectures and in the programming assignments.

Late Policy

All assignments and projects should be turned in by midnight on the day due. A 10% penalty will be assessed on projects turned in late, but in general this penalty will not be levied if the assignment is turned in before I have completed grading the batch of assignments to which it belongs. No assignment/project turned in after the due date for the next assignment/project will be graded.

Policy on Missed Quizzes and Tests

In-class tests and quizzes missed without a legitimate excuse cannot be made up. If you have to miss quiz or test (for some legitimate reason) please let me know at least a week before and I will make arrangements for a make up. In the event some unexpected reason beyond your control prevents you from being in class on the day of a test, contact me as soon as possible by phone or email to arrange a make up.

Ethics Policy / Academic Dishonesty.

No student should turn in for grading work that has been done by someone else, or work on which they have received help but which they do not understand. Any work turned in by a student will be considered to have been plagiarized if the student can not explain it when requested to do so by the instructor. It will also be considered to have been plagiarized if there is clear evidence that the work has been copied from another source, even if the student can explain it.