CompSci 307
Fall 2022
Software Design and Implementation

You don’t learn to walk by following rules. You learn by doing, and by falling over. — Richard Branson

Submitting Work

Submissions must be done using GIT by 3:07am ET in the morning on the day after that given on the course Calendar (so it is effectively a few extra hours grace time past midnight).

Projects

Individual Weekly Journals

Craftsmanship

Developing software is about more than just the code that makes the program run, so each project must have

Course Software

Projects in this course will use:

Programming Language  OpenJDK
FULL package
Open Source version of Java which includes OpenJFX
GUI Framework OpenJFX
formerly JavaFX
Open Source, modern, UI toolkit for Java that works for desktop, mobile, and embedded apps
any of its add ons that build the code for you are not allowed (specifically, using FXML or SceneBuilder)
Development Environment IntelliJ Ultimate Integrated Development Environment (IDE) with features that support writing well-designed code
free for students and strongly recommended, but not required
Version Control GIT Open Source, industry standard, software to support working in teams
many commercial and academic servers exist to host GIT code repositories
Repository Host coursework Duke CompSci managed GIT server
Documentation Format Markdown Open Source, industry standard, general purpose plain text format that can be transformed into any other document format
supported directly within IntelliJ or using this web-based, shared, editor (sign-in required)