DSW-Unit 3-Tools and Practices, Part 1

Summary

Unit testing in Python, Test-Driven Development, Exceptions, Modules

Topics

Learning Objectives

UC a-g application information

Summary

In this unit, students must develop a deeper understanding of software testing by writing their own tests. They will also gain practice with the use of third party libraries, which can require considerable reading of documentation. They will also begin to design, develop and test their own libraries of software. Finally, students will be asked to engage in the practice of pair-programming, and the critically reflect (both orally and in writing) about at least two variants of this practice.

Key Assignment

A key assignment for this unit will be to work with a pair partner to identify a set of computations that can be done over some structured data, design unit tests for the functions that implement these computations, implement the functions as a Python module, and then document the module via docstrings. In addition, as the students complete these assignment, they will be asked to try out two different models of pair programming: traditional, and Falco's "strong style pairing", then write reflections and engage in class discussions about the benefits and pitfalls of each approach, and the situations where it may be applicable, justifying their reflections with evidence. Students will learn to think critically about a data structure and how to design, test and implement computations over that data structure. They will also learn how to think critically about software development practices, and their own interactions with fellow developers. This is an academically challenging assignment involving substantial reading and writing, problem-solving, analytical thinking, oral and listening skills, and one that gives an authentic taste of software development practices that students will see both in undergraduate Computer Science, and software industry settings.

Activities