Syllabus

Embrace the chaos of not knowing.

-Travis Talcott, Cohort 13

Class Name Fullstack Web Development
Class Days & Times Monday - Thursday: 08:00 — 17:00
Friday: 08:00 — 15:00
Class Location CNM STEMulus Center
20 1st Plaza Center NW
Albuquerque, NM 87102
Instructors Marty Bonacci mbonacci@cnm.edu MartyBonacci
George Kephart gkephart@cnm.edu GKephart

Course Description

The Deep Dive Coding Bootcamp is a 10-week intense, immersive web development course. Javascript, React, Node, Express, Functional Programming, Agile Methodologies, Typescript, Redux, PostgresSQL, HTML, CSS, and Bootstrap will be fully covered and explored as students work on a comprehensive, all-inclusive, final project. Students will become fluent in fullstack web development and create a project portfolio to present to employers. Professional development and image is also covered in preparation for entering the IT job market.

There are three primary coding deliverables:

  • PWP: Personal Website Project to be presented in your professional portfolio after the bootcamp as an example of your work
  • Capstone: Web Application created by teams of 3-4. Built using technologies taught in class, and managed by using industry proven Agile principals.
  • Various assignments and assessments designed to demonstrate web development skills

Evaluation

The class will be evaluated in four categories:

  1. Capstone: 30%
  2. Personal Web Project (PWP): 30%
  3. Participation: 26%
  4. Assignments: 14%

The overall passing score in the class is ≥ 75.00%.

The Capstone and PWP have individual rubrics and milestones. Participants must earn passing grades in both the Capstone and the PWP to pass the bootcamp.

Participation grades will be based on attendance and participation in class through questions and discussion, as well as participation in required non-class activities such as individual check-ins and professional development seminars.

Periodically throughout the Bootcamp, there will be required graded assignments. These will be graded pass-fail based on the amount of effort put into the assignment.

Student Learning Outcomes

Upon successful completion of the course, the participant will be able to:

  1. Implement industry proven problem solving techniques
  2. Demonstrate professional connections in the industry to build a network and learn their secrets to success
  3. Develop a full stack web application using Node, Next, Express, Postgres, CSS, and JavaScript
  4. Create a personal brand online to market yourself as a web developer
  5. Build a web application as a team
  6. Create a personal website from scratch

Textbook

The textbook for the class is available online for free.

Hardware & Software Requirements

To participate in the bootcamp, you must be using a laptop that can handle running a suite of developer tools while also able to run the Zoom videoconferencing platform.

Formal hardware specifications are below, but if you are looking for general guidance on how to purchase a new laptop for the bootcamp, this generally means that you can go to a vendor who sells laptops and request a mid-level laptop suitable for day-to-day development. Top-of-the-line models will provide a marginally better experience in terms of speed and are nice if you can afford them, but they are not necessary for the bootcamp.

The formal system requirements are:

Operating systems

  • Linux: Ubuntu 20.04 “Bionic” or above
  • Mac OS X: “Sierra” 10.12.x or above
  • Windows: Windows 10

CPU

  • 64-bit Intel or AMD5
  • 2 processing cores minimum, 4+ cores recommended

RAM

  • 8GB minimum, 12GB+ recommended
  • Free/available storage space (hard disk drive or SSD)
  • 30 GB minimum, 50+GB strongly recommended

All the following browsers are required, based on the installed operating system:

Table 1: Required Web Browsers

Chrome Firefox Edge Safari
Linux
Mac OS X
Windows

Since all web development will be done “mobile first”, a mobile device is helpful. There are no specific requirements to mobile devices, however, Android KitKat (4.4.x) or iOS 7.x or above are recommended.

Ask Good Questions

Asking questions is critical in software development. Software developers are constantly under stress and realize that being a good team player is sharing the burden. Because of this stress, well researched questions are vital. The strategy you are required to use is:

  1. Read the documentation, code examples, Google searches, etc for at least 20 minutes.
  2. Ask your peers.
  3. Ask your instructors.

This process will engage you in the problem on a deep level and form good habits required in the software development world.

Attendance & Participation

As stated in the course expectations and policies, attendance is crucial: failure to maintain satisfactory attendance may result in a student's dismissal from the Bootcamp. Attendance in the Bootcamp is not merely a matter of being present during class time but also includes active participation in classroom activities, open work time, and professional development, as well as adherence to an industry-standard set of programming practices, standards, and conventions.

Expected practices include the constant use of the git version control system and GitHub for maintaining repositories of Bootcamp assignments and projects. Work in classroom exercises and projects is graded according to what is on Github. Failure to follow this practice for project work will significantly impact the score the student receives for the project(s). Repeated failure to follow this practice for work done in classroom exercises may result in the student being dismissed for unsatisfactory attendance and participation.

Unless a student has reached out to an instructor about an extenuating circumstance or previously arranged to miss a require class activity, failure to actively participate in any required activity will be treated as an unexcused absence.

If you have questions or concerns about this information, please reach out to your instructors. We are committed to your safety and your success.

Class Topics

Backend

  • Postgres & Data Design
    • Database Design
    • Entity Relationship Diagrams (ERD)
    • Data Description Language (DDL)
    • SQL syntax and operations
    • Password hashing and storage
    • SQL Injection protection and prepared statements
  • Javascript
    • Essential JavaScript syntax
    • Control Structures
    • Loops
    • Functions
    • Software design patterns, including functional JavaScript
    • Cookies & Sessions
    • Node.js and npm
    • Express and user input validation
    • REST
    • Typescript
    • XSS and CSRF protection
  • Dev-Ops and Project Management
    • Hosting
    • Linux command line
    • Version control and git branching
    • Secure API Key and password storage via environment variables
    • Docker containerization
    • Sprint-based workflows
    • Agile development processes

Frontend

  • HTML
    • HTML & the Document Object Model (DOM)
    • Forms
  • CSS
    • Essential CSS
    • Responsive CSS
    • CSS Box Model
    • Tailwind CSS
  • UI/UX
    • User-driven design
    • User Experience Essentials
    • Principles of web Design
  • JavaScript
    • JavaScript Events
    • Making Server Requests using Promises
    • Debugging with Dev Tools
    • Form validation
  • React & NextJs
    • React Architecture
    • React Server Components
    • Component Architecture
    • JSON APIs