Skip to content

camunity/intro-to-web-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMP 464 – Web Programming

Department of Computer Science, Lehman College
Spring, 2022

Instructor: Cameron Flowers
Lecture: Tuesdays & Thursdays 7:50-9:30 p.m.
Grading: Letter Grade

Rationale

Some of the most exciting technological developments are occuring via web-based frameworks across the full stack. In this course we will discuss frontend and backend programming in Javascript and learn the essentials of modern web development. We will build dynamic web sites utilizing current industry-preferred frameworks and modules including React.JS.

Course Aims and Outcomes

Aims

As a result of participating in this course, students will be able to explain the fundamental architecture of the web ecosystem, demonstrate proficiency in the fundamental languages of web programming, and create web applications using modern frameworks in preparation for a healthy career in web development.

Specific Learning Outcomes

By the end of this course, students will be well-versed in the fundamentals of modern web development in JavaScript. They will be introduced to HTML and CSS through in-class project based learning utilizing resources curated by the World Wide Web organization. Building on this foundation, client-side JavaScript frameworks are introduced; students will learn the concepts, syntax, and benefits of contemporary front-end JavaScript frameworks (e.g. React.js and Redux). Students will be able to develop interactive frontend applications by the midterm of the course. The course will then introduce back-end web application concepts such as databases, application servers and cloud based hosting. By the completion of the course, students will be able to develop a “full stack” web application 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 a week 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 homework and written assessments.

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.

Course Requirements

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

Class attendance

Attendance is not a graded component of this class, however students are encouraged to attend all lectures to fully benefit from the delivered material 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.

Assignments

Student grades in this course will be assigned as follows:

  • Participation (20%)

    • Intents:

      • Reinforce readings/lecture content
      • Practice writing code
      • Learn to collaborate with other engineers
      • Practice using GitHub (delivery/submission vehicle)
  • Check In 1 (10%)

    • Introduction to React & Git

    • Intents:

      • Demonstrate ability to develop React website
      • Add to students' public GitHub portfolios
  • Check In 2 (10%)

    • React Fundamentals

    • Intents:

      • Demonstrate intermediate knowledge of React
      • Demonstrate modern software architecture using Redux
      • Add to students' portfolio of work
      • Practice code collaboration
  • Check In 3 (10%)

    • Intermediate React

    • Intents:

      • Demonstrate ability to develop a full-stack web application
      • Add to students' GitHub portfolios
      • Practice code collaboration
  • Project 1 (25%)

    • React (front-end application)
    • Intents:
      • Demonstrate ability to develop a dynamic React application
      • Assess student's understanding of project scoping and management
      • Practice code collaboration and documentation
  • Project 2 (25%)

  • Intents: Advanced React

    • Demonstrate knowledge of subject matter
    • Practice pitching and presentation aspect of live interviews

Tentative Course Schedule

May change to accommodate guest presenters & student needs.

Lecture Date Content Readings Assigned Due
1 Week 1 Intro -- -- --
2 Week 2 Fundamentals of JavaScript Pt. 1
3 Week 3 Fundamentals of JavaScript Pt. 2 --
4 Week 4 Intro to React.JS Pt. 1 React HW1 --
5 Week 5 Intro to React.JS Pt. 2 -- -- HW 1 Due
6 Week 6 Fundamentals of React -- HW2
7 Week 7 Fundamentals of React -- -- HW2 Due
8 Week 8 Conditional Rendering with State & Props -- HW3 --
9 Week 9 Styling in React -- HW3 --
10 Week 10 Navigation with React-Router -- -- --
11 Week 11 External Modules -- --
12 Week 12 Async-Await & Fetch -- -- PROJ 1
13 Week 13 Redux -- Final Project --
14 Week 14 Cloud Databases -- Final Project --
15 Week 15 Final Project
16 Week 16 Final Project -- -- Final Project Due
-- TBA -- -- -- Final Showcase

Academic Integrity

This course observed and upholds the CUNY Policy on Academic Integrity (Accessible Plain Text). 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

About

CMP464 @ Lehman College

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published