2025 (Current Year) Faculty Courses School of Computing Department of Computer Science Graduate major in Computer Science
Practical Software Engineering
- Academic unit or major
- Graduate major in Computer Science
- Instructor(s)
- Katsuhiko Gondow / Shinpei Hayashi
- Class Format
- Lecture (HyFlex)
- Media-enhanced courses
- -
- Day of week/Period
(Classrooms) - 3-4 Tue (M-356(H132)) / 3-4 Fri (M-356(H132))
- Class
- -
- Course Code
- CSC.T435
- Number of credits
- 200
- Course offered
- 2025
- Offered quarter
- 4Q
- Syllabus updated
- Sep 16, 2025
- Language
- English
Syllabus
Course overview and goals
In computer science, the concept of software engineering, covering how to efficiently develop software, is indispensable as well as studying various programming languages and API skills. In this lecture, focusing on practical topics in software engineering, you study software review, project management, construction and maintenance of software systems, state-of-the-art software development environments, etc. Also, through applying some software engineering techniques you studied to personal software development, you give presentations their pros/cons and discuss what are practical issues. The aim of this lecture is to learn the issues and techniques of team development and downstream in software engineering, and their practical issues.
Course description and aims
By studying this lecture, you learn the practical issues and techniques in software engineering, including human factors. Also you learn what are the practical issues through presentation and discussion about each student's development experience.
Keywords
software engineering, team development, software review, project management, risk management, refactoring, technical debt, software testing, software development environments
Competencies
- Specialist skills
- Intercultural skills
- Communication skills
- Critical thinking skills
- Practical and/or problem-solving skills
Class flow
Classroom learning is followed by presentation and discussion
Course schedule/Objectives
Course schedule | Objectives | |
---|---|---|
Class 1 | Introduction |
Introduction |
Class 2 | Coding technique |
Coding technique |
Class 3 | Software review |
Software review |
Class 4 | Project management and human factors |
Project management and human factors |
Class 5 | Risk management and project productivity |
Risk management and project productivity |
Class 6 | Program analysis and automatic debugging techniques |
Program analysis and automatic debugging techniques |
Class 7 | Software configuration management and continuous Integration |
Software configuration management and continuous Integration |
Class 8 | Technical debt |
Technical debt |
Class 9 | Refactoring and restructuring |
Refactoring and restructuring |
Class 10 | Software testing and validation |
Software testing and validation |
Class 11 | Reengineering |
Reengineering |
Class 12 | Software development environments and automatic code generation |
Software development environments and automatic code generation |
Class 13 | presentation and discussion (1): basics in software engineering |
presentation and discussion (1): basics in software engineering |
Class 14 | presentation and discussion (2): techniques in software engineering |
presentation and discussion (2): techniques in software engineering |
Study advice (preparation and review)
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class. They should do so by referring to textbooks and other course material.
Textbook(s)
None. Slides are available in lecture.
Reference books, course materials, etc.
None.
Evaluation methods and criteria
Report: 60%
Presentation and discussion: 40%
Related courses
- CSC.T426 : Software Design Methodology
- CSC.T424 : Workshop on Software Development
- CSC.T423 : Software Development Studio: Basic I
- CSC.T430 : Camp on Team-based Software Development
- CSC.T434 : International Project for System Development
Prerequisites
None