CSCI 421 - Web Application Development
CSCI 421 - Spring 2024 - Thomas Rogers
Lectures, labs and other instruction during sessions each Monday and Wednesday, 6:00pm to 7:50pm per the course schedule.

Instructor:
•   Thomas Rogers - thomas.rogers@millersville.edu - http://cs.millersville.edu/~trogers
•   Email: thomas.rogers@millersville.edu
•   Class Web Page: http://cs.millersville.edu/~trogers/csci421/

Prerequisites:
C- or higher in CSCI 362.

Textbooks (required):

  1. Getting MEAN with Mongo, Express, Angular and Node, Simon Holmes. Manning Publications Co, First Edition, 2016.
  2. Web Development with Node and Express: Leveraging the JavaScript Stack, Ethan Brown, O'Reilly Media Inc, First Edition, 2014.

Goals: At the end of this course, a student will:

  1. Be able to describe the differences between traditional web development practices and modern-day web application technology stacks.
  2. Be able to differentiate when the use of a web application technology stack.
  3. Ability to choose the right technology stack based on needs, economics, etc.
  4. Demonstrate a basic knowledge of the architecture of a cloud-based web application.
  5. Be able to "stand up" basic, database-driven web applications quickly, in the cloud, using several different technology stacks.
  6. Understand the basic anatomy of the client-side web application (UI), the technologies used to comprise said, and how to extend.
  7. Have a basic understanding of web application server-side technologies with the ability to write secure APIs for login, logoff, etc.

Grading:
Mid-Term = 30%
Final Exam = 30%
Labs = 40%
I use a ten-point grading scale (93 = A; 90 = A-; 87 = B+; 83 = B; ...).
You must attempt all examinations and assignments to pass the course. In addition, class attendance and participation accounts for 2% of your overall course grade (affecting your lab grade 40%).

Academic Honesty:
Copying or any collaboration with anyone else on tests is not permitted and may result in failure in the course.

Refer to the university policy on academic honesty for details and penalties.

Tests:
Tests will be cumulative and will emphasize material we have covered in lecture and practiced in labs. Tests will be closed book, closed notes.

If you miss a test, you will receive a grade of zero for that test. Exceptions may be made at my discretion. In fairness to all, documentation will be required. Contact me immediately, preferably before the test, if you have a problem.

Labs and Assignments:
Lectures, labs and other instruction during sessions each Monday and Wednesday, 6:00pm to 7:50pm per the course schedule. Lectures are in Roddy-147 and labs in the Linux Lab in Caputo 130. Check the class schedule and read through the lab assignments before attending labs in-person as doing so will make the lab period much less stressful. Please keep up on reading assignments for lectures. It is expected you will have read assignments before attending lectures.

Lab assignments will not be accepted late. Labs must be delivered by the time and date specified for the assignment. Submit what you have for partial credit.

Lab assignments will be turned in by email and/or through a code repository system as and when directed.

Office Hours:
Office hours will be directly after class meeting times each Monday and Wednesday (approximately from 8pm to 9pm) and will be conducted in person and if previously agreed to on-line via Zoom. Additional on-line office appointments may be scheduled by email and meet during a time mutually agreed by the student and instructor.

Special Needs:
Anyone with special needs should contact me as soon as possible.