Skip to Content
Syllabus

Full Stack Software Development - MERN

MongoDB, Express, React, Node
15 Weeks

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.

Grade Weights by Assignment Type

The weight of each assignment category, as well as a brief description of the category, is as follows.

Assignment TypeDescriptionCountTotal Weight
LabSmall 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.3319%
SBAOpen-book, cumulative programming tasks that demonstrate practical knowledge and skill proficiency with a module’s content.1119%
KBATimed 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.127%
ProjectWeek-long (or more) projects that showcase the skills gained throughout a specific section of the course.450%
ICPAn 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/A5%
TotalTotal60100%

Grade Weights by Module

The weight of each module can be broken down as follows.

ModuleAssessment% WeightModule Weight
1. Introduction to Version ControlLab 1.1: Branching, Merging, and Handling Conflicts0.6%2%
SBA 1: Version Control1.1%
KBA 1: Version Control0.6%
2. HTML and CSS Review with AccessibilityLab 2.1: Interactive Accessibility Lesson0.4%2%
SBA 2: Building a Responsive and Accessible Web Page1.5%
KBA 2: HTML and CSS Review0.6%
3. Foundations of Web DesignLab 3.1: Exploring Advanced Figma Features0.6%4%
Lab 3.2: Practicing Implementation with Frontend Mentor0.9%
Lab 3.3: Developing with Bootstrap0.6%
SBA 3: Design and Development1.8%
KBA 3: Foundations of Web Design0.6%
4. JavaScript ReviewLab 4.1: Variables and Functions0.6%4%
Lab 4.2: Array Manipulation0.6%
SBA 4: Task Management App1.8%
KBA 4: JavaScript Review0.6%
5. The Document Object ModelLab 5.1: Dynamic Content Creation0.6%4%
Lab 5.2: Form Validation and DOM Manipulation0.6%
SBA 5: The Document Object Model1.8%
KBA 5: DOM Concepts0.6%
6. TypeScript and Advanced JavaScriptLab 6.1: TypeScript and Object-Oriented Programming0.6%4%
Lab 6.2: Promises and Error Handling Challenge0.6%
SBA 6: TypeScript and Advanced JavaScript1.8%
KBA 6: TypeScript and Advanced JavaScript0.6%
7. Project: HTML and CSSProject: HTML, CSS, and JavaScript9.2%9%
8. Introduction to Artificial Intelligence (AI) and Tools for Software EngineeringLab 8.1: Generating Code with Codeium0.2%1%
Lab 8.2: Refactoring Code with Codeium0.2%
Lab 8.3: Translating Code with Codeium0.2%
Lab 8.4: An AI Coding Challenge0.2%
KBA 8: Fundamentals of Generative AI0.6%
9. React FundamentalsLab 9.1: Component Basics0.6%4%
Lab 9.2: Props and State0.9%
Lab 9.3: Event Handling0.6%
SBA 9: React Dashboard Application1.8%
KBA 9: React Fundamentals0.6%
10. Advanced ReactLab 10.1: React Counter0.2%5%
Lab 10.2: Custom Hooks0.7%
Lab 10.3: Context API0.9%
Lab 10.4: Dynamic Routing0.4%
SBA 10: Advanced React1.8%
KBA 10: Advanced React Concepts0.6%
11. Project: React DevelopmentProject: React Development13.8%14%
12. Node and ExpressLab 12.1: Build a Basic Express Server0.7%4%
Lab 12.2: Server to Server Communication0.6%
SBA 12: Build a RESTful Server1.8%
KBA 12: Node and Express0.6%
13. MongoDB FundamentalsLab 13.1: Connecting a Database0.4%4%
Lab 13.2: Mongoose Models and Schemas0.9%
SBA 13: Integrating a Database1.8%
KBA 13: MongoDB Fundamentals0.6%
14. Authentication and Authorization PrinciplesLab 14.1: Basic Login System0.6%4%
Lab 14.2: Secure Record Storage0.9%
Lab 14.3: OAuth Integration0.6%
SBA 14: Secure Web Portal1.8%
KBA 14: Auth Principles0.6%
15. Project: Back-end DevelopmentProject: Backend Development9.2%9%
16. Unifying User Interfaces with Web ApplicationsLab 16.1: Full-Stack Integration0.9%1%
Lab 16.2: API Flexibility0.6%
17. Deploying MERN ApplicationsLab 17.1: CI/CD Pipelines0.6%1%
Lab 17.2: Full-Stack Deployment0.6%
18. Project: MERN Full-Stack PortfolioProject: MERN Development18.4%18%
In-Class Participation (ICP)In-Class Participation (ICP)5.0%5%
TotalTotal100.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

ModuleOutcomeSynchronous HoursAsynchronous HoursTotal Class Days
Learner OnboardingLearners will be able to navigate course resources and technology platforms.1142
Introduction to Version ControlLearners will be able to manage project versions and collaborate using Git and GitHub.1142
HTML and CSS Review, with AccessibilityLearners will be able to create well-structured, accessible, responsive web pages using HTML and CSS.1142
Foundations of Web DesignLearners will be able to design high-fidelity wireframes and prototypes in Figma and implement them in web development projects.2284
JavaScript ReviewLearners will be able to develop simple JavaScript programs using variables, data types, operators, control structures, and functions.1142
The Document Object ModelLearners will be able to manipulate web page content and respond to user interactions using DOM methods and events.16.563
TypeScript and Advanced JavaScriptLearners will be able to write type-safe JavaScript code and handle asynchronous operations using TypeScript and Promises/async-await.2284
Project: HTML, CSS, and JSLearners create a polished static website using HTML, CSS, and JS/TS.2284

Section Two: Development Efficiency and React

ModuleOutcomeSynchronous HoursAsynchronous HoursTotal Class Days
Introduction to Artificial Intelligence (AI) and Tools for Software EngineeringLearners will be able to utilize AI tools to aid in software development tasks.5.541
React FundamentalsLearners will be able to build React applications with reusable components.2284
Advanced ReactLearners will be able to manage state and side effects using React Hooks and implement routing with React Router.2284
Project: React DevelopmentLearners will be able to plan, build, and debug a practical React project.2284

Section Three: Back-End Development

ModuleOutcomeSynchronous HoursAsynchronous HoursTotal Class Days
Node and ExpressLearners will be able to develop a backend server with Node.js and Express.js, including routing and middleware.2284
MongoDB FundamentalsLearners will be able to perform CRUD operations and manage data using MongoDB and Mongoose.2284
Authentication and Authorization PrinciplesLearners will be able to implement secure authentication and authorization systems in web applications.2284
Project: Back-end DevelopmentLearners will be able to develop, test, and debug a real-world server-side project using Node, Express, and MongoDB.2284

Section Four: Full-Stack Development

ModuleOutcomeSynchronous HoursAsynchronous HoursTotal Class Days
Unifying User Interfaces with Web ApplicationsLearners will be able to connect frontend React applications with backend Express servers following best practices.1142
Deploying MERN ApplicationsLearners will be able to build and deploy a full-stack application to hosting services.1142
Project: MERN Full-Stack PortfolioLearners will be able to refine their projects into a portfolio and present a full-stack solution by incorporating lessons learned from throughout the course.44168

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.

TimeActivity
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
Note

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