Syllabus
CSSE 490-01 – Web Services Development
Winter 2017 - 2018 (a.k.a. 201820)

Prerequisites and Course Content

Prerequisites

The formal prerequisites are:

The main things you should bring into this course include:

Course catalog description

This course focuses on the development of RESTful web services embracing the MEAN (MongoDB, Express, AngularJS and Node.js) technology stack. Node.js and Express will be used to create server back-ends that will interact with MongoDB, a leading NoSQL database that empowers businesses to be more agile and scalable. Angular will be used to create dynamic front-end applications, along with HTML5, CSS3, JavaScript, JSON, and other web frameworks including Syntactically Awesome Stylesheets (Sass). Angular applications will be unit tested with a test driven development framework for JavaScript that has become a popular choice for testing Angular applications. Express REST APIs will be unit tested with a feature-rich JavaScript test framework that runs on Node.js. Lean principles will be employed by using Kanban boards to visualize workflow and limit work in progress.

Learning Outcomes:

Students who successfully complete this course should be able to:

  1. Develop back-end REST APIs leveraging Node.js, Express, and MongoDB.
  2. Develop front-end Angular applications that consume REST APIs.
  3. Research and use third-party libraries in building front-end and back-end web applications.
  4. Test front-end and back-end web aplications using state-of-the-art testing frameworks.

Course meetings, Contact info & Outside help

Class Meeting Times and Places

Instructor

Delvin Defoe, Associate Professor of Computer Science and Software Engineering
Email: defoe (at) rose-hulman.edu
Office phone: 812-877-8815
Office address: Moench Hall, F–220
Office hours: I plan to be on campus from 9:00 AM to 5:10 PM MTWRF. If I am not in class, at lunch, or in a meeting, I will usually be in my office.

Other Sources of Help

Outside of normal class time, I am happy to assist you when I am in my office. Besides the instructor, other students in the course can often be a great source of help. And they will also learn more as they explain things to you.

Don’t try to be the "Lone Ranger" in this course, especially if you do not find the course easy. If you find that you have worked on something for 30 minutes without making any progress, it’s probably time to seek help! Software development is a team sport. The best programmers know that a fresh set of eyes can often spot a problem right away.

Books & Resources

Required text

Express in Action (Writing, building, and testing Node.js applications)

Express in Action (Writing, building, and testing Node.js applications), by Evan M. Hahn

Paperback: 256 pages, printed in black & white
Publisher: Manning Publications Co. (April 2016)
ISBN-13: 978-1617292422

Links: Availability

This is a great book that gives a gentle introduction of the Node.js, Express, and MongoDB.

Recommended Resources

Angular 2 Development with TypeScript

Angular 2 Development with TypeScript, by Yakov Fain and Anton Moiseev

Paperback: 456 pages, printed in black & white
Publisher: Manning Publications Co. (December 30, 2016)
ISBN-13: 978-1617293122
ISBN-10: 1617293121

Links: Availability

This is an excellent book that introduces you to Angular.

The recommended resources posted on the schedule page will also become helpful.

Grading

Weight Criteria
5% Quizzes
15% Labs
30% Team project
25% Exam 1
25% Exam 2

Letter Grades

The following table provides the breakdown for each letter grade.

Letter Grade Final Average
A 90‐100%
B+ >= 85%
B >= 80%
C+ >= 75%
C >= 70%
D+ >= 65%
D >= 60%
F < 60%

I reserve the right to modify grades +/- 5% for citizenship (attendance, promptness, being engaged in class, working well with your partner, helping classmates appropriately, filling out surveys).

Final grades are also contingent on the following:

Submission of labs

Your labs will be checked in class. You are responsible for completing them on time. Typically, you would lose 20% per day, which includes not having it ready at the start of check-off-day. In extreme circumstances, you may ask for an extension and are responsible for showing it to me at our convenience. If you abuse this privilege, you will receive no credit for late work.

Attendance

The in-class time in this course constitutes an important learning experience. You should be there. After three unexcused absences you must speak with your instructor about whether you can continue in the course.

Serious illness is an excused absence. Running a fever? Contact student health services. Don't come to class; email me so I know about the situation. I will work with you on a plan to make up the work when you're feeling better.

Bug Reports

If you find errors in any of our course materials, please report them via email. I will give a small number of extra credit points to the first person to report a particular bug. The number of points will depend on the severity and subtlety of the bug that you report. Please point out even little things like broken links and spelling errors.

Communication

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

Find our class page at: https://piazza.com/rose-hulman/winter2018/csse49001/home

I usually check email several times per day, and do my best to respond quickly. It is a good way to get answers to simple questions. I expect you to check your email daily (not necessarily on weekends, although even that is not a bad idea). When I send mail to you, I will use your Rose-Hulman address. If you do not currently read mail that is sent to that address, please have it forwarded to wherever you do read mail.

If you really want to ask your instructor a private question via email, please include CSSE 490-01 in the subject line (and include a real subject), so that I can quickly pick it out from among the dozens of daily email messages that I receive and respond to you more quickly.

Some examples of good and bad subject lines:

Bad: Confusion about Lab 1
Bad: CSSE 490-01
Good: CSSE 490-01: Confusion about Lab 1

I welcome your suggestions for improving the course. Please tell me about things in the course that help you to learn, and things I might do to improve the quality of the course for you.

Electronic Distraction

I do my best to keep class interactive. With laptops and cell phones in class there are many more ways to become distracted. When these distractions disrupt class learning your "Course Citizenship" grade will suffer.

I strongly encourage you to turn off IM and email software and only use other software for things directly related to class.

Academic Integrity

Recall the Institute policy on academic misconduct:

“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”

Exams, labs, and quizzes will be done on an individual basis except when explicitly noted. The simple rule of thumb for individual work is:

Never give or use someone else’s code or written answers.

Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.

I encourage you to discuss the problems and general approaches to solving them with other students. However, when it comes to writing code, it should be your own work (or the work of your group if it is a group or partner assignment). If you are having trouble understanding how some library code works or pinning down a run-time or logic error in your program, by all means talk to someone about it.

If you use someone else’s ideas in your solution (or any other work that you do anywhere), you must:

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that I do not take lightly. Nor should you.

You should never look at another student’s solution to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.

Plagiarism or cheating will result in a negative score (i.e., less than zero) for the assignment or exam. Egregious cases will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem. So don’t cheat.

Professional behavior and its impact on your final Grade

Students are expected to behave professionally. A lack of professional behavior in a student’s interaction’s within a team, with the client, other stakeholders, instructor, teaching assistants or during in-class activities can result in a penalty grade. Depending on the nature or the egregiousness of the behavior, the penalty grade might be a reduction in letter grade or a F in the class.

This syllabus has been written and revised by Delvin Defoe.