| CompSci 590 Spring 2026 |
Software Development Studio |
More than the act of testing, the act of designing tests is one of the best bug preventers known. ― Boris Beizer
This course explores the process of creating, testing, evaluating, and designing software systems. You will be introduced to techniques for effective software development and to the skills required to implement software in teams.
During active class sessions, you will engage in software engineering tasks, such as refactoring code to meet design goals, evaluating LLM-generated code, deploying code, monitoring its deployment, and evaluating its value to users.
You will also learn about the realities of being a software developer, how to stay mentally healthy and balanced, and how to thrive in a software team. You will consider the impact of software on society and the many ethical issues inherent in developing software.
Prerequisites: Students are expected to have experience programming substantial projects (such as from project-based programming courses, internships, research, outside of class projects, working with open-source software, etc.).
Help us improve the course. We welcome your feedback about all aspects of the course and the Computer Science department at Duke University aims to excel in education and research.
Help us improve the website. Please inform us of any broken links or otherwise misleading or confusing content and we will get it fixed as soon as possible.
My goal is to adapt the subject and delivery of this course to meet your needs while maintaining our high standards.