This course covers the design and engineering of computer software systems. As a student you have done many computing assignments that were likely small problems or single programs. You have probably never had to face the problems encountered in designing and implementing a larger system. The problems of large software systems are much different than the problems of small systems. Management of the effort and communication becomes more difficult than the programming.
Documentation grows exponentially with the size of the project.
Configuration and version control arise as major project problems. In this phase, you come to understand the problem and write a requirements document that describes the problem and explains WHAT needs to be accomplished to eliminate the problem. This is where you design the user interface by describing the inputs and outputs to the proposed system. By implementing a prototype. Typically you would use a tool designed to create prototypes rapidly.