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
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
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.