Topic 13: Consuming Third-Party API's (C23 + C24)

Topic 14 OAuth 3-Legged will be under videos 4 and 5 of this topic.


Final Project

  • Final Project
  • Due: December 18th 23:59:59
  • Prerequisite Material: Topic 13: Third Party APIs + Assessment 04

Topic 10 will be the last topic on Exam 2

Topic 08: Observer Pattern (C13 + C14)

Observer Pattern

Reference [Optional]

Topic 06 will be the last topic on Exam 1

Topic 03: Asynchronous Programming (C05 + C06)

Self Assessment

  • Assesment 01 - Solutions will be posted in a week. Attempt it before then and email me any questions that you may have (after reading the Email FAQ). Making an attempt before the solution release date and then cross referencing afterwards is the best way to prepare for the exams coding question.
  • Assesment 01 Solution

Topic 01: JavaScript Basics (C01 + C02)

This course will utilize JavaScript as our programming language. While there will be one lecture explaining the basic syntax, it is important that you put in some practice to learn the syntax as we will be quickly moving on to more relavent topics.

freeCodeCamp is the gold standard in this regard to getting students quickly up to speed.

I'd recommend completing as many of the Basic JavaScript and ES6 demos as possible. The ES6 demos are more relavent if you have some background with JavaScript already . Feel free to skip around, many of the earlier demos can feel a bit patronizing with how simple they are. Next week we will begin looking at more complex features of JavaScript - specifically closures and asynchronous programming, so make sure you are familiar with the syntax.

Course Introduction

Before you go any further in this course read the syllabus and then complete the Verification of Attendance quiz on Blackboard, then call your friends that are also enrolled and tell them to do the same. Any student that does not complete this university requirement within the first two weeks will be dropped from the course with a WN. In previous semesters this happened to 5% of enrolled students. Once dropped I will not vouch to have you reinstated, so don't delay.

You can confirm that you've completed the VOE exam by checking for a score on Blackboard Grades.

Some clarifications: You are responsible for all material posted with the exception of material labeled [Reference - Optional]. Yellow highlights denote that a particular resource has been updated or changed.


Welcome to CS 355: Internet and Web Technologies

This page is currently under construction

This course is an introduction to the technologies behind the Internet and World Wide Web directed toward computer science majors. We will be taking a deep dive into the TCP / IP Model. Learning the protocols on each layer and how they interact with each other. We will look at various protocols at each layer, understand their purpose, data structures and underlying algorithms.

TLS and HTTPS will be coverd, we will explore the security protocol's used on the web and how data encryption works over hostile channels. We will learn the technology behind Virtual Private Network and how anyone can use this technology to stretch their local networks across the globe.

On the programming-end we will be using JavaScript. We will explore functional, asynchronous, and event-driven programming. We will learn about class-free object oriented programming, as well as write code for both TCP and HTTP servers using the Node.js runtime environment.

We will be creating web applications and exploring the Representational State Transfer software architectural style to both consume and create RESTful APIs. We will discuss caching techniques and see how they can be applied not just for it's performance benefits, but improved reliability as well.

My Teaching Philosophy is influenced heavily by Cal Newport (Deep Work, Digital Minimalism). I like system solutions; tools and resources that I can build once and reuse indefinitely. The core of my work revolves around creating content and giving lectures for each of my classes. Things that distract me from this I try to either automate away, delegate to a specialist, or minimize from my life with rules.

In graded assignments I make use of rubrics to telegraph my expectations to students. I try my best to create questions that can be self-assessed, so students can actively track their performance.

As a rule I do not extended due dates as it creates unwanted work for me. I treat grading assignments the same way sanitation worker's treat picking up trash; something clearly unpleasant, but part of the job. Accepting work past the cutoff however, is not part of my job description. I will do my best to respect your time and give you long deadlines whenever possible, please respect mine as well by not asking me for extensions.

Under the course material, I've set up an E-mail FAQ which I advise all students check before contacting me as I hope to resolve your questions as fast as possible. Each additional round of emails is not just more work for me, but downtime for students as they wait for my response, so it's in the best interest of students to be as detailed as possible. I try not to look at my email too often, as my time is better spent creating content, so factor in up to 24 hours for each response.

I wish you the best and hope you find this course enjoyable.