Skip to content

Codio Courseware Catalog

Build on your coding skills by exploring the ecosystem of tools and practices which make up software engineering. Topics include testing, CI/CD, API development, performance monitoring and MVC architecture.

Course Modules & Assignments

Testing Basics - Specifications and Manual Testing
- Unit Testing
- Test-Driven Development (TDD)
- Summative Assessments
Integration Testing - Module Testing
- API Testing with Postman
- Performance and Stress Testing
- Summative Assessments
End-to-End (E2E) Testing - UI Testing with Selenium
- User Acceptance Testing
- Behavior-Driven Development (BDD)
- Summative Assessments
CI/CD Overview - Manual Processes
- Automating Processes
- CI/CD and Version Control
- Coding Exercises
Continuous Integration - Building Code
- Testing Code
- Quality Control
- Coding Exercises
Continuous Deployment - Deploying Code
- Secrets
- Capstone
- Coding Exercises
API Protocols - API Principles
- Rest API
- Simple HTTP Client
- Coding Exercises: API Protocols
HTTP Servers - Simple HTTP Server
- More Server Features
- Error Handling
- Coding Exercises: HTTP Servers
Best Practices for Web APIs - Various API Topics
- Security
- OAuth
- Coding Exercises: Best Practices
Monitoring - What is Monitoring?
- Prometheus Architecture
- Dashboards and Visualization with Grafana
- Summative Assessment
Metrics - Application Metrics
- Server Metrics
- User Metrics
- Summative Assessment
Monitoring Utilities - Logs
- Alerts
- Target Discovery and Cloud Monitoring
- Summative Assessment
Foundations of Web Development - Web Application Architecture
- Setting up the VueJS Project
- HTML and CSS Essentials
- Summative Assessment
Building Interactive Applications with VueJS - VueJS Components and Core Concepts
- Building a Todo App
- App Refactoring and Model Integration
- Summative Assessment
Developing and Testing RESTful APIs - Advanced VueJS - Multiple Components and Emits
- Setting up and Developing an Express API
- Introduction to Testing
- Summative Assessment

Constructing Knowledge Through Coding

Software Engineering emphasizes students applying and exploring the information presented. A code editor accompanies each page with new software engineering concepts. This allows students to see for themselves how the computer responds to code. In addition, the content provides code snippets to get students started as well as suggested avenues for investigation.

Auto-Graded Assessments

Students receive immediate, rich feedback about their software engineering skills. In addition to correctness feedback (i.e. right or wrong), students will also see an explanation with the complete solution when learning software engineering.

There are a wide variety of questions, all of which are auto-graded, giving students a sense of their understanding of the software engineering course material right after they are introduced to it and as they attempt harder and harder problems.

Lowering the Barrier to Entry

The Software Engineering course reflects the need for computing education to meet students where they are. Like any specialized community, computing has its own jargon. The formal teaching of computing should not burden students with the assumption that they are fluent in this special language.

The material is presented in smaller units that are more manageable for the students. The same vocabulary and software engineering concepts are covered, but in a more approachable way. Our Software Engineering course states information as plainly as possible, and, when appropriate, use images, tables, or lists.

Another way in which this content is more approachable is that it uses many small problems instead of one large project. Research shows that a variety of smaller problems increase student performance and reduce stress.

Using many small problems leads to students spending a sufficient amount of time on their work. This way, they do not wait until the last moment to begin their work.

Encouraging Customization Through Modularity

This content is not a one-size-fits-all solution. Instead, it implements a modular format. Natural break points occur in the curriculum where instructors can make the changes they deem necessary. Instructors can re-name, re-order, or remove units.

Using Codio’s excellent content authoring tools, they can author new material. This modular approach gives instructors flexibility when designing the learner’s experience

What's Included?

  • Interactive content with visuals and minimal text for maximum hands-on engagement
  • Example code snippets that can be copied
  • A fully-featured web-based IDE
  • Run commands with the click of a button
  • A sudo-privileged terminal
  • Seamless GitHub integration