Deep Dive Coding Bootcamp Class Syllabus

Embrace the chaos of not knowing.

Travis Talcott, Cohort 13
Class Name Web Development with PHP
Class Days & Times Monday - Thursday: 08:00 — 17:00
Friday: 08:00 — 12:00
Class Location CNM STEMulus Center
20 1st Plaza Center NW
Albuquerque, NM 87102
Instructors
George Kephart gkephart@cnm.edu GKephart
Chloe Edeal cedeal@cnm.edu chloeedeal
Brent Kie bkie3@cnm.edu brentTheDev

Course Description

The Deep Dive Coding Bootcamp is a 10-week intense, immersive web development course. MySQL 5.7, Object-oriented programming, Agile methodologies, PHP 7.2, HTML5, CSS 3, JavaScript, Bootstrap 4 and the Angular 6 framework will be fully covered and explored as students work on a comprehensive, all inclusive, final project. Students will become fluent in full-stack 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:

  • Data-design: Back-end design of a well-known site (Craigslist, Etsy, Reddit, etc.)
  • PWP: Personal Website to market your professional image
  • Capstone: Web Application created by teams of 3-4. Built using technologies taught in class, and managed by using industry proven Agile principals.

Student Learning Outcomes

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

  1. Implement industry proven problem solving techniques
  2. Be exposed to professionals in the industry to build your network and learn their secrets to success
  3. Learn PHP, mySQL, HTML, CSS, and JavaScript to become a full stack web developer
  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

Your textbook will be sent to you or available for pick-up when you sign up for the Bootcamp.

Hardware & Software Requirements

One of the following operating systems:

  • Linux: Ubuntu 16.04 “Xenial” or above
  • Mac OS X: “Yosemite” 10.10.x or above
  • Windows: Windows 8.1 or above

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

Table 1: Required Web Browsers
Chrome Firefox Internet Explorer Edge Opera 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.

Class Topics

Backend

  • mySQL & Data Design
    • Database Design
    • Data Description Language (DDL)
    • Object Manipulation Language (OML)
    • Query Optimization
  • PHP
    • Essential PHP syntax
    • Control Structures
    • Loops
    • Functions
    • Object oriented PHP
    • Cookies & Sessions
    • composer Package Manager
    • IPv6
  • Object Oriented
    • Basic Object Oriented
    • Composition
    • Design Patterns
    • Inheritance
    • Unit Testing with PHPUnit
    • Big O Notation

Frontend

  • HTML
    • HTML & the Document Object Model (DOM)
    • Bootstrap Framework
  • CSS
    • Essential CSS
    • CSS for Mobile First Development
    • CSS Box Model
  • UI/UX
    • User Experience Essentials
    • Web Design Essentials
    • User Interface Essentials
  • JavaScript
    • Essential JavaScript
    • JavaScript Events
    • Making API calls using Fetch
    • Debugging with Dev Tools
  • Angular & Node
    • npm Package Manager
    • Angular Architecture
    • Component Architecture
    • JSON APIs
    • RESTful Design Pattern
    • Webpack

Security

  • Backend Security
    • PHP Type Declarations
    • Using filter_var to validate data
    • Hashing Passwords
    • Salting Passwords
    • Synchronizer Token Design Pattern
    • Encrypted Property Files
    • Regular Expressions
    • Session Security
    • JWT Tokens
  • Frontend Security
    • Angular Form Validation
    • jQuery Form Validation
    • NEVER Trust the End User
    • Cookie Security
    • Information Leakage
  • Attacks & Defenses
    • Cross Site Request Forgery (CSRF/XSRF)
    • Cross Site Scripting (XSS)
    • SQL Injection
    • Shell Injection
    • Social Engineering

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. The standard for attendance in this Deep Dive Coding bootcamp is not simply a matter of physical presence, but also includes active participation in classroom lectures and exercises, workouts, professional development activities, and adherence to a minimal set of programming practices, standards, and conventions.

In particular, the expected practices include the diligent use of the git version control system and the GitHub service for maintaining repositories of work done in the bootcamp: As a rule, your work in classroom exercises and projects is assessed according to what has been placed under Git version control and pushed to GitHub. A student's failure to follow this practice for project work will significantly impact the score the student receives for the project(s). A student'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 previously arranged to opt out of one or more workout or professional development activities, failure to participate in these will be treated as an unexcused absence.

Evaluation

The class will be evaluated in three categories:

  1. Capstone: 50%
  2. Personal Web Site: 30%
  3. Assessments: 20%

The capstone and personal web sites have their own rubrics and different milestones that are required to be achieved. Assessments will be administered in three phases in which you will be building a simple application. The three phases are Classes and MySQL, REST and Security, and HTML CSS and Javascript. The overall passing score in the class is ≥ 75.00%.