Giter Site home page Giter Site logo

intro-to-web-development's Introduction

CMP 464 – Web Programming

Department of Computer Science, Lehman College
Fall, 2020

Instructor: Cam Flowers
Lecture: Mondays & Wednesdays 7:50-9:30 p.m.
Office Hours: Thursdays 5-6 p.m.
Grading: Letter Grade

Rationalle

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 and participation policy

Attendance is a graded component of this class, 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)
  • Homework 1 (10%)

    • Introduction to React & Git
    • Intents:
      • Demonstrate ability to develop React website
      • Add to students' public GitHub portfolios
  • Homework 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
  • Homework 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 -- -- --
10 Week 10 Navigation with React-Router -- PROJ 1 --
11 Week 11 External Modules -- --
12 Week 12 Async-Await & Fetch -- -- PROJ 1 Due
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

intro-to-web-development's People

Contributors

camunity avatar nathanok avatar jramire16 avatar mled95 avatar carlosmdiaz avatar aboubakarisoumanoup avatar abrahamlara avatar ala123sobhan avatar codingwithcdje avatar davidmoran-silva avatar jontrader avatar josefbautista94 avatar kabduldev avatar tygerrtygerr avatar omar-jimenez3 avatar sam34512 avatar jrosario22 avatar kauserahmed avatar kristel-spike avatar miker179 avatar saiful-csc avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.