

Our Courses

Pressure, Force, Motion, and Humidity Sensors
"Pressure, Force, Motion, and Humidity Sensors" can also be taken for academic credit as ECEA 5342, part of CU Boulder’s Master of Science in Electrical Engineering degree. This is our third course in our specialization on Embedding Sensor and Motors. To get the most out of this course, you should first take our first course entitled Sensors and Sensor Circuits. Our first course gives you a tutorial on how to use the hardware and software development kit we have chosen for the lab exercises.
-
Course by
-
Self Paced
-
24 hours
-
English

Programming Fundamentals
Programming is an increasingly important skill, whether you aspire to a career in software development, or in other fields. This course is the first in the specialization Introduction to Programming in C, but its lessons extend to any language you might want to learn. This is because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem in its class. This course will introduce you to a powerful problem-solving process—the Seven Steps—which you can use to solve any programming problem.
-
Course by
-
Self Paced
-
18 hours
-
English

Software Processes and Agile Practices
This course delves into a variety of processes to structure software development. It also covers the foundations of core Agile practices, such as Extreme Programming and Scrum.
-
Course by
-
Self Paced
-
8 hours
-
English

Agile Planning for Software Products
This course covers the techniques required to break down and map requirements into plans that will ultimately drive software production. Upon successful completion of this course, you will be able to: - Create effective plans for software development - Map user requirements to developer tasks - Assess and plan for project risks - Apply velocity-driven planning techniques - Generate work estimates for software products
-
Course by
-
Self Paced
-
12 hours
-
English

Data Structures and Performance
How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).
-
Course by
-
Self Paced
-
42 hours
-
English

Software Development Processes and Methodologies
Software is quickly becoming integral part of human life as we see more and more automation and technical advancements. Just like we expect car to work all the time and can't afford to break or reboot unexpectedly, software industry needs to continue to learn better way to build software if it were to become integral part of human life. In this course, you will get an overview of how software teams work? What processes they use? What are some of the industry standard methodologies? What are pros and cons of each?
-
Course by
-
Self Paced
-
22 hours
-
English

Agile Software Development
Software industry is going crazy on agile methods. It is rapidly becoming the choice for software development where requirements are unpredictable or is expected to change over time. This course will help you gain knowledge on what is agile? Why agile is better suited for these situations? We will also cover some of the most common agile frameworks like scrum and XP in depth. Prerequisite: You need basic knowledge of software development process and software development methodologies.
-
Course by
-
Self Paced
-
12 hours
-
English

Version Control
Learn how modern software developers collaborate across the world without messing up each other's code. You will look at the different version control systems and how to create an effective software development workflow. You will be introduced to some of the most commonly used Linux commands that you can use to work with files on your hard drive and create powerful workflows that will automate your work, saving you time and effort. Finally, you will see how Git can be used in software development projects to manage team files. And you will create a repository that can manage code revisions.
-
Course by
-
Self Paced
-
13 hours
-
English

Introduction to Containers w/ Docker, Kubernetes & OpenShift
Take the next step in your software engineering career by getting skilled in container tools and technologies! The average salary for jobs that require container skills is $137,000 in the US according to salary.com, making Devops professionals and developers with these skills highly in demand. More than 70 percent of Fortune 100 companies are running containerized applications. But why? Using containerization, organizations can move applications quickly and seamlessly among desktop, on-premises, and cloud platforms.
-
Course by
-
Self Paced
-
13 hours
-
English

Introduction to Machine Learning in Production
In the first course of Machine Learning Engineering for Production Specialization, you will identify the various components and design an ML production system end-to-end: project scoping, data needs, modeling strategies, and deployment constraints and requirements; and learn how to establish a model baseline, address concept drift, and prototype the process for developing, deploying, and continuously improving a productionized ML application.
-
Course by
-
Self Paced
-
12 hours
-
English

HTML and CSS in depth
In this course, you’ll use software development tools like HTML to build attractive web pages that work well—and you’ll use structured semantic data to control how websites appear to the end user. You will then dive deeper into CSS by applying increasingly specific styling to various elements. You’ll learn to use Bootstrap’s grid system to create layouts and work with components and themes.
-
Course by
-
Self Paced
-
29 hours
-
English

Introduction to Software Testing
After completing this course, you will have an understanding of the fundamental principles and processes of software testing. You will have actively created test cases and run them using an automated testing tool.
-
Course by
-
Self Paced
-
30 hours
-
English

The R Programming Environment
This course provides a rigorous introduction to the R programming language, with a particular focus on using R for software development in a data science setting. Whether you are part of a data science team or working individually within a community of developers, this course will give you the knowledge of R needed to make useful contributions in those settings. As the first course in the Specialization, the course provides the essential foundation of R needed for the following courses.
-
Course by
-
27 hours
-
English

Introduction to Hardware and Operating Systems
Get ready to enter the thriving field of Information Technology (IT), with job ready skills! This beginner friendly course provides the core hardware and operating system knowledge needed by anyone new to IT and computer hardware who wants to start a new career in technology, including IT Support, Networking, Cybersecurity, and Software Development. You will first be introduced to computing fundamentals, the four functions of computing, and the benefits of computing.
-
Course by
-
Self Paced
-
17 hours
-
English

Software Architecture
The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved.
-
Course by
-
Self Paced
-
10 hours
-
English

AI for Efficient Programming: Harnessing the Power of LLMs
This course on Artificial Intelligence (AI) for software development explores the use of AI large language models such as ChatGPT, Bard, and others and their potential benefits and challenges.
-
Course by
-
Self Paced
-
13 hours
-
English

Secure Software Development: Verification and More Specialized Topics
Learn how to verify software for security, and take a deeper dive into the basics of applying threat models and cryptography.
-
Course by
-
Self Paced
-
English

Secure Software Development: Implementation
Learn the practical steps software developers can take, even if they have limited resources, to implement secure software.
-
Course by
-
Self Paced
-
English

Secure Software Development: Requirements, Design, and Reuse
Learn the security basics that allow you to develop software that is hardened against attacks, and understand how you can reduce the damage and speed the response when a vulnerability is exploited.
-
Course by
-
Self Paced
-
English

IT Fundamentals for Business Professionals: Software development
Working with Information Technology (IT) without the necessary background? Learn the fundamentals of software development
-
Course by
-
11
-
English

Git for Distributed Software Development
Get a thorough introduction to Git, the source control system that arose out of the Linux kernel community, that enables widely distributed software development to operate efficiently.
-
Course by
-
11
-
English

Linux Tools for Software Development
Learn the tools you need to confidently work in Linux development environments and beyond.
-
Course by
-
11
-
English

Open Source Software Development: Linux for Developers
Start your open source software (OSS) adventure today by learning the key concepts of developing open source software and how to work productively in a Linux environment.
-
Course by
-
Self Paced
-
11
-
English

Global Software Development
Develop the technical and organizational skills you need to practice software engineering in a globally distributed environment.
-
Course by
-
50
-
English

Hands-on with AWS: Software Development Practices
Being and excelling as a software engineer means knowing and following software development practices. Working efficiently with teammates through continous integration and continuous delivery will help shorten the time it takes to get applications in the hands of your customers.
-
Course by
-
12
-
English