Nashville Software School Small Logo
  • Menu
  • Programs
    • Software Development Jumpstart
    • Analytics Jumpstart
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Full-Time Data Analytics Bootcamp
    • Part-Time Data Analytics Bootcamp
    • Statistics For Data Science
    • Data Science Bootcamp
    • Data Engineering Bootcamp
    • Professional Development
  • Community
    • Shop NSS
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Veterans' Information
    • Podcast
    • Join Our Team
  • Support NSS
    • Donate
    • Corporate Giving
    • Become A Volunteer
    • Community Impact Report
  • Calendar
    • Information Sessions
    • Upcoming Programs
  • Blog

Data Structures and Algorithms Fundamentals

  • ↑ Return to Top
  • Overview
  • Curriculum
  • Schedule
  • Requirements

Applications for this class are not open yet, but will open by December 12th.

This class will be live online (i.e. synchronous).

This course is a part of ProTech. Please review eligibility requirements below before applying.

Learn the fundamentals of data structures, patterns for working with them, and optimization techniques

As software applications handle more and more data, having code that can take on the extra work without slowing down is key. Choosing suitable data structures and algorithms to keep your code efficient as data volume grows is an essential skill for both large enterprises and fast-growing startups. This continuing education course is designed to introduce the essentials of working with data structures: mathematical concepts, different types of collections and their respective benefits, algorithms to work with that data, and principles to improve performance. Students will work independently through the curriculum, complete practical assignments, and prepare for multiple mock technical interviews to assess their understanding and get comfortable with that part of the hiring process.

Is this course for you?

  • Are you a software developer looking to deepen your understanding of computer science principles? This course is designed for junior developers with coding experience who want to learn how to choose efficient data structures and algorithms, while improving problem-solving skills applicable across technologies, domains, and companies.
  • Are you looking to get better at live coding interviews where you’re asked to tackle a new problem with code and explain your thinking as you go along? This course provides a practical problem-solving framework and reinforces its application through weekly practice, giving you a clear guide, sharpening your reasoning, and boosting your confidence.

Who is this course not designed for?
  • Engineers with a background in computer science, unless you’re looking for a refresher. This course covers the fundamentals, and will likely cover familiar material.
  • Beginner programmers that have not learned a programming language and developed simple working applications. This course expects students to have a solid grasp of computer programming basics.

What will the course cover?

  • Math Concepts and Vocabulary for Performance Optimization
    Understand exponents, logarithms, combinatorics. Analyze performance and communicate efficiency with Big O notation. Learn systemic thinking and problem solving techniques.
  • Different Types of Data Structures
    Learn about multidimensional arrays, linked lists, stacks, queues, maps and sets. Understand the relative benefits of each, their efficiency with different operations and when to use them. Implement them in practical JavaScript use cases.
  • Algorithms and Patterns
    Learn common data management techniques, including binary search, sorting methods, and traversal methods like two-pointers, sliding window and grid navigation. Understand the benefits and performance and storage implications of these techniques.
  • Collaborative, Live-Coding Interview Skills
    Practice tackling unfamiliar problems with peers using JavaScript. Use a repeatable framework to break down problems, identify blind spots, design solutions, explore alternatives, and explain your thinking. Develop habits for clear communication, logical reasoning, and incremental problem solving. Build confidence through structured repetition and realistic interview simulations.

How will you learn the material?

Hands-on Learning
Students actively engage in hands-on exercises and projects as opposed to being passively lectured to. Students leave with a deeper understanding of the subject matter and are ready to apply their new skills on the job.
Live Online Learning
Students have the opportunity to interact as a class, in smaller working groups, and directly with the instructor in a live virtual classroom.
Independent Learning
Flexible self study exercises to prepare for class on your own time. Students should expect approximately 6 hours of independent study per week.
Interview Simulation
You will practice speaking about the concepts you learn to deepen your understanding and prepare for professional conversations, including interviews.
  • Schedule

    Mondays and Wednesdays 2PM - 4PM CT
  • Location

    This class is live online (i.e. synchronous).
  • Dates

    January 26 - April 1, 2026

  • Tuition

    FREE

    This course is a part of ProTech. Please review eligibility requirements below before applying.

What is required?
  • Personal Computer
  • Must be 18+ years old
  • Must understand the basic syntax of JavaScript
ProTech Eligibility
  • Must reside in Middle Tennessee
  • Graduate of NSS, another coding bootcamp, or college/university with tech-related degree AND searching for your first job in tech.
  • Tech professional who is unemployed after being laid off from a tech job

Attendance Information

Our policy regarding absences is based on making sure you get the most out of your professional development. Attendance is tracked for this course. Excused absences should be arranged with your instructor before they occur. Due to the short duration of this course we recommend that you not miss multiple days of this course. Absence due to emergencies are always excused as long as the instructor is notified as soon as possible.

Have questions?
Email Us

Nashville Software School is authorized for operation as a postsecondary educational institution by the Tennessee Higher Education Commission. In order to view detailed job placement and graduation information on the programs offered by Nashville Software School, please visit tn.gov/thec or our policies and regulations page.

Stay Informed
  • NSS
    • About
    • Press
    • Contact
    • Virtual Tour
    • FAQ
    • Blog
    • Policies & Regulations
  • Programs
    • Software Development Jumpstart
    • Analytics Jumpstart
    • Full-Time Web Developer Bootcamp
    • Part-Time Web Developer Bootcamp
    • Full-Time Data Analytics Bootcamp
    • Part-Time Data Analytics Bootcamp
    • Statistics For Data Science
    • Data Science Bootcamp
    • Data Engineering Bootcamp
    • Professional Development
  • Community
    • Shop NSS
    • Our Team
    • Alumni
    • Mentors
    • Employers
    • Veterans' Information
    • Podcast
    • Join Our Team
  • Support NSS
    • Donate
    • Corporate Giving
    • Become a Volunteer
    • Community Impact Report
    • Information Sessions
  • Nashville Business Journal Leaders In Diversity Honoree
  • Nashville Business Journal Best In Business Winner
  • Nashville Scene Names NSS as Best Way To Ditch Your Crappy Job 2016
  • NACC Member
  • NTC Member