Department of Computer Science, Lehman College
Spring, 2019 – Academic Calendar
Instructor: Ross Dakin
Lecture: Monday 6:00-9:30 p.m. (Gillet 207)
Office Hours: By Appointment (in person) / Slack (virtual)
Grading: Letter Grade
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 the creation of the applications that it enables.
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.
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-readiness. Specific concepts and technologies are highlighted in the course schedule below.
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.
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.
Tasks and assignments are intended to align with the learning outcomes specified above.
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.
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.
This course will employ the following assignments:
Assignment | Percent | Format | Content |
---|---|---|---|
Homework (5) | 20% (4% 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 the ability to develop a 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
May change to accommodate guest presenters and student needs.
Lecture | Date | Content | Readings | Assigned | Due |
---|---|---|---|---|---|
1 | Jan. 28 | Intro, surveys, the web, HTML, URL anatomy | -- | -- | -- |
2 | Feb. 4 | HTML | -- | -- | -- |
3 | Feb. 11 | HTML/CSS, Slack, GitHub | -- | HW-1 | -- |
-- | Feb. 18 | NO CLASS | -- | -- | -- |
4 | Feb. 25 | Review HW-1, CSS, page layout, form project groups | -- | -- | HW-1 |
5 | Mar. 4 | NO CLASS (WEATHER) Discuss Project 1, HTML/CSS review | -- | Project 1 | -- |
6 | Mar. 11 | [VIRTUAL] Project 1 check-in, collaboration time | -- | -- | -- |
7 | Mar. 18 | Project 1 demos, midterm review | -- | -- | -- |
8 | Mar. 25 | Midterm | -- | -- | -- |
9 | Apr. 1 | JavaScript intro | -- | -- | -- |
10 | Apr. 8 | -- | -- | -- | Project 1 |
11 | Apr. 15 | -- | -- | Project 2 | -- |
-- | Apr. 22 | NO CLASS | -- | -- | -- |
12 | Apr. 29 | -- | -- | -- | -- |
13 | May 6 | -- | -- | -- | -- |
14 | May 13 | Project 2 demos, final review | -- | -- | Project 2 |
F | May 20 | Final Exam | -- | -- | -- |
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.
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.
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