Curriculum

What our students learn.

Market Ready

The curriculum at Base Camp Coding Academy is anything but static. We want our graduates to have a competitive leg up in the industry, so we prep them with the latest and greatest in tools and technology. Our curriculum committee of industry leaders meets regularly to review recent advancements in software engineering and make adjustments to the curriculum as necessary. Throughout the year, Base Campers will be trained in:

Every developer needs a solid foundation. Our students learn how to turn problems into solutions as they learn the Python programming language.

The web is everywhere, and so are our students. They bring their newfound skills to the browser as they learn HTML, CSS, and JavaScript.

Our students learn the fundamentals of backend web development with the Django web framework. We write out HTTP requests and responses by hand, predict what SQL will be generated by our ORM, and provide rich input validation.

Base Campers learn how to work effectively in an Object-Oriented environment as they revisit their fundamentals in Java. Students appreciate the similarities and differences between tools as they compare their past experiences in Python and JavaScript with Java.

We finish our Java coverage by revisiting web development with the Spring web framework. Students build full stack web applications with Spring MVC and send hand-crafted SQL to their PostgreSQL instance with JDBC.

In addition to all of the technical skills that Base Campers acquire during our program, we also focus on their development as professionals. This involves daily activities centered around effective communication, leadership, interviewing, and personal growth.

Technical Curriculum Details

Language Basics and Application Fundamentals

 

Static 
Web Development

 

Dynamic Web Development

 

Java Application Development

 

Language Basics and Application Fundamentals

PART I: Fundamentals of Programming

Languages

  • Python

Resources

  • Gries, Paul, Campbell, Jennifer, Montojo, Jason (2013) Practical Programming: An Introduction to Computer Science Using Python 3 (2nd Edition). Dallas, TX: The Pragmatic Bookshelf.

  • Coding Bat

Modules

  • Introduction to Programming

  • Function Design

  • Modular Program Organization

  • Decision Making and Looping

  • Data Collection Types

Benchmarks

  • Variables, Numbers, Functions, Strings, IO

  • Branching, Modules, and Command Line Basics

  • Methods, Lists, and GitBasics

  • Loops

PART II: Advanced Python Skills

Languages

  • Python

Resources

  • Gries, Paul, Campbell, Jennifer, Montojo, Jason (2013) Practical Programming: An Introduction to Computer Science Using Python 3 (2nd Edition). Dallas, TX: The Pragmatic Bookshelf.

Modules

  • File Input/Output

  • Algorightm Basics

  • Databases

  • Object-Oriented Programming

  • GitHub

Benchmarks

  • File I/O and Git/GitHub Branching

  • Alternate Data Structures, Algorithms Basics

  • OOP, Testing and Debugging

  • SQL

Static Web Development

PART III: Introduction to HTML and CSS

Languages

  • HTML

  • CSS

Resources

  • FreeCodeCamp

  • Mozilla Developer Network

Modules

  • Web Page Construction and Structure

  • HTML Elements

  • Box Model

  • Layout vs Components

  • CSS Formatting

  • CSS Flexbox

  • Front End Process and Design

  • Hosting on Github Pages

  • Eleventy

Benchmarks

  • HTML/CSS, DevTools, GitHub Pages

  • Semantic HTML

  • CSS Flex, CSS Grid

  • Media Queries, BEM

Dynamic Web Development

PART IV: Django Basics

Framework

  • Django

Resources

  • Vincent, William (2018) Django for Beginners: Learn Web Development with Django 2.0. Independently Published.

Modules

  • User Management

  • Deployment

  • Handling Requests with Django Views

  • Processing Forms with Django Forms

  • Planning and Constructing Models

  • Testing Basics

Benchmarks

  • Django Views, Templates, Routes

  • Django Models, Admin, PostgreSQL, PgAdmin

  • Django Forms, ModelForms

  • Testing Views/Models/Forms, Deploying to Heroku

PART V: Advanced Django

Framework

  • Django

Resources

  • Django Documentation. 
Django Software Foundation, 2017, 
www.docs.djangoproject.com/en/1.10/
Accessed 01 Feb. 2017

Modules

  • Fundamentals of Cookie-Based Authentication and Authorization

  • Basics of End-To-End Testing

  • Custom User Models

  • Email, Bootstrap, and PostgreSQL integration

Benchmarks

  • Django ForeignKey, ManyToMany, OneToOne

  • Database Performance Issues

  • End to End Testing with Selenium

  • Performance/Error Monitoring, Sending Emails in Production

Part VI: Advanced Front End Skills

Languages

  • HTML

  • CSS

  • Javascript

Resources

  • Haverbeke, Marijn (2018) Eloquent JavaScript: A Modern Introduction to Programming (3rd Edition). No Starch Press.

Modules

  • Converting Static HTML into a Template

  • Extracting Partials from a Template

  • Submitting Forms

  • JavaScript Fundamentals

  • DOM manipulation

  • Event Handling

  • Fetching Data From an API Endpoint

Benchmarks

  • JavaScript Language Basics

  • JavaScript Exceptions, Regular Expressions, Modules, Promises

  • DOM Basics, Events

  • Canvas, Fetch, Forms, LocalStorage

Java Application Development

PART VII: Foundations in Java

Language

  • Java

Resources

  • Sierra, Kathy, Bates, Bert (2003) Head First Java. O'Reilly.

  • CodingBat

  • CodeWars

Modules

  • Primitive Data Types

  • Operators and Expressions

  • Control Structures

  • Object-Oriented Programming and Classes

  • Collections

  • Inheritance

  • Exceptions

  • Interfaces

  • File I/O

Benchmarks

  • Java Language Basics

  • Java API, Inheritance, Polymorphism

  • Object Lifecycle, Singletons and static, Exceptions

  • File IO: Serializable, File IO: Plain text, Generics, List, Set, Map

Part VIII: Spring Framework Web Application Development

Languages

  • Django

Resources

  • Walls, Craig (2011). Spring in Action: Covers Spring 3.0 (3rd Edition). Wiley India Pvt. Limited.

Modules

  • Lombok

  • Thymeleaf

  • JDBC & JPA

  • Security

  • Rest APIs

Cumulative Project

  • Lombok, Initializing a Spring Boot Project, Spring MVC Basics, Thymeleaf

  • Database Access with JDBC and JPA

  • JDBC/JPA User Store, Spring Security

  • RestController, Spring Data Rest

Professional Curriculum Details

Communication

 

Writing and Interviewing

 

Leadership Development

 

Employement Preparation

 

Communication

PART I: Interpersonal & Organizational Communication

Modules

  • Active Listening

  • Study Habits

  • Networking

  • Email Basics

  • Giving and Receiving Feedback

  • Goal Setting

  • Growth Mindset

Benchmarks

  • Professional Introductions

  • Elevator Pitches

  • Meet and Greet Skills

  • Professional Email Prompt Response

  • Mentor Assignments

  • Comprehensive Feedback on Peer Portfolios

  • Peer Feedback

Part II: Public Speaking

Modules

  • Writing Personal Narrative Speech

  • Presenting Personal Narrative Speech

  • Leadership Projects

  • Capstone Project Presentation

Benchmarks

  • Narrative Speech Presentation

  • Leadership Project Group Presentation

  • Unit Project Presentation

  • Knowledge Presentation

  • Capstone Project Presentation

Writing and Interviewing

PART III: Professional Writing

Modules

  • Social Media & Personal Brand

  • Blog Posts

  • Project Summaries

  • Resume Writing

  • Cover Letter Writing

Benchmarks

  • Write Social Media Biographies

  • Written Summary of Website Design Choice

  • Blog Posts Idea & Outline Submission

  • Written Portfolio Content

  • Approved Resume

Part IV: Interviewing

Modules

  • STAR Method Interviews & Practice

  • Technical Interview Preparation

  • Virtual Interview Preparation

  • Phone Etiquette

  • Interview Practice - Story Preparation

Benchmarks

  • First Interview

  • Submit Cover Letter

  • Virtual Interview

  • Phone Etiquette Call

Leadership Development

PART V: Leadership Projects

Modules

  • LP Assignments

  • LP Project Goal Setting

  • LP Progress Update

  • LP End of Year Progress and Summary

Benchmarks

  • LP Proposals

  • LP Final Presentations

Part VI: Self-Assessments

Modules

  • Tracking Independent Study and Learning

  • Resume and Portfolio Updates

  • Goal Check-Ins

  • Peer Feedback Reviews

Benchmarks

  • Weekly Summary

  • Behavorial Interview

  • Personal Growth Reflection

Employment Preparation

PART VII: Capstone Project Presentation

Modules

  • Preparing Visual Aids

  • Group Presentation Outlines

  • Capstone Project Presentations

Benchmarks

  • Submit Presentation Outline

  • Practice Presentation

  • Final Capstone Project Presentation

Part VIII: Applying for Jobs and Preparing for Interviews

Modules

  • Professional Dress

  • Introduction to Virtual Work Spaces

  • Virtual Interview Practice

  • Individual Interviews

Benchmarks

  • Participate in professional Zoom/virtual video call

  • Virtual Interview

  • Leadership Project - Final Presentations

  • Submit Personal Growth Reflections

  • Final Individual Interview

Capstone Project

Technical Knowledge Demonstration

This final unit gives the students time and support to develop a final project representing the culmination of their technical skills.  Students are responsible for proposing, designing, developing, deploying, and presenting their project.  By the end of this unit, students have a stellar project providing evidence of their skill set as a developer.

Professionalism Demonstration

The final project is completed in a group setting, under the guidance of a customer, culminating in a final project presentation, and there is a large professionalism component to the Captston Project.  Students must identify a “customer” that will drive their project goals and demonstrate their ability to work as a team to accomplish their goals.  To finalize the project, students give a group presentation of their final product.  These components enable each student to demonstrate their ability to complete their own tasks, support their teammates, communicate with customers, effectively coordinate team projects, and present their results in a professional and polished way.