JavaScript Essentials
Course Description
Embark on this 10-week course to master the essentials of Javascript, one of the most widely used programming languages for web development. Through this intermediate course, learners will explore foundational concepts such as variables, data types, and control flow, as well as advanced topics like version control, object-oriented programming, asynchronous programming, and debugging techniques. Learners will write clean and efficient code, build interactive programs, and dive into functional and object-based approaches to programming.
This course is designed for aspiring programmers, web developers, and individuals looking to build a strong foundation in Javascript programming. Instructional methods include interactive lectures, hands-on coding labs, practical exercises, and troubleshooting workshops. Upon successful course completion, graduates will be well-prepared to leverage Javascript in their current roles while also having set the groundwork should they wish to pursue intermediate and advanced courses in software engineering.
Course Objectives
Upon successful completion of all course requirements, learners will:
- Write well-structured Javascript programs while implementing version control to solve real-world problems.
- Implement control flow structures, functions, and loops to manage program execution and data manipulation.
- Create objects and classes to build dynamic and scalable applications.
- Debug Javascript code using error-handling techniques and debugging tools.
- Apply advanced programming concepts such as asynchronous programming, callbacks, and generators to develop interactive and responsive applications.
Prerequisites
To be considered for this course, learners are required to meet the minimal qualifications for a Per Scholas course. It is expected that the learner will have technical knowledge through education, as a Per Scholas Alumnus, prior to entering the program.
Additionally, learners must complete approximately 17 hours of self-study prework materials. Per Scholas will provide learner access to the materials and resources. Topics include the following:
- Introduction to Computational Logic
- Introduction to Computational Thinking and Algorithms
Course Materials
All course materials are accessible through the Canvas Learning Management System (LMS) .
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.
- 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 Module
The weight of each module can be broken down as follows.
Module Name | Module % of Course | Assessment | Type | Points | Assign % of Module |
---|---|---|---|---|---|
Module 302 - Introduction to Version Control | 13.41% | ALAB 302.1 - Branching, Merging, and Handling Conflicts | ALAB | 30 | 25.00% |
SBA 302 - Version Control | SBA | 60 | 50.00% | ||
KBA 302 - Version Control | KBA | 30 | 25.00% | ||
Module 337 - Introduction to JavaScript | 42.46% | ALAB 337.1 - Getting Started with JavaScript | ALAB | 20 | 5.26% |
ALAB 337.2 - Variables, Data Types, and Operations | ALAB | 30 | 7.89% | ||
ALAB 337.3 - User Input and Basic Calculations | ALAB | 40 | 10.53% | ||
ALAB 337.4 - Control Flow Guessing Game | ALAB | 60 | 15.79% | ||
ALAB 337.5 - Functions and Reusability | ALAB | 50 | 13.16% | ||
ALAB 337.6 - Error Handling and Debugging | ALAB | 30 | 7.89% | ||
SBA 337 - JavaScript Essentials 1 | SBA | 100 | 26.32% | ||
KBA 337 - JavaScript Essentials 1 | KBA | 50 | 13.16% | ||
Module 338 - Advanced JavaScript | 39.11% | ALAB 338.1 - Classless Objects | ALAB | 40 | 11.43% |
ALAB 338.2 - Classes and Inheritance | ALAB | 50 | 14.29% | ||
ALAB 338.3 - Built-in Objects and APIs | ALAB | 50 | 14.29% | ||
ALAB 338.4 - Advanced Functions and Asynchronous Programming | ALAB | 60 | 17.14% | ||
SBA 338 - JavaScript Essentials 2 | SBA | 100 | 28.57% | ||
KBA 337 - JavaScript Essentials 2 | KBA | 50 | 14.29% | ||
ICP | 5.03% | In-Class Participation | In-Class | 31 | 68.89% |
DISC 302.1 - Collaboration and Workflow | DISC | 1 | 2.22% | ||
DISC 302.2 - Branch Management | DISC | 1 | 2.22% | ||
DISC 302.3 - Conflict Resolution | DISC | 1 | 2.22% | ||
DISC 302.4 - Git and GitHub Practices | DISC | 1 | 2.22% | ||
DISC 337.1 - Programming and JavaScript | DISC | 1 | 2.22% | ||
DISC 337.2 - JavaScript Basics | DISC | 1 | 2.22% | ||
DISC 337.3 - Operators and Interaction | DISC | 1 | 2.22% | ||
DISC 337.4 - Control Flow | DISC | 1 | 2.22% | ||
DISC 337.5 - Functions | DISC | 1 | 2.22% | ||
DISC 337.6 - Error Handling and Troubleshooting | DISC | 1 | 2.22% | ||
DISC 338.1 - Classless Objects | DISC | 1 | 2.22% | ||
DISC 338.2 - Classes and Class-Based Approach | DISC | 1 | 2.22% | ||
DISC 338.3 - Built-in Objects | DISC | 1 | 2.22% | ||
DISC 338.4 - Advanced Function Usage | DISC | 1 | 2.22% |
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.
Module Schedule
The curriculum is thoughtfully divided into modules, each carefully crafted to cover specific areas of expertise:
Module | Outcome | Sync. Hours | Async. Hours |
---|---|---|---|
Introduction to Version Control | Learners will be able to manage project versions and collaborate using Git and GitHub. | 12 | 0 |
Introduction to JavaScript | Learners will be able to write, debug, and test functional Javascript programs that implement core concepts such as variables, functions, loops, conditional logic, and exception handling. | 33 | 24 |
Advanced JavaScript | Learners will be able to create and manipulate objects, implement object-oriented programming principles, utilize advanced Javascript features like generators and asynchronous code, and apply built-in objects to solve complex problems effectively. | 45 | 30 |
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
Classification of Instructional Programs Codes
This course aligns with the following Classification of Instructional Programs (CIP) codes:
- 11.0201: Computer Programming/Programmer, General
- 11.0205: Computer Programming, Specific Platforms