CS 5610
Web Development
- Instructor: Philip Bogden, p.bogden@northeastern.edu
- Office Hours: Fridays 2-4pm or by appointment (on Teams: https://teams.northeastern.edu)
- Canvas: Schedule, assignments, grades
- Github Classroom: Assignment submissions – you’ll be invited using your northeastern.edu email
Course description
Discusses Web development for sites that are dynamic, data driven, and interactive. Focuses on the software development issues of integrating multiple languages, assorted data technologies, and Web interaction. Considers ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL, and Web services. Each student must deploy individually designed Web experiments that illustrate the Web technologies and at least one major integrative Web site project. Students may work in teams with the permission of the instructor. Each student or team must also create extensive documentation of their goals, plans, design decisions, accomplishments, and user guidelines. All source files must be open and be automatically served by a sources server.
(from the academic catalog)
- To be kept: Considers HTTP, HTML, CSS, JavaScript, SQL, and Web services.
- To be deleted: ASP.NET, C#, XML, XSLT, AJAX, RSS/Atom
- To be added: the DOM, various web APIs (e.g., fetch, SVG), CORS, front-end and back-end frameworks
Learning goals
At the end of CS 5610, a student should be familiar with…
- Core web technologies: HTTP, HTML, CSS and JavaScript
- Front-end development: vanilla web technologies and various frameworks for UI design
- Back-end development: server-side programming in Python and JavaScript
- Client-server interaction: asynchronous data exchange, REST + JSON, CORS
- Data interaction and visualization with various modern web APIs and JavaScript libraries
- Persistent data stores: integrating SQL and NoSQL databases
- Finding, learning, and using additional tools
Approach
- Classes
- The majority of the class time will involve hands-on experiments.
- Students will typically work in small groups with live coding.
- For the most part, outside reading will take the place of in-class lectures.
- Assignments
- Regular at-home assignments will allow students to experiment on their own.
- These assignments will build on concepts and technologies introduced in class.
- Students will use a development server to share and discuss their work with classmates.
- Participation
- At-home assignments that encourage self-motivated exploration will be followed by in-class demos and peer review.
- Students are expected to participate in those discussions and to present their demos from time to time.
- For in-class assignments, students will break up into small groups to work on coordinated application development.
- Term project
- A team-based project will dominate in the 2nd half of the semester.
- Projects should implement and expand on technologies introduced in first half of the course.
- Students may select from project options discussed in class or they may choose their own.
Prerequisites
There are no formal requirements.
The course introduces and uses the core web technologies (including JavaScript) and a variety of tools built with them.
Previous familiarity with web technologies will be helpful but is not required.
The course involves extensive coding in both Python and JavaScript.
Students in the MSCS or MSDS track should be proficient with
object-oriented programming in a modern high-level language such as Python
so that they can quickly get up to speed with JavaScript.
They should also be familiar with SQL.
Development environment
Students are responsible for a standard development environment installed on their computer,
including a text editor and the ability to run code and manage a git repo from the command line.
The first class reviews recommendations for easy installation of tools used in the course.
Students will need a github account linked to their Northeastern email.
Assessment
Activity |
Contribution |
Homework |
~60% |
Project |
~30% |
Class Participation |
~10% |
Reading
Web technologies move so fast that good books on the subject quickly get out of date.
Therefore, reading for this course will come mostly from MDN,
which is an authoritative developer-driven reference for the web technologies that we’ll use.