WDD 330 Syllabus


Description

This course is designed to give students the skills required to create web applications using HTML, CSS , and JavaScript. It is intended to help the student learn to do this without the aid of third-party frameworks or libraries. Because of this, the course focuses on how to solve larger, ill-structured business problems by designing and creating web applications.

Prerequisites

WDD 230 - It is expected that you have learned and mastered the information made available to you in WDD 230 and its prerequisite courses. If you feel rusty, the following is a more specific list of topics you would have been introduced to in those courses that will be important that you are comfortable with, and some sources to use for review before the course begins.

  1. Make sure you have a good understanding of variables, scope, and template literals in JavaScript. If you need a review in any of those areas read Grammar and Types.
  2. Make sure you have a good understanding of Array methods such as .forEach(), .map(), .filter(), and .sort(). If you need a review either read 15 Must-Know JavaScript Array Methods OR complete the Array Cardio Day 1 lesson from JavaScript30.com.
  3. Make sure you recognize and can use the three main function forms in JavaScript (declaration, expression, arrow). You should also understand the concept of callbacks. If you need a review you can read MDN Functions and JavaScript Callbacks.
  4. Make sure you are comfortable with basic DOM manipulation with JavaScript. If you need a review you can read MDN Manipulating Documents.
  5. Make sure you are comfortable with basic event management with JavaScript. If you need a review you can read MDN Introduction to Events.
  6. You might find it helpful to run through this short book: Doing Stuff with Web Things. It provides a basic review of HTML, CSS, and JS used together. It is available in PDF form along with all of the code examples and support material for the book in a downloadable zip file from GitHub.

Software and Resources

We will be using Git and Github extensively throughout this course so make sure you have an account. You will also want a good text editor installed on your computer. If you don’t have one you are already invested in I would recommend VS Code (https://code.visualstudio.com/): Free, Mac/Windows/Linux, a good general purpose editor with great Git support.

Course Structure

Overview

This class has an unusual course design. It is designed introduce you to the tools, workflows, and problems common in modern Frontend Development. We will spend the first 9 weeks of the course in teams working on a project modeled off of real world projects. The goal is to create an environment where the instructor is your mentor rather than a lecturer, and your team is a source of strength instead of frustration. Using HTML5, CSS3, and JavaScript you will explore technologies and use them to resolve problems that arise naturally. You will also learn to find, evaluate, and select solutions to those same problems through creating Single Page Web applications.

For weeks 10-14 of the course you will further apply what you have learned by designing and completing a project of your choosing. This project will be with your team.

During the first nine weeks your time will be spent on a weekly reading assignment, a weekly Team activity, and additional tasks (found in a Trello board of which each team will make a copy) that add more functionality to our site. Each person in the team should have a goal of completing at least one card (task) per week.

  1. Reading assignment: 1-2hrs
  2. Team activity: ~2hrs (If face-to-face 1hr of this will be classtime)
  3. Trello Cards: ~3hrs
  4. Professor led instruction: ~1-1.5hrs (either scheduled class or a weekly recorded office hour if online)

Outcomes

By taking advantage of the opportunities this course presents, you will develop fundamental knowledge and skills in computing and technology and improve your professional possibilities by:

  1. Becoming more efficient at applying your innate curiosity and creativity,
  2. becoming more dexterous at exploring your environment,
  3. becoming a person who enjoys helping and learning from others,
  4. using a divide and conquer approach to design solutions for programming problems,
  5. finding and trouble shooting bugs you and others will have in the code you write, and
  6. developing and debugging HTML, CSS, and JavaScript programs that use medium complexity web technologies.

These outcomes support both the CIT Department and BYU-Idaho student learning outcomes. The activities and assessments for this course are designed to give you opportunities to achieve these outcomes and evaluate you against them. If you desire a different set of evaluations and assignments, you may propose them to the instructor (during the first or second week of the semester) but your proposal must cover ALL of the course's outcomes in significant ways and to a significant depth. Do not propose a "check list" of do-once-and-forget activities. These will not be approved.

Learning Model Architecture

Prepare:

Each week you will work directly with your team. You help your team become successful if you come prepared for these team meetings. This preparation includes thinking about the technologies you are exploring, completing the assignments given during the previous team meeting, and doing the necessary research to plan the next steps for your team. Just as in life, if you do more than fulfill the minimum requirements assigned to you, you will be more successful in your team and in the class. Magnify your professional calling.

Teach One Another:

Team meetings and a collaborative environment have been established to enable each of you to draw from the strengths of others so that your weaknesses can become strengths. This requires effort on the part of both the knower and the learner so that 'both [may be] edified' (see Doctrine and Covenants 50:22).

Ponder/Prove

Pondering is integral to success in both this course and life. You should be pondering and reflecting not only on what you are learning but how you are learning it. Self-understanding is vital to professional life. It is also fundamental to our eternal exaltation.

Proving is also integral to success. You should prove what you think you know through experimentation. Just finding an example of some principle on the web or from your team is insufficient for successful learning. You must be playing with and generating your own examples to understand how technologies work and what they do. This way you become a blessing to yourself and your current and future team members.

Grading Policy

At the end of each challenge, you have an opportunity for me to evaluate, with you, where you are in your learning and the accomplishment of the outcomes for the course. You must request this review. I will not force a review with you if you do not request one. You must be proactive in scheduling this evaluation. The results of this evaluation will not be recorded or become part of your grade.

At midterm and again at the end of the semester I will ask you to turn in your ranking of yourself on the course outcomes, with a portfolio of your work to back yourself up. I recommend building this as you go. Your final grade will be based off of these two artifacts.

From the University Catalog:

Standards

Be responsible for your own education. Take responsibility to complete your homework as assigned. Be prepared to accept the consequences if you do not.

It is important that you prepare yourself each week to contribute actively in learning with your fellow students. Be respectful of each other’s time and be prompt to any meetings that may be scheduled.

University Policies