Web Programming
Web Programming
com/cmpsci-326/syllabus#week-03-introduction-to-bootstrap
Course Contents
Unit-1 Introduction to Internet: What is Internet? : A Network of Networks, Gateway;
History of the Internet: Connecting to the Internet, Internet Service Providers, DNS
Servers, Connection Types, Modems, Connecting to the Internet using Dialup
Networking; Web Browsers; Using Web Browser; How does the Internet Work?; Routers;
What you can do with the Internet; Origins and Development of the Internet; How
Internet Standards are Developed; Moving Data across the Internet: Internet Addresses
Unit - 2 - The World Wide Web: Introduction to world wide Web, Web Pages and
Contents, Web Clients, Web Servers, Web Applications, Websites – Home Pages: Web
Site Development ; How to Builds Web Sites? , Web Content Authoring, Web Graphics
Design, Web Programming, Webserver Administration, Protocols, Search Engines &
Search Engines, Plug-ins, FTP Applications
Unit-3 Internet Services & Internet Security: Electronic Mail, FTP, Newsgroups, Other
Internet Services, Security and the Internet, Security Tools, E-commerce Security Issues,
TCP/IP, Domain Names and IP addressing, Host Names, Domain Names, Addressing -
Reserved IP addresses.
Unit-4 HTML – URI, LIST, Hyperlinks: History of HTML, Introduction to URI:
Fragment Identifier & Relative Uniform Resource indicator, Standard Generalized
Markup Language, Structure of HTML document, Switching between your Editor and
Browser, Structuring Web Page, Paragraph and Line Break Tags, Adding Comments,
Formatting your Text; Creating Lists: Ordered List Tags, Unordered List Tag & Nesting
Lists: Controlling How Ordered Lists are displayed, Creating a Multilevel Outline,
Using Start and Value Attributes in an Ordered List, Controlling the Display of
Unordered List, Creating Definition List; Creating Hyper Text Links, Linking to a
File or Data Object, Linking to NON-WWW Files, Linking to a Place in the Same HTML
File, Linking to a Place in Another HTML File, Creating Link Lists, Creating a Simple
Link List;
Unit-5 HTML – Images, Links, Rules, Address Tag and Text: Inserting Images: Using the
Align Attribute in Inline Graphics, Setting the Height and Width of an Inline Image;
Creating Image Links; Horizontal Rules: Changing the Height of a Horizontal Rule,
Changing between Shaded and Un-shaded Horizontal Rule, Changing the Width of a
Horizontal Rule, Setting the Alignment of a Horizontal Rule; Address Tag; Working with
Text: Text Alignment, Changing Font Sizes and Colors: Setting Font Sizes, Setting the
Base Font, Using the Small and Big tags, Changing the Font Color; Using a Background
Image; Marquee Tag
Unit-6 Web Page Authoring using HTML: Tables: Creating Columns and Rows, Adding a
Border, Adding Column Headings, Adding Spacing and Padding, Adding a Caption,
Setting the Table Width and Height, Aligning Cell Contents, Setting Column Width,
Centering a Table, Inserting an Image, Spanning Columns & Spanning Rows, Setting
Font Size and Colors, Assigning Background Colors; Frames:Percentage dimensions,
Relative dimensions, Creating two rows Frames, Creating two columns frames, Creating
two rows and the second row containing two columns; Forms: What is Form?, Form Tag,
Method, Action, Input Tag, Type Attribute: Check box, Hidden, Image, Radio, Reset,
Submit, Text; Other <INPUT> attributes: Value, SRC, Checked, Size, Max length,
Align, Select tag, Text Area, CGI, Get, Post
Unit-7 Cascading Style Sheets (CSS): Properties Table:Using the style Attribute,
Creating Classes and IDs, Generating External Style Sheets, Typography, Consistency,
Types of styles, Specifying class within HTML document, Style placement: Inline style,
Span & div tags, header styles, Text and font attributes: Font Vs CSS, changing fonts,
text attributes, Advance CSS properties: Backgrounds, Box properties and Positioning
Unit-8 DHTML: DHTML Overview & Definitions, Dynamic Images, Image Rollovers,
Slide Shows, Dueling DOMs, The Document Object Model, The Navigator 4.x DOM, The
Internet Explorer DOM, Dealing with DOM Differences, Creating the Core DHTML
Library, The Custom Object Technique, Adding Methods to a Custom Object, Adding
Secondary Methods and Properties & Active Element Object, Moving Elements on the
Page, Moving in Geometric Shapes
Unit-9 PHP – Part-1: Introduction to PHP, History of web programming; how PHP fits
into the web environment, PHP Installation and configuration, Hello World"; syntax,
Variables, operators, flow control structures, More language basics; using GET and POST
input, working with HTML forms; built-in and user-defined functions; variable scope;
using the PHP manual, getting help, Input validation, string manipulation and regular
expression functions; date and time functions
Unit-10 PHP – Part-2: Code re-use, require(), include(), and the include_path; file system
functions and file input and output; file uploads; error handling and logging; sending
mail, HTTP headers and output control functions; HTTP cookies; maintaining state with
HTTP sessions; writing simple web clients, Introducing MySQL; database design
concepts; the Structured Query, Language (SQL); communicating with a MySQL backend
via the PHP, MySQL API, More MySQL database access; graphic manipulation with the
GD library, Introduction to Objection Oriented Programming; Using PEAR packages,
More PEAR packages; more OOP; the Smarty template engine, Parsing XML; PHP 5-
specific features
Unit-11 JavaScript Programming – I: Introduction to JavaScript: Utility of JavaScript,
Evolution of the JavaScript Language, JavaScript Versions and Browser Support,
Differences Between Client-Side vs. Server-Side JavaScript, Statements and Operators,
Variable Declarations, Assignment Operators and Statements, Arithmetic Operators,
Logical Operators, Comparison Operators, String Operators, Conditional Operators,
Operator Precedence; Implementing Control Constructs: Conditional and Looping
Constructs, if else Statements, do while Statements, for in Statement, switch Statement;
Implementing Functions: Defining Functions, Calling Functions, Passing Arguments,
Local vs. Global Variables, Using the Return Statement, Nested Functions; JavaScript
Objects: The JavaScript Object Model and Hierarchy, JavaScript Object Properties,
Object Methods, New Keyword, This Keyword, Creating New Object Instances Using
Constructor Functions, String, Date and Array Objects, Construction of Custom Objects
with Individual Properties and Methods
Unit-12 JavaScript Programming – II: Fundamental JavaScript Directives: In-Line
JavaScript, Linking Web Pages to External JavaScript Files, JavaScript Using <script>
Tags and Attributes, Utilizing the <head> Tags <noscript> Tags; Implementing Arrays:
Why array need in Scripting, Creating Arrays, Reading and Writing to an Array, Array
Methods and Properties; The delete Keyword: Introduction to Server-Side JavaScript,
Purpose of Server-Side JavaScript, ASP and Microsoft Server Architecture, Netscape's
Livewire Run-Time Engine, Server-Side Objects; Cookies: Introduction to Cookie, Uses
of Cookie, Components of a Cookie, Cookie Controversy, Using Cookies on a Web Page,
Cookie Examples; Common Applications: Form Validation and Testing, Specific Form
Methods and Event Handlers, User Interaction, Local Form Processing, Creating New
Windows, Writing to the Window Object, Browser Awareness Using the Navigator
Object, Affecting the Browser Itself, Interactive Graphics; Event Handling: Event-Driven
Programming Model, How JavaScript Handles Events, Handling Link Events, Handling
Window Events, Handling Image Events, Handling Form Events, Setting Event Handlers
In-Line or Referencing
Unit-13: XHTML – I: Understanding the World Wide Web: The relationship between
browser and server, The roles of HTML, HTML, CSS, and other technologies used in
Web development; XHTML page framework tags: <html> and </html>, The role of the
<head>...</head> region, The role of the <body>...</body> region, Adding a title, meta
keywords, and meta description tags; Text formatting and layout with HTML: Headings
and subheadings, Paragraph text (including how to bold, italicize, and underline text),
Bulleted and numbered lists, Using attributes to align text, Setting up text regions with
<div>...</div> and <span>...</span> tags, Padding vs margin, Floats; Working with
images : Understanding the GIF, JPEG, and PNG image formats (and when to use them),
Positioning images on the page, Flowing text around images, Using a <div> or <span>
region to position an image
Unit-14: XHTML – II: Using tables to display grids of data: Positioning tables on the
page, Turning grid lines on and off, Customizing the table's appearance, Creating table
heading and table data cells, Configuring cells to span multiple rows or columns; Linking
it all together: Creating links to other pages on your site, Creating links to pages on other
sites, mail to: links (for sending email), Techniques for automatically filling in the
subject, cc:, and bcc: fields, Creating links to specific positions within the same page and
other pages, Handling link management challenges; Fill-in Forms: The role of forms and
how they interact with server-side programs, Techniques for effective form design,
Creating text fields, text areas, password fields, and hidden fields, Designing radio button
and checkbox sets, Adding lists and menus to your forms, Finishing the form with submit,
reset, or image buttons, Discussion of how JavaScript can improve forms (by validating
user input, performing calculations on entered numbers, controlling cursor tabbing order,
etc.).
Unit-1 HTML Basics: HTML Introduction, HTML Elements, Attributes, HTML
Headings, Paragraphs, HTML Formatting, Fonts, Styles, HTML Links, Images, Tables,
HTML Lists, Forms, Frames, HTML Colours, Colornames, Colorvalues, HTML Quick
List.
Unit-2 XML Programming – I: Introduction, The Need for XML, Structured Data and
Formatting, Advantages of XML, SGML, XML, and HTML, World Wide Web
Consortium (W3C) Specifications and Grammars, XML Applications and Tools, Creating
and Viewing XML Documents, Transforming XML Documents, XML Document Syntax,
Validating XML Documents with DTDs, XML Namespaces.
Unit-3 XML Programming – II: Introduction, Transforming XML Documents with XSLT
and XPath, Formatting XML Documents with XSL-FO, Purpose of XSL Formatting
Objects (XSL-FO), XSL-FO Documents and XSL-FO Processors, XSL-FO Namespace,
Page Format Specifiers, Page Content Specifiers,
Unit-4 XML Programming – III: Validating XML Documents with Schemas, Introduction
to Simple Object Access Protocol (SOAP), SOAP's Use of XML and Schemas, Elements
of a SOAP Message, Sending and Receiving SOAP Messages (SOAP Clients and
Receivers), Handling SOAP Faults, Current SOAP Implementations, Introduction to Web
Services: Architecture and Advantages of Web Services, Purpose of Web Services
Description Language (WSDL), WSDL Elements, Creating and Examining WSDL Files,
Overview of Universal Description, Discovery, and Integration (UDDI), UDDI Registries
(Public and Private), Core UDDI Elements, Deploying and Consuming Web Services,
ebXML Specifications ebXML Registry and Repository, Introduction to the XML
Document Object Model (XMLDOM)
Unit-5 XML applications: B2B Scenarios, e-business system involved: delivery, sales,
cross company communication: replacement for EDI, the document as the application,
XML and relational databases, XML and dynamic Web publishing, benefits of XML
schemas to applications, XML processors enforcing structure, application access to
document structure, fixed values, channels,
Unit-6 Ajax - Asynchronous JavaScript and XML – overview: Web Applications - Pre
and Post Ajax, Ajax in the Real World, Alternatives to Ajax, XML In A Nutshell, Syntax,
Rules, JavaScript In A Nutshell, Primitive Data Types and Reference Types, Variables
Loops, Function Definition and Function Call, Objects, Expressions, Operators and
Escape Sequences, Document Object Model (DOM), Window Object, HTML & XML
DOM, Node, Element, Accessing Element Nodes, Inner HTML, Properties of Element
and Text Nodes, Node Attributes Node Name & Node Value, Event Handling, Key Word
– this, Whitespace, Interpretation - Browser Differences, Removing Nodes, Creating New
Nodes, Node Methods
Unit-7 Ajax - XML Http Request Object: XML Http Request Instantiation, XML Http
Request open() Method, Asynchronous Vs Synchronous Requests, Callback Function,
ready State, CSS In A Nutshell, Syntax, Units, Selectors, Positioning properties, float
Property, Types of Positioning 3D, XML and Ajax, Creating a DOM Document with
JavaScript, load XML, Receiving XML Responses from the Server, Passing XML to the
Server 90, Different Server Side Technologies - an overview, Frameworks and Toolkits -
an overview, Some Popular Frame Works - in brief
Unit-8 AJAX - Object-Oriented JavaScript: Multiple Simultaneous Asynchronous
Requests, Prototype, Extending Built-in Objects, Object-Oriented XML Http Request,
Refactoring the Creation and Handling of XHR Http Request, Model-View-Control
(MVC), Design Patterns, MVC Examples, Ajax Web Application, JavaScript Object
Notation (JSON), JavaScript Object and Array Creation Using Literals, JavaScript
Objects in Arrays & Arrays in Objects, JSON Syntax, JSON Parsers, JSON Data Transfer
Between Client and Server Autosuggest example
Unit-9 AJAX - XSLT: XSLT, Overview, XSLT in the Browsers, Sarissa, Advantages and
Disadvantages, XPath – Overview, Drag and Drop, Overview, Scriptaculous, Draggable
Options, Droppables, Drag and Drop, Ajax and Scriptaculous, Apendix, Download /
Install Software –Wamp, Regular, xpressions, Some characteristics of regular expressions
Metacharacters, Non-assertions and Quantifiers, Assertions and Quantifiers, XML Basics,
XML Benefits, XML Parsers, Content Management, Web Services, A Document Type
Declaration, Elements Attributes, CDATA, Special Characters
Unit-10 J2ME: Java Environments Comparison, J2ME (Java 2 Micro Edition), J2SE (Java
2 Standard Edition) & J2EE (Java 2 Enterprise Edition) J2ME specifics, ME components:
KVM, J2ME, CLDC, MIDP - Comparison of different ME platforms, Profiles - Overview
of profile system, Architecture - How the J2ME works, Differences between J2ME
environments - Comparisons between J2ME and Personal Java, MIDP, Mobile
information device profile, Creating MIDP applications, Midlet suites and deployment,
MIDP GUI, Graphical User Interfaces with MIDP, Displays, Commands, Pointers,
Screens, Animations and drawing, Data structures: Storing data in Java, Hash table and
Hash Map, Vector and List, Comparison between different types, Inner classes, Using
inner classes, Types of inner classes, Anonymous, Inner, Member, Static, Exceptions, IO
and Networking, Error handling, Streamed IO, Socket IO (TCP/IP), J2ME, IO,
Connector architecture, Networking with HTTP, Threading, Creating threads in Java,
Synchronization
Unit-11 Introduction to HTML5: HTML5 - New standard for HTML, XHTML, and the
HTML DOM, How Did HTML5 Get Started? Rules for HTML5, New Features, Some of
the most interesting new features in HTML5, Browser Support, New Elements in
HTML5, New Markup Elements, New Media Elements, The Canvas Element, New Form
Elements, New Input Type Attribute Values, Video on the Web, Video Formats, How It
Works, All <video> Attributes
Unit-12 HTML5 – Audio and Canvas: Audio on the Web, Audio Formats, How It Works,
All <audio> Attributes, HTML5 Canvas, What is Canvas? Create a Canvas Element,
Draw With JavaScript, Understanding Coordinates, More Canvas Examples, HTML5
Web Storage, Storing Data on the Client, The localStorage Object, The sessionStorage
Object, HTML5 Input Types, HTML5 New Input Types, Browser Support, Input Type –
email, Input Type – url, Input Type – number, Input Type – range, Input Type - Date
Pickers, Input Type – search, Input Type – color,
Unit-13 HTML5 Form Elements and Attribute: HTML5 New Form Elements, Browser
Support, datalist Element, keygen Element, output Element, HTML5 Form Attributes,
HTML5 New Form Attributes, Browser Support, autocomplete Attribute, autofocus
Attribute, form Attribute, Form Override Attributes, height and width Attributes, st
Attribute, min, max and step Attributes, multiple Attribute, novalidate Attribute, pattern
Attribute, placeholder Attribute, required Attribute: HTML5 Tag Reference, HTML5
Global Attributes, HTML5 Event Attributes, Global Event Attributes, Window Event
Attributes, Form Events, Keyboard Events, Mouse Events, Media Events
Unit-14 WAP Simulator for Mobile Phones: Introduction, WAP toolkit software includes:
WML and WML Script encoders, phone simulators, WML Deck and Card, WML
Document Structure, Character data, WML Entities, Prolog, XML Declaration and
Character Encoding, Comments in WML, Line Breaking in WML, Paragraphs and Line
Breaks, Text Formatting, WML Tables, Wireless Bitmap (WBMP), Links, <anchor> tag,
<a> tag.
Description
The World Wide Web was proposed originally as a collection of static documents inter-
connected by hyperlinks. Today, the web has grown into a rich platform, built on a variety of
protocols, standards, and programming languages, that aims to replace many of the services
traditionally provided by a desktop operating system. Topics will include: producing dynamic
content using a server-based language, content serving databases and XML documents, session
state management, multi-tier web-based architectures, web security, and core technologies
including HTTP, HTML5, CSS, JavaScript, and SQL will be emphasized. This course will also
study concepts and technologies including AJAX, social networking, mashups, JavaScript
libraries (e.g., jQuery), and web security. This course is hands-on and project-based; students
will construct a substantial dynamic web application based on the concepts, technologies, and
techniques presented during lecture. This course satisfies the IE Requirement. You must be a
junior or senior to take this course. 3 credits.
Course Objectives
To learn the nature of the web.
To understand the structure of the Internet and the Web.
To study the general notion of protocols.
To understand the TCP/IP protocol and understand its use in the web.
To understand and apply the HyperText Transfer Protocol (HTTP).
To study and apply the HyperText Markup Language (HTML).
To explore the Document Object Model (DOM).
To understand and apply asynchronous and event-based programming style.
To study and apply the basics of Cascading Style Sheets (CSS).
To learn and apply CSS frameworks such as Twitter Bootstrap.
To learn and understand the fundamentals of the JavaScript programming language.
To learn the client/server model.
To understand stateless versus stateful protocols.
To understand connectionless versus connection-oriented protocols.
To explore server-side JavaScript programming.
To explore client-side JavaScript programming.
To understand and apply the Model-View-Controller (MVC) pattern.
To understand server-side routes.
To understand and apply session state.
To investigate and apply document-oriented databases.
To learn and apply data interchange languages (JSON/XML).
To understand and apply RESTful APIs.
To understand Single Page Apps (SPA).
When you leave this course you should be fully capable of implementing your own web
application from scratch.
Course Assessment
Student knowledge of the course material will be assessed by the following categories:
The semester team project will begin early in the semester and will be submitted in total at the
end of the semester. At various points during the semester your team will be required to submit
aspects of your project to be reviewed. These checkpoint team project assignments will help
guide you and your team towards a successful project. Individual contributions to your team
project will be reviewed through commits to the version control system that your team will be
required to use. These assignments will be submitted through a version control system that you
will be required to use.
The workshop assignments will be reading/tutorial-based assignments that will help you as an
individual understand the material being covered so you will be a capable contributor towards
your team project. These assignments will be submitted through a version control system that
you will be required to use.
Participation will be measured through the Readiness Assurance Process (RAP) and possibly I-
clicker based questions during class. The RAP will follow a standard format
(https://goo.gl/GoYElb) that helps you prepare for a class. In addition, it will give you and your
team an opportunity to discuss questions and answers that will encourage you to explore the
material and prepare you for workshops. We will drop two RAP and I-clicker scores at the end of
the semester.
There is no opportunity for extra credit in this course. Unless otherwise specified, so do not
ask! The rough breakdown of percentages and final grades for this course are A (93-100), A-
(90-92), B+ (87-89), B (83-86), B- (80-82), C+ (77-79), C (73-76), C- (70-72), D+ (67-69), D
(60-66), F (0-59). We do not scale grades.
Course Structure
This course consists of approximately 24 class meetings. As this class gathers in a team-based
learning (TBL) classroom it will not follow the standard lecture format. Rather, our time will be
spent between presenting material and working on so called “workshops”. Each workshop is
carefully designed to guide you through the material in the course. In addition, you will be
expected to participate in class discussions and answer I-clicker polls and questions. You will be
required to do assigned reading in preparation of the workshop in class and complete the
workshop for submission outside of class. Much of the assigned reading is the actual workshop
itself and is vital for your successful completion of the course. My primary role as the instructor
will be to meet with groups during the workshops to assess your understanding of the workshop
and to help guide you to successful completion.
Late Policy
Assignments that are submitted late will receive a 10% penalty for each 24-hour period after the
due date of an assignment up to 72 hours (3 days). Assignments will not be accepted after the 72
hours. If there are extreme circumstances (medical) that prevent you from submitting an
assignment on time a scanned note (e.g., doctor’s note) should be sent to the instructor of the
course before or on the due date of an assignment. Late assignments because of other activities
such as interviews, conferences, or other personal endeavors will not be accepted. It is your
responsibility to manage your own time.
Communication
We will be using Piazza as the primary mode of communication in this course. You should direct
all your questions about the course and its material to Piazza. The course staff will have assigned
times during the week, Monday to Friday, to respond to your posts. Do not expect your posts to
be answered over the weekend. Although we will try to answer as many questions as possible, it
will often be the case that we can’t answer all of them. You are encouraged to answer questions
posted by other students as well as posting useful information that you think other students
would benefit from. We will look at your participation (number of instructor endorsed questions
and answers) on Piazza at the end of the semester to determine tie-breaking grades (i.e., C- to a
C, B+ to an A-).
Piazza provides support for “folders” for categorizing posts. There will be several folders of
interest to you. We will provide folders that correspond to each workshop and startup
assignment. In addition, we will include each of the following folders that you should use to post
privately to instructors in the course:
If you post to any of these folders, please attach any relevant documentation or assignment
submission information so that the course staff can provide an effective response to your request.
For all other requests or inquiries regarding the course not covered by the above Piazza folders
you should email the instructor at [email protected].
Attendance
You should attend every lecture. If you miss a class, talk to a friend who was present, and check
the course website for course announcements and schedule. You are responsible for everything
we tell you in class, regardless of whether we post it to the course website. Your participation in
class is an important contribution to the success of this course. You are responsible for asking
questions, offering comments, helping other students, and completing any in-class exercises or I-
clicker questions/polls.
Team Policies
The largest component of this course is the semester team project. The team formation will occur
during the first couple of weeks of class. You should discuss topics such as prior experience,
course background, goals for this course, workload, and schedule for the semester. Your team
will be required to find blocks of time during the week to work on the team project to a
successful completion. We expect all team members to contribute their fair share and we expect
to assign the same grade to all members of the team. Members who contribute less may receive a
lower grade on the team assignment; non-contributing members will receive a 0. In case of
disputes the teaching staff may interview team members on the project design and
implementation. We will also use the commit log in your team project version control system
repository to evaluate activity. All team members will be required as part of the assessment of a
team project assignment to actively commit to the team repository.
Managing team dynamics and using each team member’s time and talents effectively can be as
difficult as solving the project. We are happy to offer advice on how to handle these issues. Be
open and candid with your team about any potential problems early on so that your team can
plan around such problems and not fall behind. A sure way to make your team upset at you is not
finishing your part of the work at an agreed-upon deadline and not informing them about the
problems early enough for them to help.
Academic Honesty
It is very important in all courses that you are honest in all the work that you complete. You can
collaborate on your team project; however, workshop assignments must be completed by you
alone. If you do not work alone on workshop assignments you are doing a disservice to yourself,
the instructors for the course, the College of Information and Computer Sciences, the University
of Massachusetts, and your future. We design our courses to provide you the necessary
understanding and skill that will make you an excellent computer scientist. Assignments are
designed to test your knowledge and understanding of the material. Plagiarism and academic
honesty of any sort may seem like an easy way to solve an immediate problem (which it is not),
however, it can have a substantial negative impact on your career as a computer science student.
There are many computing jobs out there and many more people working hard to get those
positions. If you do not know your stuff you will have a very difficult time finding a job. Please
take this seriously.
We will carefully review your submissions automatically and manually to verify that “cheating”
has not taken place. If you are suspected of plagiarism, we will follow an informal path to
determine if academic dishonesty has taken place. If you are found guilty you will receive an F
for the course and it will go on your permanent record at UMass. This will disrupt your schedule
for completing courses and may lead to you not completing your degree in a timely fashion. You
should carefully review the Academic Honesty Policy, Avoiding Plagiarism, and the Academic
Honesty Flowchart to understand what academic honesty is, how you can avoid it, and the
procedure we will follow if you are under suspicion.
Every assignment implicitly includes a “contract” that you sign virtually by submitting your
assignment. By “signing” this contract you indicate that you have read all the documents on this
website and any links to academic honesty associated with the university. Your signature
indicates that you completely understand the policies in place and that you have not plagiarized.
Incompletes
An incomplete in this course will only be granted during the third to last week of the course
(4/10/2017 – 4/14/2017) with a maximum of two assignments not completed. Incomplete
requests will not be accepted before or after that time period. If you fail to contact the instructor
during that time your request will not be granted. The incomplete period will be announced in
class during this time.
Schedule
Below is the starting schedule for the course. There may be circumstances when the schedule
must be changes or updated to ensure the best delivery of the material in this course. You will be
responsible for referring to this schedule throughout the semester, updating your own calendar of
important events and assignments, and referring to Moodle to ensure that you have the most up-
to-date information and schedule. It is ultimately your responsibility to keep up with the course
to guarantee your success.
Overview
The way web software is built has been rapidly changing. As use of the world wide web has
shifted from information presentation to information gathering to direct customer sales (e-
commerce) to enterprise applications, the amount and complexity of software has steadily been
increasing. Many new technologies and frameworks have emerged everyday. Have you ever
wondered what technologies, frameworks, or architectural styles you should use? What
programming languages you should be familiar with? After you graduate, what languages will be
popular or will be in great demand? How will you keep up with web development technologies?
According to the UVA CS Industrial Advisory Board meeting, companies prioritize the foundation
of web development over any specific technologies or frameworks.
This course will help you see how fundamental concepts of web development can be applied to
develop reliable and usable web software regardless of the technologies, languages, or
frameworks. Although we put our emphasis on the concepts, you will demonstrate your
competence in web development by developing dynamic web software with several commonly
used programming languages and technologies.
You will work on user interface design, the front end development, back end development, and
web-based information retrieval and processing. Over the semester, you will work on each
programming assignment with a partner. Each assignment will be a step in creating a web
application. You will be able to choose what to build, with the assignment constraining the
features that must be used. By the end of the semester, you will have built a dynamic web
application. With a large portion of the process that involves team work, interpersonal skills and
conflict management, and time management, this course will help you practice and prepare for
your professional development.
After completing this course, you will understand and be able to design usable graphical user
interfaces and implement them on the web, build software that accepts information from users
across the web and returns data to the user in user-appropriate presentation, and construct
software that interacts with database engines and several forms of persistent data.
Learning objectives
Demonstrate an understanding of the client-server, message-passing computing
models, and the quantitative engineering principles for how to build web-based software
user interface by developing usable, reliable, and effective web applications
Realize that usability is more important than efficiency for almost all modern software
projects, and often the primary factor that leads to product success
Apply usability concepts to real-life scenarios and suggest potential improvement from
an engineer’s perspective
Evaluate your project for compliance with client requirements and the usability
evaluation criteria
Collaborate with your project partner professionally and contribute fairly
Develop web software using specific technologies including HTML, CSS, bootstrap,
JavaScript, Ajax, Angular, PHP, XML, JSON, and MySQL
Prerequisite
You must have passed CS 2150 (Program and Data Representation) with a grade of C- or
better. Programming skills are required and you are expected to know HTML or learn on your
own. You are expected to have ability to pace yourself on a semester-long project and be able
to attend class regularly.
While you are required to have programming experience and knowledge of data representation,
I am aware that you come in with varied experiences in web development. You will be guided
through the fundamental concepts of web development and web programming. You will also
have the opportunity to explore modern approaches and technologies in web software
development.
Reading
You do not have to purchase any textbook for this course, unless you want to (the book
information will be provided on the handout). Where appropriate, additional references that can
be relevant for further reading will be provided on the Schedule page.
You are expected to read the relevant material before class meeting. The schedule for the
readings is given on the Schedule page. The lectures may not cover everything in the readings
and will often include material not found in the readings (based on class discussion).
Learning activities
To facilitate your learning process, the course structure consists of five main activities: in-class
exercises, hands-on activities, homework assignments, quizzes, and final exam.
1. In-class exercises
Three main purposes of this activity are to help you to (i) understand the underlying concepts
and apply them to develop a web application, (ii) introduce specific languages or technologies,
and (iii) get ready to work on homework assignments.
You are encouraged to work in small groups, allowing peer learning and imitating industrial
software development and quality assurance scenarios. Each exercise is designed to get you to
think about some specific aspect of the material we are learning that day. All exercises are
hands-on and practical and most will require programming.
Throughout the course, you will have multiple opportunities to explore the usability of existing
web software and share your opinion through discussion and writing. You will also experience a
variety of web development concepts.
At the end of some classes, we will have a "five-minute paper." You will be asked to respond in
written form to a simple question related to the day's discussion. This is to help you to assess
your understanding and allow me to clarify any doubts you might have.
We will have in-class exercises during most Thursdays and some Tuesdays. Most will be done
in small groups and a few may be individual exercises. They will be graded on a "done / not
done" basis. Credit can only be received if done in class. If you miss class, you should do the
posted exercise on your own to learn the material. No make-up or late in-class exercises will
be given. You are allowed to miss up to two (out of twelve) in-class exercises. The 10 in-class
exercises will be used to calculate the final grade. Please refer to the in-class drop policy.
2. Hands-on activities
Hands-on activities serve the same purposes as in-class exercises. The difference is that they
are not graded; you are not required to submit any activities. We will do hands-on activities
almost every class meeting.
3. Homework assignments
Homework assignments are the main mechanism to help you learn web software development
and apply the concepts to build a portfolio-worthy web application piece-by-piece. Some
homework assignments will be written and some will require programming. Most will allow
collaboration with one partner.
The UVA Honor Code is in effect: please refer to the collaboration and Professionalism sections
of the course policies.
Assignments will be posted on the class website before class and discussed in class. You will
submit your homework assignments electronically to UVa Collab. Most assignments require
demonstration to TAs for grading purpose – allowing you to practice your presentation and to
"sell" your project. More details on submission guidelines will be provided on the assignment
pages.
Because each homework is a step toward your course project and your professional
development, it is important that you manage your time wisely. All homework assignments
must be submitted before class on the day they are due. Any submission received after this
time will be considered to be late. Changing an assignment after the due date without prior
permission will be treated as a late submission.
At the end of the semester, we will have a station-like project presentation. You will demonstrate
how your system works, and explain your design decisions and features that improve the
usability of your system. You are encouraged to visit your classmates' stations and discuss their
design and implementation. You may find something interesting from their systems. This is a
great opportunity to share ideas and opinions; you may learn something useful for your future
projects. The fun part is, we will vote for "the best usable project" and "the coolest project."
You are expected to have a backup disk (or storage somewhere) for every assignment you turn
in. In this way, if there is any problem with the copy that is handed in the backup can be used for
grading purposes.
4. Quizzes
We will have weekly quizzes and no midterm exam. The goals of the quizzes are to reinforce
the concepts in recent classes and assess your understanding of recent topics/skills. This also
gives me an opportunity to work with you on any particular topics/skills that can be improved.
Quizzes will generally cover material from previous classes. They will be given during the first
10-15 minutes of class on most Tuesdays and some Thursdays. No make-up or late quizzes
will be given. You are allowed to miss up to two (out of twelve) quizzes. The 10 quizzes with
the highest scores will be used to calculate the final grade. Please refer to the quiz drop policy.
5. Final Exam
Final exam is comprehensive, closed book/notes/web, in class. The only exception is a single
sheet of 8 1/2 x 11 paper (single/double sided, single/double spaces, your choice) with hand-
written notes by the person taking the exam. Appropriate documentation (as determined by
instructor) and requisite permissions (approved by the Dean's Office, in particular) are required
for make-up exam requests. Picture IDs are required to take all exams.
If you know in advance that you are unable to make an exam for a valid and unavoidable reason
(such as a scheduled surgery, etc), you must notify me at least one week before the scheduled
exam date to make arrangements for a make-up, and bring documentation with you when you
take the make-up. If you miss an exam due to a university-accepted excused absence (such as
an illness or car accident the day and time of the exam), you must notify me within 24 hours of
your absence to make arrangements for a make-up, and bring approved documentation with
you when you take the make-up exam. Failure to follow either of these policies will result in a
zero grade on the exam.
Assignments
Quizzes
There will be 4 quizzes worth 100 points each. Your quiz answers will be due on
Tuesdays, except for the final quiz which will be due on the last day of the class.
Project
There will be one project worth 105 points. Your project will be due the day before the
last day of class. The project will consist of the design and creation of some Web page
of your choice. Here you get to solve a problem of interest to you and to use your
imagination. The project does not have to be anything fancy, just whatever you can do
with about 13 hours of work. It can be anything you like. Be creative and have fun.
Late Work
OBJECTIVES:
Web Essentials: Clients, Servers and Communication – The Internet – Basic Internet protocols – World
wide web – HTTP Request Message – HTTP Response Message – Web Clients – Web Servers – HTML5
– Tables – Lists – Image – HTML5 control elements – Semantic elements – Drag and Drop – Audio –
Video controls – CSS3 – Inline, embedded and external style sheets – Rule cascading – Inheritance –
Backgrounds – Border Images – Colors – Shadows – Text – Transformations – Transitions –
Animations.
Servlets: Java Servlet Architecture- Servlet Life Cycle- Form GET and POST actions- Session Handling-
Understanding Cookies- Installing and Configuring Apache Tomcat Web Server- DATABASE
CONNECTIVITY: JDBC perspectives, JDBC program example – JSP: Understanding Java Server Pages-
JSP Standard Tag Library (JSTL)-Creating HTML forms by embedding JSP code.
An introduction to PHP: PHP- Using PHP- Variables- Program control- Built-in functions- Form
Validation- Regular Expressions – File handling – Cookies – Connecting to Database. XML: Basic XML-
Document Type Definition- XML Schema DOM and Presenting XML, XML Parsers and Validation, XSL
AJAX: Ajax Client Server Architecture-XML Http Request Object-Call Back Methods; Web Services:
Introduction- Java web services Basics – Creating, Publishing, Testing and Describing a Web services
(WSDL)-Consuming a web service, Database Driven web service from an application –SOAP.
TOTAL 45 PERIODS
OUTCOMES:
TEXT BOOK:
1. Deitel and Deitel and Nieto, ―Internet and World Wide Web – How to
Program‖, Prentice Hall, 5th Edition, 2011.
REFERENCES:
COURSE REQUIREMENTS
READINGS
COURSE SUBJECTS
STUDENT LEARNING OUTCOMES/LEARNING OBJECTIVES
Publish Date
03/14/2019 15:30:42
Responsive Design 1
UXUI-1373
Course Information
Section 001
Laboratory
HYC NRG
Josiah Spence
Section 001
Lecture
Th 13:05 - 17:00
NRG4 4206
Josiah Spence
Office Hours
T
11am - 1pm
NRG 4208
T
5pm - 6pm
Th
11am - 1pm
COURSE REQUIREMENTS
week 1- Competency One: Use HTML for the structure and content of a web page
2
Be introduced to
HTML Syntax
Learn when to use
Absolute & Relative URLs
Add images to a web
page
Be Introduced to
Cascading Style Sheets (CSS)
Upload files to a Live
Website using FTP
week 3 Competency Two: Write CSS3 styles to format the elements of a web page
Identify CSS Class
Selectors
Use the Div Tag for
Basic Page Formatting
Use Browser
Developer Tools
Identify HTML5
Semantic Elements
Implement fluid
Layout & Max-Width
Test run a Real-World
Layout
Work with the Box
Model
Use Floats & Images
week 5- Competency Four: Structure, style and embed specialized content on a web page
6
Code Links with
Images & Page Jumps
Style Links
Style the Navigation
Share CSS & Center
Content
Set the Viewport Meta
Tag
Set CSS Background
Images
Have Fun with Fonts
week 7 Competency Five: Use advanced layout techniques, high res graphics, CSS specials
Fine-Tune a layout
with Box Model
Use CSS Buttons &
Floats
Implement Hi-Res
Images
Use CSS to styles the
content based on markup
Use native CSS
capabilities of modern browsers
Code images and
videos that resize in accordance with browser size
Implement web-font
typography and CSS animated transitions
Use media queries to
adapt content
week Competency Seven: Demonstrate the capabilities of Responsive Web Design (Final Project)
10-11
Work with a base
template to create a website
Organize the
framework files package
Make it look beautiful,
make it useful, and don't break it
READINGS
Textbooks
Web Development Level 1: Building Websites with HTML5 & CSS3
nobledesktop.com/books/web-development-level-1
COURSE SUBJECTS
COURSE RATIONALE/OBJECTIVES
Instruction in best practices for building responsive websites that adapt to different devices and user behaviors.
Responsive design topics to be covered include: HTML5; CSS3; semantic html; code frameworks; designing with fluid
grids; creating layouts which incorporate typography and fluid media; using CSS media queries; responsive web
typography; color; templates; hosting; web apps; web services. Students are then prepared to 1) evaluate whether or
not responsive web design is a viable career option for them, and 2) pursue more advanced study in web, interaction,
and UX design if they choose to do so.
COURSE SNAPSHOT
In this class you’ll learn how to code HTML and CSS, the coding languages used to create web pages. I focus on best
practices for structuring the content of your webpages with HTML and then styling the content with CSS.
Once you have the basics under your belt, you'll move on to real-world page layout. You’ll learn text and link styles,
centered page layout, background images, CSS-based navigation, forms, uploading files via FTP, and much more. I
will provide you with content and prepared images for use in these projects but this training will give you hands-on
practice coding websites from scratch all the way through uploading them to make them live.
Coding Basics: HTML Syntax
Creating Links: Text, Images, Email, & Named Anchors
Adding Images
Cascading Style Sheets (CSS)
Div Tag & Basic Page Formatting
Using Browser Developer Tools
HTML5 Semantic Elements
Fluid Layout & Max-Width
Real World Layouts
The Box Model
Floats & Images
Styling Links
Styling the Navigation
HTML & CSS Wireframe
CSS Background Images
Google Fonts
CSS Buttons & Floats
Hi-Res Images
Uploading to a Live Website via FTP
Form Basics
Topics to be covered
Here, we have looked at data mining, its motivations followed by the drawbacks of traditional data analysis,
further, a discussion on data and data functionalities has been done along with the study of the process of
knowledge discovery and the issues in data mining. Finally, the typical architecture of Data Mining has been
covered in detail.
Here, we have looked at the data and different types of attributes, its properties including the different types of
data sets.
What is Data?
What are the different types of attributes?
What are the properties of attribute values?
What are Discrete and Continuous Attributes and what are the various types of data sets?
What are the different types of Data?
3. Module_3: Data Preprocessing - II
The main objective of this lecture is to understand the issues that are considered before performing the
preprocessing along with some of the preprocessing techniques.
The focus of this lecture is on understanding the association rule mining and the different steps of discovering
association rules.
Here, we have looked at the Frequent itemset generation which is computationally expensive, then we have
covered Apriori principle and its algorithm.
Here, we have continued to look at the Apriori algorithm and also covered Rule generation for Apriori
algorithm along with pattern evaluation followed by seeing these evaluations in term of the interestingness.
Here, we have covered the classification means and classification task along with the classification techniques.
The focus of this lecture is to understand Decision trees along with the study of the representation of rules in
Decision trees.
Here, we have looked at obtaining a decision tree for classification problem including an example of the same.
Here, we have continued looking at obtaining a decision tree and also covered the Top-down construction rule
for obtaining a decision tree for classification problem.
We have continued looking at obtaining a decision tree and also covered the problem with obtaining decision
tree along with few extensions of the basic tree algorithm and some of the advantages of the decision.
What is the concept of Decision Tree Pruning and Decision Tree Extensions?
12. Module_12: Bayes Classifier I
We have covered probability distribution through an example and looked at some of the important concepts,
which is known as Class Conditional Probabilities.
Here, we have looked at the Posteriori Distribution on the previous example and we have covered the MAP
representation of Bayes classifier and MAP multiple classifiers along with Multivariate Bayes classifier.
Here, we have continued to look at the Multivariate Bayes classifier and its special case.
Here, we have looked at the types of distances measurement between two distribution, and an example of a
Bayes classifier along with the Naive Bayes classifier.
We have continued to look at the Naive Bayes classifier and its example, we have also looked at the
conditional independence and an exercise on it along with the comprehensive look at the Directed acyclic
graph (DAG).
Here, we have covered the Classification algorithm called the K nearest neighbor classifier.
The focus of this lecture is to understand the basics of K Nearest Neighbor and also understand the Voronoi
diagram of the Nearest Neighbor. Also, we have looked at the distance-weighted K-NN followed by different
issues of nearest-neighbor classifiers.
Here, we have looked at K-nearest neighbor classification technique (KNN) and the computational complexity
of KNN followed by reduction of computational complexity.
Here, we have covered the reduction of computational complexity using High dimensional search and also
looked at the K dimensional tree structure along with some alternate terminologies in KNN.
Here, we have looked at the classification algorithms to know which one is better and which one should be
chosen.
The main objective of this lecture is to understand the discriminant analysis and the case of Linear
discriminants, which means that we have 2 features and 2 classes as well, we want to draw a line which will
separate this.
What is a Discriminant Analysis?
What is Linear Discriminant Analysis and Design (part 1)?
What is Linear Discriminant Analysis and Design (part 2)?
What is Linear Discriminant Analysis and Design (part 3)?
23. Module_23: Support Vector Machine - II
Here, we have again looked at linear discriminate(Linear separators), bad and good decision boundaries and
then we have covered the way of getting the line with the highest margin which will give the equation of the
line.
Here, we have covered the Primal and Dual optimization problem followed by understanding the solution of
the dual optimization problem. We have also covered the concept of quadratic programming (QP).
Here, we have covered the Quadratic programming (QP) problem and looked at Karush–Kuhn–Tucker (KKT)
theorem that can be used for solving QP problem.
Here, we have introduced the concept of slack variable, soft and hard margin in separable cases followed by
the optimizations problems. We have also looked at the kernel machine for solving the non-linearly separable
class problem.
The main objective of this lecture is to study the Neural networks and its connectionism and Biological neuron.
We have also covered the Artificial neural network and its simplest model which is Perceptron.
Here, we have looked at the mechanism of finding the correct set of weights to solve a prediction problem.
What are the training rules to be followed for determining weights in ANNs?
What is the Perceptron training rule?
What is the Delta rule and Gradient Descent?
What is the Gradient Descent Technique and Algorithm?
30. Module_30: Artificial Neural Networks III
Here, we have explained the difference between Perceptron and Gradient Descent algorithm and also explained
about the logic gates that can be realized with the perceptron model, and also explained Multilayer Perceptron.
How to use a Sigmoid function in Multi-Layered Perceptron and its training rules?
What is Forward and Back Propagation?
What is the error gradient for a sigmoid unit?
What is the procedure of backpropagation?
32. Module_32: Clustering I
Here, we have looked at the basics of Clustering and Scatter coefficient for observing the goodness of
clustering including an understanding of Hierarchical & Partitional clustering.
What is Clustering?
How to find groups of similar objects?
What is the distance measure?
What is partitional clustering?
What is Hierarchical clustering?
33. Module_33: Clustering II
Here, we have covered the desirable properties of the clustering algorithm, Hierarchical Agglomerative &
Hierarchical Divisive clustering. We have also looked at the three ways of measuring distance b/w two
clusters.
What are the desirable properties of Clustering algorithm and what is the Hierarchical
Agglomerative Clustering?
What is the Hierarchical Divisive Clustering and how to measure closeness between two
clusters?
What is Single Linkage Clustering, its advantages and disadvantages?
34. Module_34: Clustering III
Here, we have looked at the K-means clustering algorithm and its Example
The main objective of this lecture is to learn about Idea of Density-based clustering, and density-based
algorithm that is DBSCAN (Density-based special clustering acronym)
What is Density-based Clustering algorithm?
How to measure the density of a point?
Some definitions related to Density-Based Clustering
What is the DBSCAN Algorithm?
36. Module_36: Clustering V
Here, we have covered the Hybrid clustering algorithm that is CLARA followed by evaluating clustering
algorithms.
The focus of this lecture is to understand the concept of Regression problem, univariate and multivariate
regression of regression model along with the most common technique of regression called as Linear
Regression.
What is Regression?
What is Univariate and Multivariate Regression?
What is a Regression Model?
What is Linear Regression?
38. Module_38: Regression II
Here, we have continued to look at the Linear Regression model and some of the limitations of Linear
regression followed by the Non-Linear regression.
Here, we have covered the problem of Over-fitting, Ochams razor principle and the Time series prediction
problem along with its solution.
Assigned
March 04, 2020
Due
March 04, 2020
This mini exam will act as our “midterm”. It will encompass all of the basic technical
principles behind HTML and CSS.
PURPOSE OF EXAM
The purpose of the exam is to evaluate you on some very basic principles of HTML,
CSS and responsive web designed learned in the first 7 weeks of class. If you know
these basic principles, you’ll have demonstrated that you understand how the web
works and are ready to begin developing your own basic web sites.
FORMAT OF EXAM
This is a list of the topics to study. If you don’t see a topic specifically listed, you
don’t have to focus on that topic for the exam.
Purpose of HTML
Purpose of CSS
CSS Box Model (border, margin, padding)
Basic Text Tags (Paragraphs, Lists, etc.)
Link Tags
Image tags and image accessibility
Image formats (what the images are saved as)
Block vs. inline elements
Styling an element with CSS
Basic styling with CSS (color, font family, bold, italic, underline)
CSS inheritance rules
Basic size units used on the web
HTML 5 elements and their purpose
Media queries and their purpose
Single CSS rule that will make images flexible for responsive design (not
break out of their containing box)
Breakpoints and how to choose them
What is flexbox (display: flex) and why it is useful (no code)
What are floats and what are the pros and cons
Assigned
March 16, 2020
Due
April 15, 2020
INTRODUCTION
They’d like you to take elements from their current “desktop-only” website and make
it a responsive one, making changes to the design as needed.
WHAT TO DO
In CodePen, you’re going to translate the existing desktop-only home page into a
responsive one. You can either use the existing assets and content available on the
website or create your own new design (this is a more advanced, but creative,
approach). You could also use a hybrid of old site and integrate some of your own
ideas.
Note: while you can inspect the code from their current site, the code is machine-
generated from Wix and is nearly unreadable. I don’t recommend using any of the
existing code.
1. If you want, fork this starter pen, which has starter content and HTML
structure in place. If this seems confusing, build from scratch and pull
elements as you go. Feel free to change this content however you need:
https://codepen.io/droll_ksu/pen/NJXEMO?editors=1000 -REMEMBER
TO FORK. DO NOT WORK FROM THIS PEN.
2. Use the assets and content below to begin styling your components (you
might start from the header and work down). You will have to add additional
HTML and classes in order to effectively style your components.
3. Build your site mobile-first, choosing how items stack and in what order. Then,
add in your media queries to create grid, float or flex layouts as needed.
4. When building the navigation, we haven’t yet learned how to do a collapsible
menu. Find a creative way to display your navigation on small screens without
resorting to the “hamburger” menu quite yet. (The intermediate layout
example could be a good guideline.)
5. Including the live video is not required, just use the live video still from below.
Fonts:
Facebook Icon
Instagram Icon
Barroco Logo
Images:
Fancy Drink
Fancy Drink 2
Fancy Drink 3
Fancy Drink 4
Dancing Women in Orange Shirt
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
Assigned
March 04, 2020
Due
March 11, 2020
This assignment begins a brand new webpage that will help you learn how to lay out
and style boxes.
Do not copy and paste another student’s code. If I catch you doing so, you’ll
receive a 0 for the assignment.
WHAT TO DO
Final Product
Here’s what we’ll be making. Don’t try to do it all at once, we’ll take each section at a
time. This is a responsive website, so there will be multiple changes in layout at
different breakpoints.
Small Screen
Large Screen
Step 1: Header
Let’s start with the header (<header>). Rather than telling you what rules to use, I’m
going to provide you with an image of how the header should look. It’s up to you to
style it, but it doesn’t have to be exact.
Note: The header and footer reside outside of the MAIN box and this therefore won’t
apply to them.
Step 3: Navigation
The navigation (nav) starts as a stacked list, and then turns into a horizontal list.
1. Each of the boxes have already been given identical class name of
class=”box”.
2. Set a style for each .box in your CSS of padding: 2em and margin: .25em.
Your first row has already been given the class “first-row”.
1. Make each individual box in the first row have a white background. To do this,
you’ll have to use a class in your CSS: .first-row .box {background-color:
white;}.
2. At your favorite breakpoint, change the boxes in the first row to become side-
by-side using display: flex. Remember that display:flex goes on the parent
box (.first-row) and not on each individual box. Upon applying flex, the boxes
will by default line up side-by-side.
1. Once you’re satisfied, copy the Editor Mode URL from CodePen
2. Log in to Blackboard Learn to submit your assignment. Go to Assignments >
Assignment Name. Under Write Submission, Paste the URL of the Pen
(Editor Mode). Click Submit.
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
In this course you will learn the fundamental principles for developing standards-
based web sites from a mobile-first and content-first perspective. We will explore
each aspect of an agile-inspired process, during which you’ll learn each step of what
it takes to build a website and ensure its functionality for its users in terms of both
usability and performance.
Topics
Just a few of the topics planned to be covered in the Responsive Web Design
course include:
Course Goals
In this course, students will:
Identify and write the most common HTML/CSS properties, with proper
indentation and comments, and understand how to use these properties
efficiently.
Organize and prioritize website content to fit information architecture best
practices, including a mobile-first methodology.
Use media queries to create a responsive HTML/CSS/JavaScript prototype
that accommodates multiple screen sizes and device types.
Speak intelligently about responsive web design and describe why it’s
important to future clients, colleagues or employers.
Analyze predefined requirements and constraints that a client or employer
may ask of a web designer, and creatively apply these to the solution.
Critique and speak intelligently about web design in terms of content, colors,
typography, user interface elements and layout.
Coordinate a web design project and work with other team members to build
deliverables along the way.
Understand the various roles that are essential to the web design process and
appreciate the skills required for each discipline.
See themselves as capable and confident when working in code, even if they
are not primarily developers. Be willing to cross organizational lines and take
chances.
Be motivated to expand their knowledge of web design by following influential
web designers and businesses that are currently implementing responsive
design.
Understand how the student and their current area of study fits into a web
design role (and their role as a communicator) and expand on their current
background to be able to take on future roles in interactive media.
Understand how HTML/CSS prototypes integrate into large, dynamic content
management systems and complex organizations.
Develop test plans and iterate on future design and content systems after
identifying usability or technical issues.
Identify solutions to complex design/development problems and use online
resources to expand knowledge of HTML/CSS processes.
Course Textbook and Materials
There are 2 required textbooks for the course. One provides detailed examples and
instructions for HTML/CSS, and the other provides more practical knowledge on
web design topics:
HTML and CSS: Design and Build Websites by Jon Duckett, November
2011, Wiley. (~$19 on Amazon)
Responsive Web Design by Ethan Marcotte, Second Edition, December
2014, A Book Apart. ($11.00/Ebook or $21.00/Paperback + Shipping)
This course will also make use of video tutorials from Lynda.com (available at no
charge to students taking this course), as well as free online readings and videos.
Class Structure
This class will be held once a week and will have both a lecture/discussion and
studio/lab component. Students will be assigned readings from a variety disciplines,
authors and topics, which will be discussed during the first half of class. All students
will have the opportunity to pair with a student from a different background to work
on hands-on examples in class each week, as well as a long-term project that will
span the semester. Short homework assignments will be given throughout the
semester in order to master key topics.
Please see the Detailed Course Schedule for specific dates, times and
assignments.
Students explore the concept of responsive web design, learn why it matters and will
begin implementing simple HTML, CSS and JavaScript in the browser. Students will
read Responsive Web Design by Ethan Marcotte as part of this section and will refer
to the HTML + CSS textbook frequently.
Assignments
Student learning will be assessed through three types of work: in-class participation,
in-class quizzes, short assignments and a multi-stage small group/individual project.
Graduate Students
Graduate student assignments may include a more challenging component
than undergraduate assignments to support advanced mastery of the subject.
When working in collaboration with an undergraduate student, only the
graduate student is required to complete this component of the assignment.
Assigned
February 19, 2020
Due
February 26, 2020
This assignment is practice using float/flexbox to create basic CSS grids structures.
Do not copy and paste another student’s code. If I catch you doing so, you’ll
receive a 0 for the assignment.
WHAT TO DO
Build each of these grid structures using widths, min-heights, background colors and
padding/margin as needed. Build them all in one Pen with space in-between and
designated with HTML comments.
Final Outcome
Your final pen should look something like this: Basic Grids
Getting started
Create a Pen in codepen. Start with a 1200px wrapping container that is centered
using margins. Each of these grid "islands" will sit inside this container with space in-
between.
Grid Structure 1
Recreate the grid structure you see above. Use min-height, background-color
(background colors are open but you can use the list at the top of the assignment)
and floats or flexbox to build this basic structural skeleton.
Grid Structure 2
Make sure to add margin between the first grid structure and this one.
Recreate the grid structure you see above. Use min-height, background-color
(background colors are open) and floats or flexbox to build this basic structural
skeleton.
Grid Structure 3
Make sure to add margin between the previous grid structure and this one.
Recreate the grid structure you see above. Use min-height, background-color
(background colors are open) and floats or flexbox to build this basic structural
skeleton.
Add the sample "content" into the header section. Position with padding or flexbox
controls or floats.
Grid Structure 4
Make sure to add margin between the previous grid structure and this one.
Recreate the grid structure you see above. Use min-height, background-color
(background colors are open) and floats or flexbox to build this basic structural
skeleton.
1. Once you’re satisfied, copy the Editor Mode URL from CodePen
2. Log in to Blackboard Learn to submit your assignment. Go to Assignments >
Assignment Name. Under Write Submission, Paste the URL of the Pen
(Editor Mode). Click Submit.
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
4: CSS and styles are written appropriately and with proper indentation. All
steps were followed, "content" is include and grids are correct. Code is
organized and utilizes comments.
2 - 3: CSS/HTML is mostly structured correctly, but there are some syntax
and/or style issue (for example, you forgot to close a rule with a semicolon).
Some of the steps were missed or elements are not included. Code is messy
or comments are missing.
Assigned
February 26, 2020
Due
March 04, 2020
We’re returning back to our Welcome Weekend website! We have a good HTML
structure in place as well as our basic CSS Styles, but now it’s time to make sure the
website uses our brand fonts as well as adjusts itself as the screen gets larger.
Do not copy and paste another student’s code. If I catch you doing so, you’ll
receive a 0 for the assignment.
WHAT TO DO
Open your CSS Basics 2 assignment. Instead of editing the original pen, click the
“Fork” option at the top. Click Settings and rename the forked pen using this
structure: “Your Last Name - Layout/Media Queries”.
You’re going to be using fonts and media queries to add on to your website, making
it work well at all screen sizes.
It should resemble the screenshots from these examples (remember that I may have
chosen different fonts than you).
NOTE: If the Welcome Weekend logo image is broken, use this new source:
https://rwdkent.com/assets/img/uploads/DKS-15.png
Step 1: Choose New Fonts
You’re going to replace the sans-serif and serif typefaces in the document with a
Google Web Font of your choice.
It’s time to implement your first media query. For this part, we’re going to be making
the paragraph text get larger as the screen gets bigger.
Remember, the first media query is no media query at all. This is your default
(mobile) state. Only add a media query when you need to tweak a style as the
screen gets larger.
1. Set all paragraph font sizes to get slightly larger starting at a minimum width
of 600px.
2. Set all paragraph font sizes to get even larger at a minimum width of 1000px.
3. Increase all paragraph line-heights at a minimum width of 1000px.
1. Increase all H2 font sizes at a breakpoint of your choice as the screen gets
larger.
Step 4: Main Content Area Size
1. At a breakpoint width of your choice, change the main area to have more
space inside of it (padding).
2. Change the main area’s maximum width to be fixed at 1200px (this will stop it
from getting any larger).
If you’ve done everything correctly, you should see your image float within the text
starting at your breakpoint.
Step 6: Set the Logo To Get Bigger
1. Once there is enough room, set the Destination Kent State logo ONLY to get
slightly larger (increase the width).
2. Do this by giving the logo a CLASS name in the HTML and using that class in
the CSS. While this could be accomplished in other ways, I want you to
practice using a class here.
1. Once you’re satisfied, copy the Editor Mode URL from CodePen
2. Log in to Blackboard Learn to submit your assignment. Go to Assignments >
Assignment Name. Under Write Submission, Paste the URL of the Pen
(Editor Mode). Click Submit.
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
CSS BASICS 2
Points
4
Assigned
February 12, 2020
Due
February 19, 2020
You’re happy with the content on your Welcome Weekend website (that you made in
HTML 2). It’s time to add some visual styles to the website using CSS.
CodePen makes adding CSS easy because it automatically links your stylesheet to
your HTML. When we begin coding outside of CodePen, you will have to set your
CSS using a tag.
WHAT TO DO
Open your HTML Basics 2 assignment. Instead of editing the original pen, click the
“Fork” option at the top. Click Settings and rename the forked pen using this
structure: “Your Last Name - CSS Basics 2”.
Notice how we’ve broken the page up into parts. This is good practice and will help
you organize your HTML and CSS better.
1. Surround both the header logo and H1 with a < header > tag.
2. Surround the main content with a < main > tag (starting with figure and ending
with the embedded video).
3. Surround the footer with a < footer > tag, starting with Student Success
Programs and ending with the contact information.
1. Make the H2’s (your subheading styles) the same color blue as the
background.
2. Adjust the margins of your H2’s (your subheading styles) so that there is more
space above the heading than below the heading.
1. Make your H1 (Welcome Weekend) closely match the screenshot. You’ll have
to use font-size, color, letter-spacing, font-family (try Garamond or Georgia)
and a text-shadow.
2. Align everything in the header to be centered (hint - use text-align).
3. Change all of the text in the header to be colored white.
4. Make the size of the Destination Kent State logo smaller. We only want to
affect that image and not the other images on the page. We can specifically
target an image within the Header using the “header img” selector in our CSS,
without affecting other images on the page.
5. Give the DKS logo image space on top. This helps separate it from the top of
the page.
Step 5: Main Content Area
1. Make the main content area only have a 95% transparent white background
color.
2. Adjust the spacing inside of the main content area so that there is some
whitespace. This might be accomplished with padding.
3. Set the main content area to a 90% width. This will give some space around
it.
4. Center the main content area in the middle of the page (hint: use margin: 0
auto).
5. Tell the main content area to get no wider than 900px (hint use max-width)
6. Set a slight drop shadow on the main content area
Step 6: Paragraphs
1. Set all blockquote to closely match the screenshot. You will have to adjust the
blockquote’s width and center the quote using margin: 0 auto.
2. If your cite tag does not appear inside of the blockquote tag, you have to set
cite to display:block in order for it to have a margin and appear on its own line.
Step 9: Figure
1. Set the figure (which should contain both the image and caption) to take up
70% of the page as well and center it in the middle of the page.
2. Add padding to the top and bottom of the figure to space it out away from
surrounding elements.
3. Give the photo of welcome weekend (which is the image inside of a figure
tag) a 5px white border.
4. Give the photo of welcome weekend a box shadow.
5. Give the figure’s caption margin to space things out away from the image.
6. Make the caption font italic, aligned to the center and a smaller size.
Step 10: Table
1. Now, make the heading in the footer (Student Success Programs) appear in
gold: #eaab00. You’ll need to do this by only targeting headings that appear in
the footer using “footer h2” in the CSS.
2. Style the DT elements to appear in gold as well, make them uppercase with a
smaller font size and bold.
3. Make the DD Elements have a left margin of 0, a smaller font size and an
increased line height.
4. You’ll notice that the email address is unreadable because links by default are
blue. To fix this, make all links (a tags) in the footer (using footer a) appear in
white.
5. Give the footer padding on the bottom so that there’s some breathing room at
the end of the window.
6. Set all of the text in the footer to be centered.
1. Once you’re satisfied, copy the Editor Mode URL from CodePen
2. Log in to Blackboard Learn to submit your assignment. Go to Assignments >
Assignment Name. Under Write Submission, Paste the URL of the Pen
(Editor Mode). Click Submit.
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
3-4: CSS is written appropriately and with proper indentation. All steps were
followed and correct styles are applied. Styles are added efficiently, for
example, multiple H1 styles are grouped together, as opposed to separate
styles for everything.
2: CSS is mostly structured correctly, but there are some syntax issues (for
example, you forgot to close a rule with a semicolon. Some of the steps were
missed. Similar styles are not grouped together.
0 - 1: CSS does not use appropriate style attributes. Syntax is incorrect and
many of the steps were missed. The pen was not set up or submitted
according to instructions.
HTML BASICS 2
Points
4
Assigned
January 29, 2020
Due
February 05, 2020
You’ve been tasked with creating a landing page for Kent State’s Destination Kent
State program. Using the content and instructions below, create this webpage on
CodePen using semantic markup. Do not worry about presentation for this
assignment.
Do not copy and paste another student’s code. If I catch you doing so, you’ll
receive a 0 for the assignment.
WHAT TO DO
1. Create a new public pen and name it using this structure: “Your Last Name -
HTML Basics 2”.
2. Take the plain text content (provided below) and structure it into HTML in your
pen. Pay attention to the client notes - they’re important.
THE CONTENT
https://rwdkent.com/assets/img/uploads/DKS-15.png
Welcome Weekend
Client Note: Add this image between the text and the header. Don’t forget alt
text for the image. Add a caption below it that says: “Students Attend Back to
School Blastoff on the Student Green.” When creating an image with a
caption, use the figure and figcaption tags.
Welcome Weekend 2015 is a weekend packed full of fun activities and events
starting Thursday, August 27th through Sunday, August 30th. Students will move
into their residence halls and attend their first hall meeting. Throughout the
weekend, students will have the opportunity to meet fellow classmates in their FYE
class, and get to know their way around Kent’s campus. This year’s events include a
comedian, Convocation, FYE Common Reading, Discover Downtown Kent, and
Blastoff! Other events include: bingo, movies, broomball, ice skating, and karaoke.
“Welcome Weekend is a great time to meet new friends and get acclimated with
Kent State’s magnificent campus.” - President Warren
Client Note: Set this up in a 3 column table please. The markup for the header
row of the table is slightly different than everything else.
Event: RESIDENCE HALL MOVE IN. Follow your assigned move-in times from
Residence Services mailing.
Event: Air Force ROTC New Cadet Orientation Program (NCOP) and Parent
reception. New Air Force ROTC cadets and their families are encouraged to attend
an exposition presenting scholarship opportunities, AFROTC requirements, cadet
life and possible future careers in the United States Air Force.
Location: TERRACE HALL
Event: HILLEL’S KOSHER ICE CREAM SOCIAL. Unpacked and not sure what to do
next? Hillel at Kent State invites students to our house for delicious kosher ice
cream creations! Come mix-in toppings and mix with new friends at this laid back
social event that includes summer’s perfect dessert.
Event: RESIDENCE HALL MEETINGS. Residence Hall staff members will cover
important hall and safety information and introduce you to resources available to
assist you in enjoying a safe and fun living environment.
Event: KARAOKE. Show off your vocal skills or just cheer on your friends while
music from Taylor Swift, Rihanna, and Maroon 5 play! Sponsored by Kent Student
Center Programming.
Client Note: Before the YouTube video, add an HTML comment that has the
link to the YouTube video so that you can find it later if you need to. Use
proper HTML comment syntax. Remember that HTML comments are only
there for you, the developer, and do not display to the end-user.
Client Note: YouTube videos should be embedded using the embed code
provided by YouTube (under Share > Embed - which will give you an iframe).
Use definition lists to mark up this content. Definition lists connect the labels
(for example, Phone) to the corresponding content (for example, Phone
Number).
Address: Center for Undergraduate Excellence - Suite 135; 975 Lefton Esplanade
Kent, OH 44242 Phone:330-672-9292 Email:[email protected] make this a
clickable email address
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
Assigned
January 22, 2020
Due
January 29, 2020
You’ve received content for a conference website and would like to begin structuring
it in HTML. Using the markup skills you’ve learned so far (text, lists and links),
structure the plain text content into a webpage using CodePen. Don’t worry about
presentation for this assignment.
Do not copy and paste another student’s code. If I catch you doing so, you’ll
receive a 0 for the assignment.
WHAT TO DO
2. Create a new public pen and name it using this structure: “Your Last Name -
HTML Basics 1”.
3. Take the plain text content (provided below) and structure it into HTML in your
pen. You must use semantic headings to indicate hierarchy. Links must be
functional. Lists should be formatted as unordered or ordered lists. Pay
attention to the client notes - they’re important.
4. CodePen automatically inserts all of the required code for the HEAD of the
document (the HTML, BODY and TITLE tags). Add in the Viewport meta tag
to make the site behave responsively on mobile devices. (Settings > HTML >
Insert the most common viewport meta tag)
5. After you’ve completed your testing, log in to Blackboard Learn to submit your
assignment. Go to Assignments > Assignment Name. Under Write
Submission, Paste the URL of the Pen (Editor Mode). Click Submit.
THE CONTENT
Enduring Trauma?
The Poynter KSU Media Ethics Workshop is a one-day training program for
professionals, educators and students that examines critical issues and perspectives
in media ethics. Moderated by distinguished ethics faculty from The Poynter
Institute, the Media Ethics Workshop provides a unique forum for professionals and
students alike to confront and discuss significant issues crucial to understanding
media ethics and its effect on our world. Previous Workshops have addressed online
ethics, sports media ethics, political media ethics, entertainment media ethics and
the ethics of data mining. Established in 2004, the Poynter KSU Media Ethics
Workshop continues its mission to strengthen media credibility and bolster citizens’
faith in media integrity.
Agenda
(Client Note: Can we maybe emphasize the times with bold or italics and
format this into bullets to make it more readable?)
12:00 — 1:15 Lunch: Keynote Dr. Frank Ochberg - “Coping with Cruelty”
How to Register
(Client note - this is hard to read. Can we number these in steps? Also, make
the words registration website one of those interactive things that takes you
to a website when clicked.)
Contact Us
(Client Note: put these in bullets. It would be really cool if an email would open
up when you click on our email addresses)
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
Assigned
April 01, 2020
Due
April 27, 2020
We're almost done! Now that you've developed template prototypes and a pattern
library, it's time to do a final review with your "client" and the class. There won't be
any slides or reports to turn in - you'll only be showing your completed project.
Here's what you'll review with the class/client during your review session. Each
review should take 5-10 minutes.
1. Bring up your Website from your live link. You will walk through your site and
identify the goals of the site and how you made decisions on the
design/functionality.
2. Show the page templates and discuss each of them. Demonstrate how the
design changes at different breakpoints. Discuss any decisions you had to
make.
3. Discuss any next steps. What would you have done with more time? What still
remains to be decided?
4. Ask for feedback and questions from the class/"client". I may ask some
questions during your review, just like a client might do.
HOW TO TURN IN THE ASSIGNMENT
There is nothing to submit for this assignment, but in order to get the points you
must:
Although there is nothing to submit, you may find it helpful to prepare some bullet
points/notes to help you and your partner stay on track during your discussion.
RUBRIC
Use the following rubric to ensure you receive the highest possible grade for the
assignment:
5: You and your partner showed all of the required components. You were
able to intelligently answer questions and showed critical thinking in your
design decisions. Your decisions matched your initial goals. You discussed
what your next steps would be, were you to complete the website. Both
partners participated in the discussion and you also participated in the review
of other group projects.
3-4: You and your partner presented, but some of the required items were
missing. You were unsure or unable to back up some of your design
decisions, and weren't as convincing as you could have been. One partner
may have dominated the discussion.
0-2: Your review lacked coherence and it is clear that you didn't put a lot of
thought into your decisions or prepare for the discussion. Next steps weren't
discussed, and the client is left with a lot of questions. You may not have
participated at all in the class review by asking questions or giving feedback.
Assigned
March 04, 2020
Due
May 06, 2020
THE SETUP
You’re an employee at a small web design shop and have just gotten one of
your first clients - a small website project for their business.
Your boss has assigned you (and maybe a coworker) to the project. You are
both equally responsible for development, design and content strategy.
The client is launching their business in a few months, so they need most of
the design/development done and approved before then.
They plan to put the site into a content management system - but they need a
working style guide and prototype in order to effectively implement it.
They have an onsite employee who will be maintaining and improving the
website after the project is finished.
Note: In this scenario, I will play the client and the business, while based on some
actual businesses, will be fictional
PROJECT GOALS
Why this type of project? This allows you, the student, to apply what you’re learning
in class to a real-world scenario. By thinking critically and using these principles,
you’re developing long-lasting development and design skills that can be used to
land you a job or complement your existing areas of expertise.
PROJECT GROUPS
You can work in pairs or alone on this project. Each group or student will work on a
slightly different (but largely equivalent) web project. We have a number of "stock"
companies that you can select from that have existing assets you can use (some
branding, content, background info, etc.) You may also choose another small or
local business of your own, but you will be responsible for assembling content and
assets to use for the project. Both approaches are valid.
(Companies are claimed by a first come, first served basis. Each group will need to
select a different company to work with.)
PROJECT SCHEDULE
You and your boss have worked together to develop a brief project schedule.
1: Research
Meet with the client and determine project goals, design aesthetic, etc.
Communicate why investing in a responsive website makes sense for their
business.
Understand the types of content needed
Communicate the project schedule
Get a list of competitors in preparation for doing a brief competitive analysis.
Put together a project index that will house all future project deliverables so
that they’re easy to access by the client.
View Research Project
You’ll begin putting together the content you gathered into an HTML template
structure
You’ll prioritize the most important content up top
The content wireframes will demonstrate to the client how the site will respond
at different breakpoints.
Using your content templates, you’ll begin to add CSS styling to your code,
creating working prototypes of representative templates in your website.
You’ll determine how each repeatable element looks and functions together
Based on your final prototypes, you’ll develop a pattern library that
demonstrates the typography, colors and primary atomic elements used in the
design
View Template Project
5: Project Hub, Review Session & Critiques
You’ll present a hands-on walkthrough of the final prototype and style guide
You’ll show a retrospective of what you did to get to this point via the Project
Hub
ASSIGNMENT POINTS
HTML/CSS Templates/Patterns 15
Assignment Points
HTML/CSS Templates/Patterns 15
This class uses team-based learning for part or all of the semester. Students
must agree to follow the Group Rules & Expectations throughout the course
of the project.
Late Submissions
Projects and late assignments can only be made up with a documented excuse (as
described in the attendance policies above) for a University approved absence
about which I am made aware before class. This policy is nonnegotiable. If I do not
know in advance that you will not be in class, I automatically will assign you a “0” for
the exam, quiz, or assignment.
1. Create a simple page introducing yourself, how old you are, what you do, what you like
and dislike. Modify the introduction to include a bullet list of what you do and put list the 5
things you like most and dislike as numbered lists. Create another page about your
favourite hobby, and link it to (and from) your main page. Center something, and put a
quote on one of your pages.
2. Put an existing image on a web page. Create a table, use a heading and at least one use
of row span/col span. Colour a page and some text within the page. Link to another site.
5. Write a function in Javascript that takes a string and looks at it character by character.
6. Create a simple calculator using form fields. Have two fields for number entry & one field
for the result. Allow the user to be able to use plus, minus, multiply & divide.
7. Create a document and add a link to it. When the user moves the mouse over the link, it
should load the linked document on it s own. (User is not required to click on the link).
8. Create a document, which opens a new window without a toolbar, address bar, or a
status bar that unloads itself after one minute.
9. Create a document that accepts the user's name in a text field form and displays the
same the next time when the user visits the site informing him that he has accessed the site
for the second time, and so on.
10. Create a Web form for an online library. This form must be able to accept the
Membership Id of the person borrowing a book, the name and ID of the book, and the name
of the book's author. On submitting the form, the user (the person borrowing the book)
must be thanked and informed of the date when the book is to be returned. You can
enhance the look of the page by using various ASP.NET controls.
11. Display an advertisement at the bottom of the Web form that you created in question
10.
12. Create an array containing the titles of five new movies. Use this array as a data source
for a drop down list control. The page must be capable of displaying the selected movie title
to the user when the user clicks on the submit button.
13. Create a virtual directory in IIS. Create a global.asax file and include the
"Session_Start" and "Session_End" and, "Application_BeginRequest" and
"Application_EndRequest" events. Write a simple ASP.NET page and execute it in the
browser. What is the output that you get?