Skip to content

lehman-webdev/2018-fall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 

Repository files navigation

CMP 464 – Web Programming

Department of Computer Science, Lehman College
Fall, 2018 – Academic Calendar

Instructor: Ross Dakin
Lecture: Monday/Wednesday 6:00-7:40 p.m. (GI-231)
Office Hours: 5pm Mondays (GI-231)
Grading: Letter Grade

Rationalle

In a world increasingly-connected by the Internet, the World Wide Web has emerged as a nearly-ubiquitous platform for personal communication, business operations, and global information sharing.

Any student of a technological field-and especially students of computer science/engineering-would be well-served by developing an understanding of the web and a proficiency in creation of the applications that it enables.

Course Aims and Outcomes

Aims

As a result of participating in this course, students will be able to explain the various elements of the web ecosystem, demonstrate proficiency in the fundamental languages of web programming, and create front-end web applications using contemporary tooling in preparation for a career involving web development.

Specific Learning Outcomes

By the end of this course, students will be well-versed in the fundamentals of web application development. Emphasis is placed on developing a foundation in plain HTML, CSS, and JavaScript, including a knowledge of their historical revisions and browser adoption of their latest versions. Building on this foundation, client-side JavaScript frameworks are introduced; students will learn the concepts, syntax, and benefits of jQuery (as it is still widely used despite having fallen out of favor for newer frameworks) then learn a more contemporary front-end JavaScript framework (e.g. vue.js). The course will discuss back-end web application constructs such as databases, application servers, and network infrastructure, placing an emphasis on API-driven programming paradigms. By the completion of the course, students will be able to develop a client-side web application utilizing third-party data APIs and discuss the benefits of various architectures, design patterns, and elements of production-readyness. Specific concepts and technologies are highlighted in the course schedule below.

Format and Procedures

This course meets twice per week for two 100-minute periods without an additional lab component. This course is intended to reflect industry norms as much as possible; to that end, project delivery and collaboration are emphasized over attendance and summative assessment.

Assumptions

This course has no prerequisite courses; however, students are expected to be proficient in general programming principles and able to code in at least one language. Such experience will ensure that students are able to expediently learn new programming languages as they are introduced in this course.

No web development experience is required; this course assumes that students do not have any prior knowledge of the subject matter. It may be helpful, but is not required, to take a course on databases before this course.

Note that this is not a web design course. Presentation is covered and general design tools will be discussed, but the emphasis is on application programming using the web as a platform.

Course Requirements

Tasks and assignments are intended to align with the learning outcomes specified above.

Class attendance and participation policy

Attendance is not a graded component of this class, though students are encouraged to attend all lectures to fully benefit from the delivered lectures and peer discussion.

Course readings

In adhering to "real-world" industry norms, this class does not have any required texts, as all course material can be obtained through various free online resources. However, various readings will be recommended during the course of this class and will likely be helpful to student learning. Opportunities for extra credit may be available throughout the course.

Assignments

This course will employ the following assignments:

Assignment Percent Format Content
Homework (8) 20% (2.5 each) Individual All material.
Project 1 20% Group HTML, CSS
Midterm 15% Individual HTML, CSS
Project 2 25% Group HTML, CSS, JS
Final 20% Individual HTML, CSS, JS
TOTAL 100% -- --

The intentions of these assignments are:

  • Homework
    • Reinforce readings/lecture content
    • Practice writing code
    • Practice using GitHub (delivery/submission vehicle)
  • Projects
    • Demonstrate ability to develop responsive static website and dynamic web application
    • Add to students' public GitHub portfolios
    • Practice code collaboration
  • Written Exams
    • Demonstrate closed-book knowledge of subject matter
    • Emulate live-coding component of real-world interviews

Tentative Course Schedule

May change to accommodate guest presenters and student needs.

Lecture Date Content Readings Assigned Due
0 Aug. 27 (M) Intro -- -- --
1 Aug. 29 (W) The Web, HTML -- -- --
-- Sep. 3 (M) NO CLASS -- -- --
2 Sep. 5 (W) More HTML -- -- --
-- Sep. 10 (M) NO CLASS -- -- --
-- Sep. 12 (W) NO CLASS -- -- --
-- Sep. 17 (M) NO CLASS -- -- --
-- Sep. 19 (W) NO CLASS -- -- --
3 Sep. 24 (M) URL anatomy, web colors, image types/considerations -- HW-1 Survey
4 Sep. 26 (W) CSS: selectors (element, class, ID); locations (inline, style block, external file) -- -- --
5 Oct. 1 (M) git, GitHub, Markdown, Slack, more CSS -- -- --
6 Oct. 3 (W) Review HW-1, more CSS, page layout, form project groups, discuss Project 1 -- Project 1 HW-1
-- Oct. 8 (M) NO CLASS -- -- --
-- Oct. 10 (W) NO CLASS -- -- --
7 Oct. 15 (M) Project check-in, midterm review -- -- --
8 Oct. 17 (W) -- -- -- --
9 Oct. 22 (M) Review HW-3 -- -- --
10 Oct. 24 (W) Floats, URL relativity, Grid, Flexbox, Midterm final questions -- -- --
11 Oct. 29 (M) Midterm -- -- Midterm
12 Oct. 31 (W) Midterm recap, extra topics (database overview, etc.) -- -- --
13 Nov. 5 (M) Project demos -- -- Project 1
14 Nov. 7 (W) JavaScript intro -- HW-2 --
15 Nov. 12 (M) JavaScript -- HW-3 HW-2
-- Nov. 14 (W) NO CLASS -- -- --
16 Nov. 19 (M) JavaScript OOP, closures -- HW-4 HW-3
17 Nov. 21 (W) JavaScript events, DOM/BOM -- Project 2 --
18 Nov. 26 (M) JavaScript libraries -- HW-5 HW-4
19 Nov. 28 (W) Frameworks, design standards, style guides -- -- --
20 Dec. 3 (M) AJAX, JSON, APIs -- -- HW-5
21 Dec. 5 (W) JavaScript -- -- --
22 Dec. 10 (M) Project demos, final review, CMSs -- -- Project 2
-- Dec. 12 (W) NO CLASS -- -- --
F Dec. 17 (M) Final exam (6:15–8:15pm) -- -- Final

Academic Integrity

This course observed and upholds the CUNY Policy on Academic Integrity as discussed in the Lehman Academic Integrity section of the 2017-2019 Undergraduate Bulletin. Each student in this course is expected to abide by this policy. Any work submitted by a student in this course for academic credit will be the student's own work. Collaboration is allowed where assignments are designated as group projects.

You are encouraged to study together and to discuss information and concepts covered in lecture and the sections with other students. You can give "consulting" help to or receive "consulting" help from such students. However, this permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in the form of an e-mail, an e-mail attachment file, a diskette, or a hard copy.

Should copying occur, both the student who copied work from another student and the student who gave material to be copied will both automatically receive a zero for the assignment. Penalty for violation of this Code can also be extended to include failure of the course and University disciplinary action.

During examinations, you must do your own work. Talking or discussion is not permitted during the examinations, nor may you compare papers, copy from others, or collaborate in any way. Any collaborative behavior during the examinations will result in failure of the exam, and may lead to failure of the course and University disciplinary action.

Reasonable Accommodations and Academic Adjustments

In compliance with CUNY policy (PDF) and equal access laws, I am available to discuss appropriate academic accommodations that may be required for student with disabilities.

Inclusivity Statement

We understand that our members represent a rich variety of backgrounds and perspectives. The Computer Science department is committed to providing an atmosphere for learning that respects diversity. While working together to build this community we ask all members to:

  • share their unique experiences, values and beliefs
  • be open to the views of others
  • honor the uniqueness of their colleagues
  • appreciate the opportunity that we have to learn from each other in this community
  • value each other's opinions and communicate in a respectful manner
  • keep confidential discussions that the community has of a personal (or professional) nature
  • use this opportunity together to discuss ways in which we can create an inclusive environment in this course and across the CUNY community

Releases

No releases published

Packages

No packages published