CIS 3500
Sli.do PrairieLearn Panopto Gradescope Canvas Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

How to Build Joyfully in a Team

Welcome to our introductory software engineering course, where we dive into the essentials of building and maintaining a software project, show how to organize the workload in a collaborative team, and apply those skills to building a simple, front-end only project. This course is designed to equip you with the practical skills and theoretical knowledge needed to thrive in the dynamic field of software development.

Course Overview

Jan 1 · 1 min read

Throughout this course, we will explore a variety of key topics and tools essential for any aspiring software engineer. We begin by setting up our development environment, focusing on editor configuration using Visual Studio Code (VS Code), and understanding command line operations, package managers, and the installation of necessary tooling. A significant portion of the course is dedicated to mastering version control using GitHub, along with the implementation of continuous integration through GitHub Actions. We will also cover webpage hosting using GitHub Pages, providing a practical platform for deploying your projects.

A core component of our curriculum is understanding different project management methodologies, specifically comparing Waterfall and Agile methodologies. We will delve into the benefits of Agile, discussing the nuances between Scrum and Kanban frameworks, and how to effectively utilize user stories in project planning. Emphasis will be placed on team communication, team building, professionalism, and fostering an inclusive working environment, which are crucial skills in today’s collaborative software development landscape.

For the final project, you will apply your skills to design and build a Chrome extension. This project will be completed in teams, encouraging you to practice agile methodologies and team collaboration. You will gain hands-on experience in web interface development using modern frameworks such as React or Svelte. Additionally, we will focus on testing strategies, including unit tests, integration testing, and measuring code coverage, to ensure the reliability and quality of your software.

By the end of this course, you will have a comprehensive understanding of the tools, techniques, and best practices in software engineering, empowering you to contribute effectively to any software development project.