Syllabus

CSC 418/587: Modern Web Applications Using Server-Side Technologies

  • Instructor: Linh B. Ngo
  • Office: UNA 138
  • Office Hours:
    • Monday and Wednesday: 1:00PM - 3:00PM
    • Tuesday and Thursday: 11:00AM - 12:30PM
  • Email: lngo AT wcupa DOT edu
  • Phone: 610-436-2595

Course Information

  • The course runs from December 16, 2024 until January 19, 2025. It is an 100% online asynchronous course.

Required Materials:

  • Jonathan Wrexler. Get Programming with NodeJS. Manning Publications, 2019.
  • You can get this textbook throuch Inclusive Access or from the publisher’s website

Prerequisites:

  • Permission from the instructor for graduate students.

Course Description

This 100% Distance Education course provides training in the area of building web applications using Node.js (with Express, and MongoDB) for the backend and EJS for the front-end user interface. JavaScript has been a client-side script programming language until later in 2009 when Google combined it’s V8 search engine with Node.JS. Since then, JavaScript has become a full-stack scripting language from the client-side to the server-side. Starting from building a web site without programming, students will be guided with hands-on labs and develop a website using Node.JS and EJS for the front- end, and MongoDB for the backend.

Learning Objectives

Course Student Learning Outcomes (CSLO)

  1. To describe the basic principles and structure about the Node.js architecture.
  2. To develop server-side scripts applying the asynchronous web technologies.
  3. To describe the principles of web app development using Node.js.

BS in CS Program Objectives (CSPO):

  1. Be able to apply theory, techniques, and methodologies to create and/or maintain high quality computing systems that function effectively and reliably in the emerging and future information infrastructure. (CSLO 1, 2)
  2. Perform well in a computer science graduate program or a career in computer science and have the communication skills and quantitative/analytical skills necessary for career advancement. (CSLO 3)

ABET Objectives (APO):

  1. ABET 1: Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  2. ABET 2: Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. ABET 6: Apply computer science theory and software development fundamentals to produce computing-based solutions.

Assessments and Grading:

Method of Evaluation

Assessment % of Final Grade Course Objectives Assessed Program Objectives Assessed ABET Objectives Assessed
Projects 50% 1, 2, 3 1, 2 1, 2, 6
Quizzes 50% 1, 3 1, 2 1,

Grade Scale:

Grade Quality Points Numeric Interpretation

Refer to the Undergraduate Catalog for description of NG (No Grade), W, & other grades.

Assessments:

  • Individual Assignments: Technical tasks or writing assignments that require significant reflection on procedural and technical aspects of software development and teamwork.
  • Team Project: Major development projects, most likely with external clients.
  • Class Participation: Being in class and participating in discussion of reading assignments.
  • Quizzes: Short online quizzes to test students on key concepts.

Lateness Policy:

Individual assignments that are late are assessed a 10% per day late penalty. Saturday and Sunday are each days. There is no late acceptance for team-based milestones.

{!assets/text/policy.md!} {!assets/text/distance_education.md!}

Course Topics and Schedules (subject to modification)

Week Topic Assessments
1: Dec 16 Install Docker -
  Setup Node.JS, VSCode, JavaScript -
  Node.js Project 1 Assigned
  EJS -
  Express.JS Quiz 1
2: Dec 30 MongoDB Project 1 Due, Project 2 Assigned
    Quiz 2
3: Jan 06 Building a user model Project 2 Due, Project 3 Assigned
4: Jan 13 Building an API (REST) -
    Quiz 3
Jan 19   Project 3 Due