Qwasar Blog

How to Implement a Competency-based Education Program for Software Engineering

Written by Kristen Capuzzo | Sep 13, 2021 2:45:22 PM

Competency-based education programs are especially suited for software engineering. There are components in software engineering that require a level of understanding only learned through the experiential learning and competency-based education. Further, employers are looking for skilled candidates ready for the job who are competent: essentially, graduates of competency-based programs in software engineering.

With a challenging economy, shifts in job opportunities, and growing demand for software engineers, there is a large demand for skills-based, competency-based training programs in colleges, especially community colleges, across the US. This is an opportunity to partner with people who are already strong in competency-based education, specifically in software engineering. Through this, a program is built together and curriculum is developed from many sources. Cañada Community College and Skyline College are great examples of how partnerships between a community college and a competency-based program can be so successful. Software engineering is a field that especially benefits from a competency-based approach, and there are great providers with the skills and expertise in this area.

5 Crucial Elements for Implementing Competency-based CTE

There are five critical elements required to implement competency-based career and technical training:

  • Competency-based curriculum
  • Program management and operations
  • Program design
  • Employer relations
  • Significant previous experience in CBE including market knowledge, KPIs, and a network

These five generally apply to all CTE, but we will look specifically at what's required for a CBE program in software engineering.

A Competency-based Software Engineering Curriculum

Implementing a competency-based and skills-based program for career and technical education in software engineering requires a curriculum that:

  • trains learners to industry standards for entry-level jobs
  • prepares learners with on-the-job skills
  • helps learners practice and develop on-the-job skills before gaining employment

As a software engineer, you will work on projects, complete peer code reviews, conduct technical interviews, debug, problem-solve, contribute to software architecture discussions, make decisions, and write maintainable, high quality code. This naturally requires a significant level of technical skills and competencies. Ideally, your CBE program should be as close to what a software engineer will do and build on the job: and what's what we've built at Qwasar.

Our software engineering program consists of a pre-season and four 'seasons' or tracks of skills-based, active learning and project-based learning. The preseason consists of learning basic software engineering principles, variables, functions, loop statements, if statements, basic algorithms and data structures, Javascript, IDE, and Terminal. This is meant to give learners a broad understanding of the basics in software engineering, so that they can be successful in future learning. All of our students, regardless of their track will complete this all-encompassing preseason to start off at the same point.

Then, when learners have completed the preseason, they will enter into Season 1 covering the fundamental computer programming concepts and learn the basics of C. Students will learn how to build a solid foundation in back-end programming including pointers, arrays, strings, algorithms, hash data structures, software architecture, blockchain basics, Assembly, and more.

In Season 2, learners advance to more in-depth C programming such as Shell, then move on to cover intermediate data structures and algorithms. Learners will recode the Redis database and cover LibASM before moving on to sockets, diving into client-server relationships. They will master the concepts of C, Shell Virtual machines, and sockets.

After that, students will begin season 3 which is perhaps one of the most challenging tracks. Learners dig into object-oriented programming (OOP), C++, Rust or Elixir, network programming, real-world software projects, and move into advanced algorithms, AI, and advanced data structures. This season includes mastery of C++, OPP, and network programming.

Finally, students will enter the fourth and final season of the software engineering track. Learners complete a final program project that aligns with the industry in which they want to get a job. The project must be about 3 months in duration and of significant technical difficulty. Learners will also contribute to open source projects.

Clear, Measurable, Meaningful and Integrated Competencies

Any competency-based education in software engineering should be able to easily identify clear, meaningful competencies that are vital to being a software engineer. Any curriculum needs to show how these competencies are developed at different levels of comprehension and abilities, and identify how competencies are intertwined in such a way that reflects tasks and competencies software engineers require on the job.

Further, any curriculum or program should have a way of measuring and identifying successful competency through ongoing assessments or evaluations (more on that below.)

Within each of our seasons, students are expected to obtain knowledge and understanding of certain concepts. Regardless of their ability level prior to the program, our training and projects will enable them to achieve mastery in these concepts. Completion of tracks occur in order because competencies build upon each other, as is expected in a CBE technical program.

What's great about software is that often it works or it doesn't, and if it doesn't, there's a lack of competency that's fairly evident, thus, the learner has more work to do until they can advance to the next project or program activity.

Coherent Program Design and Curriculum

The curriculum of our program is designed with the end in mind. Students are trained to industry standards in skills they will need for 21st century jobs. As mentioned before, the program contains a general preseason to refresh basic software engineering skills. Then, students will learn new concepts through projects completed in multiple seasons. The program is designed to include live coding sessions, peer code reviews, coding collaboration sessions, daily stand-ups, and Tech Start Up of the week to complement the education. The design of our program enables students to actively learn the concepts and understand the competencies of software engineering.

Credential-level Assessment Strategy with Robust Implementation

One of the ways that we implement assessment throughout our program is through peer code reviews and re-submitting projects. Through peer code reviews, one learner will review the work submitted by another and look for code quality ad structure, adherence to coding norms/standards, and functionality. This is a great way for our learners to be exposed to many levels of critical thinking and problem solving. This broadens their horizon while meeting the same credentials as other students. We use a structured system to facilitate peer reviews from more advanced students to “younger” students in the curriculum. Below is an example of what it looks like:

 

 

Program Management, Operations and Intentionally Designed Learner Experience

The learner experience is a huge component of why our competency-based education programs are so successful for software engineering. As mentioned before, students are involved in daily stand-ups, coding collaboration sessions, live coding sessions, tech start-up of the week, and peer code reviews. These are all implemented in efforts to enhance the learner experience and are considered part of the program management services that we assist with. These events are attended by all members of the cohort, providing a sense of community and network. The stand-ups are a great way for students to be accountable for their learning as they share their progress with peers and program managers. This allows them to ask questions and get feedback from others and stay committed to their work. Each step of our programs is intentionally designed to make the most out of learners' time and give them the greatest opportunities for success.

Employer Relations and Job Placement Rates

Highly successful competency-based programs in software engineering have multiple hiring partners looking to consistently and continually recruit program graduates. This helps to drive learner motivation, career success, and high job placement rates within the program.

Further, helping employers understand competency-based education, how it works, and why its revolutionary for them is an investment that both program providers and community colleges need to undertake.

We have a suite of hiring partners looking for software engineers, and program graduates have continually been hired at a 95% rate since March 2021. This is thanks to their technical skills, competencies, depth of abilities, resourcefulness, and technical interview training.

Significant Previous Experience in Competency-based Education

There are many partners and programs already implementing competency-based education methods in the world. These programs are especially important to consider as they have experience in this method and have made adjustments to make it more effective. They know what to avoid and what to focus on. They are aware of learner needs and can provide the resources and support to learners and clients without wasting valuable time and resources. If you are a smaller organization, it is especially recommended to partner with someone in your region who is already engaged. For tech programs, it’s worth working with us who already do exactly this. In concept, we train for specific positions and job requirements.

Working with Community Colleges

We worked with two community colleges, Cañada Community College at Menlo Park and Skyline Community college to implement our competency-based programs. By working with an outside provider, it enabled these colleges to have a fast program implementation. As a provider, the majority of the program and curriculum is set up on our side. Resources have been developed and improved over time for this type of program. For Cañada Community College, there was 140% enrollment and we are able to meet demand from the learners. The California community college system especially is in need of competency-based education to close skills gaps, increase graduation rates, and future employability of learners.

Accessible Career On-ramps and Equity in Education

The goals for implementing a competency-based education program in software engineering can include the following:

  • Offer a career on-ramp to learners who don’t want or can’t afford to do a 4 year degree
  • Create a different style of learning and program option
  • Close achievement gaps
  • Get people into jobs, which means you have to train them to entry-level job standards
  • Help community colleges serve their role in their local community, especially during Covid with more remote work and people out of a job and people who want to career switch

Conclusion

Our curriculum takes you from zero all the way to full competency and comprehension of required competencies. We train you to the most essential and beneficial skills needed for exact job descriptions of real jobs. We do not rely on old, traditional models of learning involving lectures and knowledge transmission. We employ active and skills-based learning through competency-based education. Tech employers struggle to articulate what learners will need to learn, they can build projects and list languages but not skills and competencies. That’s where we come in. We think about the educational aspect of learning these skills and the visual components.