Course Syllabus

Welcome to online CS290 Web Development! (Some links only-available to registered students)

I am Eric Ianni and I will be your instructor for this course. I have an experienced and professional TA team working with me to support you on your journey in Web Development. We will do our best to provide you an informative and encouraging course with a great learning experience. If you have any suggestions on this course, you're welcome to contact me anytime.

Topics

In this course, we will mostly talk about the front end web development skills and a few back end techniques. We will be covering topics like HTML, CSS, JavaScript, Node.js and Mysql. We will spend most of the time talking about JavaScript.

Tools 

There are no special tools required in this course. You can use your favorite code editor for the assignment in this course. Some of the most popular editors among students are Sublime Text, JSFiddle, and Visual Studio Code. I am personally partial to Emacs. You can develop your code locally and make it work on the flip for us to grade.

Course Structure

Each week's module will be posted ahead of time (on Thursday or Friday) for you to get started early. All the content including the learning goals and requirements, reading materials and lecture videos are put into one session and you will explore them by topics. 

  • Assignment/Activity:

Each week you will have one or two graded assignments/activities that are related to the skills covered in that week's contents and will due on Sunday night. You will learn mostly by writing the code on your own. The more you practice, the better you will learn.

  • Project:

You will do an individual project which is building a simple website from week 6 to week 8 using the skills you learn in this course and you have a lot of freedom to determine the theme of the website.

  • Exam:

There is a proctored final exam at the end of the term. The exam will be open from Monday to Thursday of week 11 for normal term and week 8 for the summer term. Please reserve your proctor as early as possible to make sure you can get the time you want.

  • Piazza:

All of the course discussions will happen on Piazza. We will check the forum every day. Sometimes, if the question is not about the assignment requirement, we will hold our answers for a while to involve more students in the discussion. You are always encouraged to post on Piazza and participate in the discussions. Students who make contributions to the discussions on Piazza will potentially earn extra credit at the end of the term.

  • Resources:

We will post some resources that might be used as supplementing materials in the resources module and we will update this page throughout the term.

    • TA online office hours:

    We will have several sessions available from week 1 to week 10. Office hour is the best time to get instant and detailed feedback on your code. Make good use of them and get most from it. If none of the time slots work for your schedule, let us know and we can make accommodations.

    My Expectations

    10 weeks will be very short for the web development since we have so many things to cover. It is my expectation that you keep up with your coursework and finish the assignments on time. More importantly, be honest to yourself. No cheating anytime.

    Please go over all the content in the "Start Here" module. Read the course policy carefully. Finish the course policy quiz and get full points to unlock week one module. There are some useful links under the resources module. Please check them out as well.

    Meet the instructor:

    Eric Ianni, Instructor

    • Email: iannie@oregonstate.edu 
    • Please always use your OSU email to contact me.  I will not respond to Canvas Mail.
    • You must include the tag "[CS 290]" in your email subject to get the quickest response from me. You should expect a response to emails within 48 hours. Emails sent over the weekend sometimes take longer to respond to.
    • Please post all course-related questions on the Piazza discussion board so the whole class may benefit from our conversation.  For grading questions, please post a private message on Piazza to the "instructors"; do not email the TA or myself directly for grading questions.

    Course Topics

    Download the syllabus here: syllabus_CS290_2019_spring.pdf

    This course is divided into three main sections which are largely addressed sequentially:

    Layout and Styling
    The first portion of the class focuses on the static layout and styling of a web page (HTML/CSS). For some, this may be a review if you have done web publishing in the past. There is quite a bit of information to take in here but the problems to solve are not that intricate.
    Client Side Interaction
    The second portion of the class focuses on JavaScript and making interactive web pages in the browser. Things like forms that will display an error message if a password is too short or creating a drop down menus are things that will be covered in this portion of the class.
    Server Side Interaction
    In this portion of the class, we look at using a very simple database to store data between website visits. The technologies we will be using this term are Node.JS and MySQL. In addition, we look at how we can track a user and data from page to page which is a critical first step in designing more complex systems like shopping carts for an online shopping website.

    Topics by Weeks

    Week

    Topic(s)

    Due

    1

    Web Overview and Intro to Tools

    HW1 Node.js and Git, Course policies quiz

    2

    HyperText Markup Language and Cascading Style Sheets

    HW2 HTML/CSS

    3

    Introduction to JavaScript

    Activity1 JS Environment, Activity2 JS Functions,    Activity3 JS Objects

    4

    JS Functions and Objects

    Activity4 Fixing Closure Loop, HW3 Higher-Order Functions and Objects

    5

    JavaScript and the DOM

    HW4 DOM and Events

    6

    JavaScript and HTTP (forms)

    Activity5 Ajax Interactions, Project Proposal

    7

    Intro to Node.js

    HW5 GET and POST checker

    8

    Sessions and HTTP

    Activity6 Practice, Project

    9

    Database Interaction

    HW6 Database interactions and UI

    10

    Wrap up

     

    Final

     

    Final Exam

    Here is the above chart in PDF form: weekly_schedule.pdf

    Textbooks

    Required: Eloquent JavaScript http://eloquentjavascript.net/

    Optional: Jon Duckett's "HTML and CSS design and build websites", ISBN-13: 978-1118008188, ISBN-10: 1118008189

    Assignments

    This course has three types of assignments:

    HW Assignment:
    You will have six assignments this term, each is given one week to finish (except the last one, you will have 12 days). You will write a website or make some functions working using required techniques to meet the constraints. The assignments will be graded on how well they meet the requirements.
    Activity:
    The activities are graded as pass/fail (10/0). Generally if 60%+ of the activity is correct you will get a PASS otherwise it will be a fail. For example, if the activity has two requirements and you don't do one of them you would only have 50% of the activity completed so would receive a 0.
    Project:
    This is a research-based project. You need to build a website based on the knowledge you learn in this course to meet some requirements.

    Exam

    This course has one proctored exam -- the final exam. It will take place from Monday to Thursday on the finals week.

    Grade Weighting

    • Activities/Exercise - 25%
    • Homework Assignments - 50%
    • Project - 10%
    • Final Exam - 15%

    Grading Policy

    Grade letter Percentage floor
    A 93
    A- 90
    B+ 87
    B 83
    B- 80
    C+ 77
    C 73
    C- 70
    D+ 67
    D 63
    D- 60
    F 0

    Syllabus Quiz

    Please don't forget to take the syllabus quiz so you can continue onto the learning modules: Course Policy Quiz

    Eric Ianni, Instructor

    • Email: iannie@oregonstate.edu 
    • Please always use your OSU email to contact me.  I will not respond to Canvas Mail. 
    • When you send me an email, you must include the tag "[CS 290]" in your email subject.
    • Office hours by appointment

    Sonam Gyanchandani, TA

    Trung Vu, TA

     

    Communication Policy

    Please post all course-related questions on the Piazza board so the whole class may benefit from our conversation.  Please sign up yourself in Piazza using the following link:

    piazza.com/oregonstate/spring2019/webdevelopmentcs_290_401_s2019

    Please use the email addresses above to contact the instructor and TAs. You should expect a response to emails within 48 hours. Emails sent over the weekend sometimes take longer to respond to.

    For grading questions, please post a private Piazza message to the "instructors"; do not email directly for grading questions.  You should expect your grade to be posted after one week of the due time.  If you submit the assignment late, it may take longer for your grade to be released.

    Please don't use Slack to ask questions on grades.

    This class also has an official OSU Slack which is found here: class-cs290-401-sp19.slack.com. You have been automatically enrolled in the workspace. Please see the OSU Slack page for more information about how to use Slack.

     

    In this course, JavaScript will be used for both the front end and the back end (with Node.JS), so this will end up being the primary focus of the class.

    The book we will be using for JavaScript is Eloquent JavaScript a free online edition is here (http://eloquentjavascript.net/ ).

    Physical copies exist if you prefer and can be ordered from Amazon. There will be required reading from this book along with programming exercises.

    Students in the previous terms also suggested this book for JavaScript: You don't know JS  Links to an external site. It would be a great book to read if you are new to JavaScript.

    HTML/CSS is another component to this class. Currently the books on the subject are a bit of a mess. The transition to HTML5 is pretty much done but there is a delay between a technology being adopted and publishers actually getting books on the topic to market. In addition it is a less complex topic than many other programming languages.  So I am not requiring any books on the subject, instead I will offer several online resources.  If you really want a book, I would suggest Jon Duckett's "HTML and CSS design and build websites". It does not have great HTML5 coverage, but is very visual in its presentation of material which can be a big benefit.

    Besides the textbooks listed here, we also have a resource page on Canvas: Useful links

    There are many useful links organized in this page.  I add links that students find to be useful and post on Piazza to this list every term.  You should check this list for more resources.

     

    Reading List

    Here is the reading list of the whole term if you want to read ahead:

    Week1: Eloquent JavaScript Chapter 13

    Week2:Mozilla's HTML Intro  

    https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Introduction

    Mozilla's CSS Intro https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started

    Week3: Eloquent JavaScript Chapters 1-4

    Week4:Eloquent JavaScript Chapters 5 and 6

    Week5:Eloquent JavaScript Chapters 13, 14, 15

    Week6:Eloquent JavaScript Chapter 18

    Week7: http://expressjs.com/

    https://github.com/ericf/express-handlebars

    http://handlebarsjs.com/

    Week8: https://github.com/expressjs/session

    https://github.com/request/request

    Week9: The official documentation for Node's MySQL module.

    https://github.com/felixge/node-mysql

    W3Schools SQL http://www.w3schools.com/sql/default.asp

    Course Summary:

    Date Details Due