If you are a teacher or interested in the design of the course, see the meta document.
A course teaching the design and development of interactive Web pages and client-side based Web programs using Rich Internet Applications (RIAs). Students will learn how to manage elements of a Web page using the Document Object Model (DOM), create and validate forms and communicate with Web servers using current Web technologies. Lectures three hours per week.
This course builds on your Web Design knowledge by adding a dynamic element to your websites. This is achieved with extensive use of the Javascript programming language and Javascript libraries such as jQuery. Modern tools such as Webstorm (or equivilent editor), Git, GitHub, and the Debugger will be heavily used. Piazza will be used so that students and instructor may have a collaborative Question and Answer environment. I expect maximum participation with students answering other students’ questions if they know the answer. All projects will be administered through GitHub, where students are expected to initiate the assignment and complete under Version Control (accomplished with Git and pushed to GitHub). Completing the assignment as assigned will not be enough for an A+. Students must add at least one “WOW” feature to the project and must be successfully demo’d to the Instructor. Topics covered include:
All homework assignments are listed within the Course Outline.
Most Fridays there will be an in-class lab assignment. You will be given 50 minutes to complete and upload the assignment to GitHub. Edits can be made until the next Sunday, but there must be a commit/push before the end of class the day of the lab. In general, the lab assignment will be a coding exercise (JavaScript, HTML, or both), however a short quiz may also be given. The quiz may include multiplechoice, fill in the blank, or short answer questions. For example, 15 minutes of the lab time is a quiz, and the remaining 35 minutes is a coding problem.
All assignments are due at the start of class on the specified date.
You can continue to push fixes and improvements until the date (with no penalty) or for one week after (with letter grade penalty) – just add a comment in the commit message to let me know it’s been updated.
I will leave appropriate feedback as an Issue inside of your repository.
The final grade for the course is based on 6 grades as follows:
This class assumes you are confident with this material, but in case you need a brush-up…
The College of Charleston takes plagiarism very seriously and regards it as a form of fraud. The definition of plagiarism that has been adopted by the School of Continuing and Professional Studies is as follows: “Plagiarism is presenting someone else’s work as though it were one’s own. More specifically, plagiarism is to present as one’s own words quoted without quotation marks from another writer; a paraphrased passage from another writer’s work; or facts or ideas gathered, organized, and reported by someone else, orally and/or in writing. Since plagiarism is a matter of fact, not of the student’s intention, it is crucial that acknowledgement of the sources be accurate and complete. Even where there is not a conscious intention to deceive, the failure to make appropriate acknowledgement constitutes plagiarism. Penalties for plagiarism range from failure for a paper or course to dismissal from the University.
Reuse and building upon ideas or code are major parts of modern software development. As a professional programmer you will never write anything from scratch. This class is structured such that all solutions are public. You are encouraged to learn from the work of your peers. I won’t hunt down people who are simply copying-and-pasting solutions, because without challenging themselves, they are simply wasting their time and money taking this class.
Please respect the terms of use and/or license of any code you find, and if you reimplement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.