Skip to the content.

605.787 Front End Web App Development

Syllabus

Teaching Staff Contact Info

Please contact me over email. Generally, I respond to emails on the same day and pretty quickly, but should definitely get a response from me within 24-36 hours. (However, you are highly encouraged to use our Google Group to ask the question… and answer other people’s questions if you know the answer.)

Please be sure to start the subject of all your emails to me with [JHU-FRONTEND]. If you don’t, I can’t guarantee that I will notice your email and respond within the promised timeframe.

Discussion Group

VERY IMPORTANT! YOUR ACTION REQUIRED! We will have a Google Group as our discussion group. We will NOT be using Canvas’ “Discussions” section. The purpose of the Google group is for me to send out announcements and for you to ask questions with ease. If you don’t join the group, you will be missing important announcements and information which you will be responsible for.

You do NOT need a Google or Gmail account to join the group. Without a Google/Gmail account, you will NOT be able to access the group on the web. However, that’s 100% OK because we are using Google Groups simply as a group email list. So, you don’t need the ability to access it online in your browser. To join the group, please send an email from an email account that you check often to: jhu-frontend+subscribe@googlegroups.com. After that, once you are approved to join (by me), you will be able to post to the group by simply emailing JHU-FRONTEND@googlegroups.com from the email address you registered for the group with.

DO NOT choose “No Email” or “Abridged Email” as your delivery options. That defeats the purpose and you may not hear of an announcement or some other important piece of information in time (and you’ll still be responsible for it). I switch everyone to “All Email” option, assuming it was a mistake. The group is not usually that chatty anyway, but if you want to risk it and switch it back, that’s your choice.

After semester is over, I will remove you from the group, so you won’t be bothered by it anymore.

There are no mandatory discussions in this class. I’ve asked students about this for years and everyone hates these. They feel like forced regurgitation of the same points over and over.

Assignment Submission Guidelines

Usually, you will have an assignment every week. Some assignments will span 2 weeks (each module on Canvas will inform you of that.)

To submit your assignment, make sure you accomplish the following 2 things:

Make sure both of these are done before the due date/time. (See info below on late submissions).

Dealing with Assignment Feedback from the Grader

While the grader tries to be fair and consistent, there can be some mistakes or misunderstandings. If you get feedback that you don’t understand or don’t agree with, here is the procedure to follow:

  1. Contact the grader first and politely explain your issue with the feedback or the grade. You will either get a correction or an explanation of the feedback and/or the grade.
  2. If, after contacting the grader, you still think that the grade is unfair or you are not being understood, you can contact me, showing me exactly what the grader said.

One note: While I do make the final decision on your grade, please first consider if what the grader is telling you is actually fair. I will not overrule the grader “just because”. However, if you honestly feel there is a real issue, don’t hesitate to get in touch with me.

Unless otherwise announced, the due date for the assignment will be Tuesday at 11:59pm.

Staying in Touch

Connect with me on LinkedIn: linkedin.com/in/yaakovchaikin

Follow me on Twitter (usually web technology related): twitter.com/yaakovchaikin

Check out my site: ClearlyDecoded.com

Office Hours

I don’t offer synchronous office hours. I have offered synchronous office hours for years and, for years, no students wanted them. (That actually always made perfect sense to me as one of the major attractions of an online course is the ability to accomplish things whenever it is convenient for you. No prescribed time.)

Course Description

Background

This course was originally 2 courses that were geared toward Coursera.org. This is why there are 2 separate GitHub repositories that we will use. One is geared toward Part 1: HTML, CSS, and Javascript material (course4 repo) and another one geared towards Part 2: AngularJS (course5 repo).

A lot of hard work went into making sure to up the production quality for these courses. I am fairly sure you will notice that. 😀

This Course has 2 Parts

Both parts of the course are really fun, not just from the technical perspective, but because as part of the curriculum, we build a REAL web application for a REAL client. I got one of the local Baltimore restaurants, whose site was horrible, to agree to play ball if I developed a much better site for them and include them in the course. We literally go on a field trip to the restaurant and you get to see the client interview with identifying components of what you need to get out of that interview. We then go through the mockup process and then code the whole site from scratch, utilizing all the concepts we learned in the course, plus learn some new ones along the way.

In terms of technologies, we roughly cover the following:

Part 1

Part 2

In the AngularJS part, it’s the same deal. We start with concepts and take a fairly deep dive not only into how to accomplish something with the framework, but also how AngularJS works. At the end of Part 2, we take the site from the Part 1 and re-implement it using AngularJS. We don’t stop there though. We add a whole new set of features, including authentication, editing/validating data, client-side routing, and so on. It covers Angular 1, not 2, but we do cover the LATEST Angular 1, which has version 2 style component-based architecture.

In both parts, you will deploy your assignments on GitHub.com.

Prerequisites

None for now.

However, as my Linear Algebra college professor once told me, when I asked him why in the world was Calculus a prerequisite for his course, when the two subjects had absolutely nothing to do with each other: “We want to ensure certain mathematical maturity before you take this class.”

Same here. No prerequisites for now, but certain programming maturity is expected.

Course Structure

Each part of the course is divided into modules, generally one module per week. However, because in some modules, watching videos and doing the assignments is pretty time consuming, some modules will take up 2 weeks. By university policy, I do NOT include the semester break (Spring break or Thanksgiving break) in the due date duration, so one of the 2-week long assignments ends up being due in 3 weeks (because the break week is not counted).

Textbook

There are no required textbooks in this class. See the Recommended Books reading listed in Module 1.

Grading

There are no exams or midterms in this course. 100% of your grade is computed based on the grades of your weekly assignments. Each assignment will get a letter grade of either A, A-, B+, B, and so on.

Grade Numerical Value
A+ 4.10
A 4.00
A- 3.67
B+ 3.33
B 3.00
B- 2.67
C+ 2.33
C 2.00
C- 1.67
F 0

A+ (4.1) is given when an assignment has an optional extra credit task and only if the required tasks are completed with an A. Each assignment is weighted by the number of weeks given to complete it. So, a two-week assignment is counted as two one-week assignments. Final grades are computed by taking the weighted average of all of the assignments, rounding it to the nearest whole number, and taking the final letter grade from that (4 = A, 3 = B, 2 = C, 1 and below = F).

There is no curve in this class.

Policies and Guidelines

Late Assignments and Due Date Extensions

Late assignments are not accepted unless you contact me in advance and will receive an F. “In advance” means at most 2 business days after the assignment has been assigned. Since our course is based on Wednesday, that means by Friday night.

The reason for an extension almost doesn’t matter: business trip, vacation, family will be in town, feeling overwhelmed and need a break this week, hired someone to do the assignment and still negotiating the price… Ok, maybe not that last one.

What does matter is that you ask for it in a timely and responsible manner. Obviously, timing exceptions are made if a sickness or some other emergency arises that can’t be known in advance. In all such cases, please email Yaakov (and CC the grader) at your earliest availability to do so.

As long as you follow these guidelines, an extension is almost always granted.

That is my approach because we are not in high school and no one is going to lose a client or die if you turn in your assignment late. 😊 Life happens. All I have to require is some standard such that it can equally be applied to every student in the class.

There are limitations to the extensions. Extensions past the end of the semester can be granted, but will result in me having to give you an Incomplete. After completing the assignment and having it graded, you can change the grade from an Incomplete to a regular grade, but JHU requires you to fill out a form and pay some administrative fee to them for that. Also, if you are graduating this semester, having an Incomplete will probably push off your graduation date another semester.

You must have an email from me stating that I granted you an extension. Please keep the email stating that you were granted an extension until the end of the course (when you receive your final course grade). If I (or the grader) made a mistake, you’ll have proof of the extension.

Some advice: if you are not sure you are going to be able to complete the assignment on time because of a business trip, family trip, etc., email me within the 2 business days after the assignment stating this, i.e., notifying me that you might need an extension. Emailing me a day before the due date asking for an extension because you were on a business trip and you thought you were going to be able to finish is not a good enough excuse.

Academic Misconduct Policy

Feel free to read the official policies pertaining to academic misconduct.

You are free to look in any textbook, common web page, or speak to anybody about any assignment. As in all courses, these sources should be listed if used. You are free to adapt code out of texts, journals, common web sites, or other public sources, as long as these references are cited. Of course, such code will still be graded based on the standards and style covered in class, and using code you don’t completely understand may be to your detriment in the long run.

Obviously, you are free to use any of the code presented in class at any time (and it is not necessary to cite this source). However, adapting code is not permissible with regards to other individuals, in contrast to standard sources. Copying of code from individuals, whether or not they are students in this course, is not allowed without prior permission, even if the code is adapted and the source referenced. Not all situations fall neatly into either category: please contact me if you are unsure.

Finding a solution that’s close to the answer on GitHub.com is not acceptable. (Don’t do it. The grader can search GitHub just as well and compare.)

I enjoy teaching, but despise policing. If a person is caught cheating, my efforts will be devoted to dismissing that person (and the possible accomplice) from my class, not assigning bad grades and policing people not to do it again. At the very least, that person’s final grade will not be higher than a B. Please don’t put me (and yourself!) in this position.