INF2-SEPP: Informatics 2 - Software Engineering and Professional Practice
Welcome to Informatics 2 - Software Engineering and Professional Practice
Note: Additional pages for this course will be made available closer to the start of Semester 2 teaching.
Learning Outcomes
On successful completion of this course, you should be able to:
- Explain the modern techniques used in the design and development of large-scale software systems
- Apply, evaluate and reflect on these techniques in a small-scale, but realistic scenario
- Analyse the professional and ethical implications of software engineering decisions and propose solutions
- Comfortably read and write technical documentation.
- Constructively engage in interaction with peers.
Course Outline
As students enter this course they team up in groups of 3-4 to develop a small-scale software system from scratch. Over the course of the semester, they consider an incomplete specification to derive and analyse requirements, design their solution from a static and dynamic perspective using UML diagrams, construct and test their solution in Java. There is room for interpretation, creativity, and some of the requirements change along the way. Moreover, there are technical, professional and ethical issues surrounding the problem at hand, on which students will need to reflect.
Included in the experience will be use of industry standard tools for software development (integrated development environments, version control, issue tracking), and key elements of modern development practice, such as code review, peer review, and pair programming.
As students engage in this practical work, the course will contextualise it against the broader themes, both of large-scale software engineering and its academic literature, and of today's urgent professional issues: the legal, ethical and social context in which software and its authors exist. Guest lecturers will speak on topics with direct impact on students' practical work, but also advising on becoming a successful software engineer.