Course Description: This course introduces the student to the software development lifecycle at the graduate level. Focus will be placed on design and documentation methodologies used by practitioners. Students will learn to author clear and effective software documentation for a host of different design methodologies. Software design methodologies discussed will include: waterfall, spiral, scrum, and agile. Other topics include version control, issue tracking, software project management, debugging, and profiling.
Course Objectives: At the completion of this course, students should be able to
- use automatic code documentation tools as PythonDocs.
- translate algorithms into Java language and document it using JavaDocs.
- define documentation for classes using JavaDocs.
- use JavaDocs documentation to software reuse.
- identify the stages of the Software Development Lifecycle.
- use version control and issue tracking tools.
- perform software debugging, testing, and profiling tasks.
- differentiate usual software design methodologies.