Full Stack Software Development - MERN
Course Description
Embark on this 15-week course to master the essentials and advanced web design and development concepts, covering full-stack development with the MERN stack (MongoDB, Express, React, Node).
This course is designed for learners who aspire to become proficient full-stack developers. This comprehensive journey begins with the fundamentals of web interfaces with HTML and CSS, progresses through foundational programming concepts with JavaScript, and then explores more advanced tools like TypeScript and React. Afterward, it dives into server-side development with Express running on Node and a MongoDB database layer. All of this aided by one of the most modern advantages software development has to offer: artificial intelligence (AI).
Through an array of interactive labs, captivating lectures, and collaborative projects, learners will develop sophisticated applications, understand the intricacies of web and software development, and leverage AI tools to enhance their coding efficiency. As part of the course, learners will participate in a “workplace simulation” framework that immerses them in practical, real-world scenarios on a daily basis so that they may learn by doing, and gain the confidence to succeed in industry.
Course Objectives
Upon successful completion of all course requirements, learners will:
- Design responsive and visually appealing web interfaces using HTML, CSS, and modern web design tools.
- Develop dynamic, interactive frontend applications with JavaScript and advanced React concepts.
- Build and manage robust backend systems using Node.js, Express.js, and MongoDB.
- Create a comprehensive portfolio of a full-stack project, demonstrating proficiency in the MERN stack and secure application development.
- Explore cutting-edge AI technologies within the technology domain to enhance outcomes.
Learners will be equipped to pursue a range of roles in the software development space, with a strong foundation in both front-end and back-end technologies, ready to tackle complex development projects and contribute to the ever-evolving tech industry.
Prerequisites
To be considered for this course, learners are required to meet the minimal qualifications for a Per Scholas course and must also demonstrate comprehension, critical thinking, and digital literacy skills through a baseline assessment.
Additionally, learners must complete approximately twenty (20) hours of self-study materials to prepare for the course, included here for reference: Software Development Pre-Work Instructions .
Course Materials
All course materials are accessible through the Canvas Learning Management System (LMS) .
An onboarding presentation for the Workplace Simulation training you will be participating in can also be found here ; your instructors will likely go over this presentation with you during the first days of class.
Course Components and Grading
All assignments and assessments can be found within the Canvas LMS. The following sections describe the purpose, methodology, policies, and weight for graded material.
Description of Assignments
The following labels and acronyms will be used throughout the course:
- Labs
- Small tasks or projects that aid in skill formation and progress assessment.
- Graded as either complete/incomplete or via a rubric, depending on the complexity of the lab.
- Knowledge-Based Assessments (KBA)
- Timed quizzes that cover factual knowledge and critical thinking skills, rather than practical usage of technical skills.
- Useful for interview practice, and general ability to confidently communicate technical knowledge.
- Skill-Based Assessments (SBA)
- Open-book, cumulative programming tasks that demonstrate practical knowledge and skill proficiency with a module’s content.
- Projects
- Week-long (or more) projects that showcase the skills gained throughout a specific section of the course.
- In-Class Participation (ICP)
- An assessment of participation throughout the course, including:
- Verbal and written communication to peers and instructors, including on module discussion boards.
- Active listening and solution-seeking through questions and independent research.
- Teamwork, such as collaboration during group activities or assignments, but also including empowering peers to meet their objectives through whatever means an individual has available.
- Punctuality and preparedness, particularly when assigned material to complete between class days.
- An assessment of participation throughout the course, including:
Grade Weights by Assignment Type
The weight of each assignment category, as well as a brief description of the category, is as follows.
Assignment Type | Description | Count | Total Weight |
---|---|---|---|
Lab | Small tasks or projects that aid in skill formation and progress assessment. Graded as either complete/incomplete or via a rubric, depending on the complexity of the lab. | 33 | 19% |
SBA | Open-book, cumulative programming tasks that demonstrate practical knowledge and skill proficiency with a module’s content. | 11 | 19% |
KBA | Timed quizzes that cover factual knowledge and critical thinking skills, rather than practical usage of technical skills. Useful for interview practice, and general ability to confidently communicate technical knowledge. | 12 | 7% |
Project | Week-long (or more) projects that showcase the skills gained throughout a specific section of the course. | 4 | 50% |
ICP | An assessment of participation throughout the course, including: Verbal and written communication to peers and instructors (including on module discussion boards); Active listening and solution-seeking through questions and independent research; Teamwork, such as collaboration during group activities or assignments, but also including empowering peers to meet their objectives through whatever means available; Punctuality and preparedness, particularly when assigned material to complete between class days. | N/A | 5% |
Total | Total | 60 | 100% |
Grade Weights by Module
The weight of each module can be broken down as follows.
Module | Assessment | % Weight | Module Weight |
---|---|---|---|
1. Introduction to Version Control | Lab 1.1: Branching, Merging, and Handling Conflicts | 0.6% | 2% |
SBA 1: Version Control | 1.1% | ||
KBA 1: Version Control | 0.6% | ||
2. HTML and CSS Review with Accessibility | Lab 2.1: Interactive Accessibility Lesson | 0.4% | 2% |
SBA 2: Building a Responsive and Accessible Web Page | 1.5% | ||
KBA 2: HTML and CSS Review | 0.6% | ||
3. Foundations of Web Design | Lab 3.1: Exploring Advanced Figma Features | 0.6% | 4% |
Lab 3.2: Practicing Implementation with Frontend Mentor | 0.9% | ||
Lab 3.3: Developing with Bootstrap | 0.6% | ||
SBA 3: Design and Development | 1.8% | ||
KBA 3: Foundations of Web Design | 0.6% | ||
4. JavaScript Review | Lab 4.1: Variables and Functions | 0.6% | 4% |
Lab 4.2: Array Manipulation | 0.6% | ||
SBA 4: Task Management App | 1.8% | ||
KBA 4: JavaScript Review | 0.6% | ||
5. The Document Object Model | Lab 5.1: Dynamic Content Creation | 0.6% | 4% |
Lab 5.2: Form Validation and DOM Manipulation | 0.6% | ||
SBA 5: The Document Object Model | 1.8% | ||
KBA 5: DOM Concepts | 0.6% | ||
6. TypeScript and Advanced JavaScript | Lab 6.1: TypeScript and Object-Oriented Programming | 0.6% | 4% |
Lab 6.2: Promises and Error Handling Challenge | 0.6% | ||
SBA 6: TypeScript and Advanced JavaScript | 1.8% | ||
KBA 6: TypeScript and Advanced JavaScript | 0.6% | ||
7. Project: HTML and CSS | Project: HTML, CSS, and JavaScript | 9.2% | 9% |
8. Introduction to Artificial Intelligence (AI) and Tools for Software Engineering | Lab 8.1: Generating Code with Codeium | 0.2% | 1% |
Lab 8.2: Refactoring Code with Codeium | 0.2% | ||
Lab 8.3: Translating Code with Codeium | 0.2% | ||
Lab 8.4: An AI Coding Challenge | 0.2% | ||
KBA 8: Fundamentals of Generative AI | 0.6% | ||
9. React Fundamentals | Lab 9.1: Component Basics | 0.6% | 4% |
Lab 9.2: Props and State | 0.9% | ||
Lab 9.3: Event Handling | 0.6% | ||
SBA 9: React Dashboard Application | 1.8% | ||
KBA 9: React Fundamentals | 0.6% | ||
10. Advanced React | Lab 10.1: React Counter | 0.2% | 5% |
Lab 10.2: Custom Hooks | 0.7% | ||
Lab 10.3: Context API | 0.9% | ||
Lab 10.4: Dynamic Routing | 0.4% | ||
SBA 10: Advanced React | 1.8% | ||
KBA 10: Advanced React Concepts | 0.6% | ||
11. Project: React Development | Project: React Development | 13.8% | 14% |
12. Node and Express | Lab 12.1: Build a Basic Express Server | 0.7% | 4% |
Lab 12.2: Server to Server Communication | 0.6% | ||
SBA 12: Build a RESTful Server | 1.8% | ||
KBA 12: Node and Express | 0.6% | ||
13. MongoDB Fundamentals | Lab 13.1: Connecting a Database | 0.4% | 4% |
Lab 13.2: Mongoose Models and Schemas | 0.9% | ||
SBA 13: Integrating a Database | 1.8% | ||
KBA 13: MongoDB Fundamentals | 0.6% | ||
14. Authentication and Authorization Principles | Lab 14.1: Basic Login System | 0.6% | 4% |
Lab 14.2: Secure Record Storage | 0.9% | ||
Lab 14.3: OAuth Integration | 0.6% | ||
SBA 14: Secure Web Portal | 1.8% | ||
KBA 14: Auth Principles | 0.6% | ||
15. Project: Back-end Development | Project: Backend Development | 9.2% | 9% |
16. Unifying User Interfaces with Web Applications | Lab 16.1: Full-Stack Integration | 0.9% | 1% |
Lab 16.2: API Flexibility | 0.6% | ||
17. Deploying MERN Applications | Lab 17.1: CI/CD Pipelines | 0.6% | 1% |
Lab 17.2: Full-Stack Deployment | 0.6% | ||
18. Project: MERN Full-Stack Portfolio | Project: MERN Development | 18.4% | 18% |
In-Class Participation (ICP) | In-Class Participation (ICP) | 5.0% | 5% |
Total | Total | 100.0% | 100% |
Assessment Policy
Learners must complete all labs, assignments, and assessments according to the schedule given by the instructor.
Please note that Per Scholas has a strict academic integrity policy. Plagiarism is considered cheating. Any learner caught plagiarizing will be automatically dismissed from the course. Plagiarism includes, but is not limited to, copying answers or assignments from another learner or a website. Learners can reference material as long as it is properly cited.
Course Schedule
Learners will have five (5) days of in-class instruction per week, from Monday to Friday.
- Class hours are from 9:00 a.m. to 5:00 p.m.
- There will be a one-hour (1) break for lunch in the middle of the day.
- There will be two (2) additional fifteen-minute (15) breaks, one before and one after lunch.
- Time spent in class will total five and a half (5.5) hours each day.
Additionally, learners are expected to dedicate up to two (2) hours daily for homework and review.
Module Schedule
The curriculum is thoughtfully divided into sections and modules, each carefully crafted to cover specific areas of expertise:
Section One: Front-End Development
Module | Outcome | Synchronous Hours | Asynchronous Hours | Total Class Days |
---|---|---|---|---|
Learner Onboarding | Learners will be able to navigate course resources and technology platforms. | 11 | 4 | 2 |
Introduction to Version Control | Learners will be able to manage project versions and collaborate using Git and GitHub. | 11 | 4 | 2 |
HTML and CSS Review, with Accessibility | Learners will be able to create well-structured, accessible, responsive web pages using HTML and CSS. | 11 | 4 | 2 |
Foundations of Web Design | Learners will be able to design high-fidelity wireframes and prototypes in Figma and implement them in web development projects. | 22 | 8 | 4 |
JavaScript Review | Learners will be able to develop simple JavaScript programs using variables, data types, operators, control structures, and functions. | 11 | 4 | 2 |
The Document Object Model | Learners will be able to manipulate web page content and respond to user interactions using DOM methods and events. | 16.5 | 6 | 3 |
TypeScript and Advanced JavaScript | Learners will be able to write type-safe JavaScript code and handle asynchronous operations using TypeScript and Promises/async-await. | 22 | 8 | 4 |
Project: HTML, CSS, and JS | Learners create a polished static website using HTML, CSS, and JS/TS. | 22 | 8 | 4 |
Section Two: Development Efficiency and React
Module | Outcome | Synchronous Hours | Asynchronous Hours | Total Class Days |
---|---|---|---|---|
Introduction to Artificial Intelligence (AI) and Tools for Software Engineering | Learners will be able to utilize AI tools to aid in software development tasks. | 5.5 | 4 | 1 |
React Fundamentals | Learners will be able to build React applications with reusable components. | 22 | 8 | 4 |
Advanced React | Learners will be able to manage state and side effects using React Hooks and implement routing with React Router. | 22 | 8 | 4 |
Project: React Development | Learners will be able to plan, build, and debug a practical React project. | 22 | 8 | 4 |
Section Three: Back-End Development
Module | Outcome | Synchronous Hours | Asynchronous Hours | Total Class Days |
---|---|---|---|---|
Node and Express | Learners will be able to develop a backend server with Node.js and Express.js, including routing and middleware. | 22 | 8 | 4 |
MongoDB Fundamentals | Learners will be able to perform CRUD operations and manage data using MongoDB and Mongoose. | 22 | 8 | 4 |
Authentication and Authorization Principles | Learners will be able to implement secure authentication and authorization systems in web applications. | 22 | 8 | 4 |
Project: Back-end Development | Learners will be able to develop, test, and debug a real-world server-side project using Node, Express, and MongoDB. | 22 | 8 | 4 |
Section Four: Full-Stack Development
Module | Outcome | Synchronous Hours | Asynchronous Hours | Total Class Days |
---|---|---|---|---|
Unifying User Interfaces with Web Applications | Learners will be able to connect frontend React applications with backend Express servers following best practices. | 11 | 4 | 2 |
Deploying MERN Applications | Learners will be able to build and deploy a full-stack application to hosting services. | 11 | 4 | 2 |
Project: MERN Full-Stack Portfolio | Learners will be able to refine their projects into a portfolio and present a full-stack solution by incorporating lessons learned from throughout the course. | 44 | 16 | 8 |
Professional Development
Additionally, eleven (11) days throughout the course will be dedicated to professional development, enabling learners to effectively present a professional personal brand and demonstrate enhanced communication, emotional intelligence, and success habits.
Daily Schedule
Example
The following is an example of a day in class.
Time | Activity |
---|---|
9:00 a.m. | Attendance |
9:05 a.m. | Daily standup |
9:20 a.m. | Review of previous night’s material, questions, discussion, and knowledge checks |
10:30 a.m. | Break |
10:45 a.m. | Lessons and activities for the current module, check-ins |
12:00 p.m. | Lunch |
1:00 p.m. | Continued lessons and activities for the current module, check-ins |
2:30 p.m. | Break |
2:45 p.m. | Practical problem solving, questions, discussions |
3:30 p.m. | Assignment of the evening’s material, questions |
3:45 p.m. | Reflection and consolidation, journaling |
4:00 p.m. | Open lab or project time; office hours for individual guidance, advanced topics, and check-ins |
5:00 p.m. | End of day |
Your instructor is the final authority on what each class day contains, and how that time is allocated. The above is only an example to serve as a reference and set general expectations.
Days Off
Per Scholas will be closed on the dates shared in the weekly Canvas course calendar. You are expected to work on classwork and projects during days when class is not in session, unless otherwise instructed.
Enrollment Agreement and Additional Policy Information
For all other policy information, including behavior expectations, dress code, academic integrity, accommodations, and more, please reference the Per Scholas Enrollment Agreement .
Standard Occupational Classification Codes
This course aligns with the following Standard Occupational Classification (SOC) codes:
- 15-1251: Computer Programmers
- 15-1252: Software Developers
- 15-1254: Web Developers
- 15-1255: Web and Digital Interface Designers
- 15-1211: Computer System Analysts
- 15-1243: Database Administrators and Architects
- 15-1253: Software Quality Assurance Analysts and Testers
Classification of Instructional Programs Codes
This course aligns with the following Classification of Instructional Programs (CIP) codes:
- 11.0201: Computer Programming/Programmer, General
- 11.0202: Computer Programming, Specific Applications
- 11.0205: Computer Programming, Specific Platforms
- 11.0701: Computer Science
- 11.0801: Web Page, Digital/Multimedia and Information Resources Design