A course for teaching students how to build larger, more complicated software systems collaboratively, including end-to-end development.

This website serves as the “textbook” for CS 3140: Software Development Essentials in Department of Computer Science in University of Virginia School of Engineering and Applied Science.. This website is primarily authored and maintained by Prof. Paul “Will” McBurney.

Software Development Essentials is a course to help students design, test, and build larger end-to-end systems through a series of incremental learning objectives. By the end of the course, students should be able to design and implement a multilayer system with both front-end and back-end elements.

Technologies in this course:
-Java programming language
-Git for version control and collaboration -Gradle build tool
-UML Class Diagrams
-IntelliJ IDE, including refactoring and testing tools
-JUnit 5 for unit and integration testing
-Mockito for improving testing seperation
-SQL querying language, along with SQLite database tools
-Java JDBC and Hibernate for connecting our applications to databases

The contents of this website will remain free and open to the public. Other courses and professors are welcome to use any pages or materials linked on this website: please see the License information under About for more information.