| CompSci 390 Fall 2025 |
Modern Software Development |
I always tell the people that I hire that I don’t hire them because they are able to follow rules. I hire them because they have good judgment. — Dr. Ruth Simmons
Modern software developers are accustomed to moving seamlessly from one development language and platform to another because no one tool or one language is enough. You will learn how to containerize apps written in any language and deploy and scale them as a Cloud service. You will learn how to interact with all levels of the modern development stack, especially how to diagnose and debug issues remotely. You will learn the power of scripting languages and how to streamline deployment with Continuous Integration and Continuous Delivery (CI/CD) pipelines.
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 completed at least CompSci 307, CompSci 308 or equivalent team project experiences (such as from internships, outside of class projects, 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.