This outline is under perpetual evolution.
Overview This module introduces you to the course organization, policies, and mechanics. We’ll review the structure of the course website and give you an opportunity to get set up for the semester to come. We’ll take a brief look at the major themes and areas of emphasis that you can expect to hear more about through the coming semester. Objectives
Relevance An understanding of the tools used in an online course is fundamental in becoming a successful online learner. It is also important to identify the expectations for participation, assignment submission, and the time management skills required in the online format. You can expect that professional software development will be quite different from typical academic programming assignments. This course will emphasize the tools and techniques that developers use on a daily basis, with an emphasis on automating best practices of software engineering. | Activities
|
Take the Demonstration Project Survey, on Blackboard Due: 09/12/2020
Overview Agile development is a set of practices centered on an incremental development model. We will review the principles of agile, with particular emphasis on the skillset expected of agile developers. Objectives
Relevance Agile development is one of the dominant approaches to software development for moderately sized projects developed by small (4–12 people) teams. Agile presumes a skilled development team, familiar with a variety of standard tools and practices, which we will also need to assume that students in this course are familiar with:
| Activities
|
Overview In this section we will review the basic principles of unit testing, and then we will look at the problem of automating the testing oracle, the procedure of determining when our code has passed or failed each test. This will lead us to the world of modern Unit test frameworks, which seek to make running tests so effortless that there is no longer any excuse to defer testing. | Activities
|
Overview A build manager has the task of performing any automated steps required to rebuild a software project after programmers have made changes. We will look at the primary models for build management, file dependencies and task dependencies, and the most commonly used managers for each model. We’ll also look at how to replace an IDE’s built-in builder with a more flexible manager. Modern projects now rely on build managers for much more than just the basic operations of compiling and linking. Build managers are also called upon to run tests, to prepare software packages for deployment, to deploy them, and to prepare project reports and post those reports to project web sites. These demands go far beyond the capabilities of the simple manager included in your IDE. Used properly, a build manger can save a team a lot of tedious work. | Activities
|
Overview Software Configuration Management (SCM) addresses a wide variety of issues in the development of software. These include version control, studied earlier, but also the problems of coping with portability to multiple target platforms and the incorporation of externally developed code libraries into a project. Version control is concerned with managing the history of changes made to the software by the development team. A good version control system offers a team control over the history, exploration, and collaboration on a project. We’ll look at the issues and approaches to local, centralized, and distributed version control, and explore how to work with a distributed version control system from an IDE. | Activities Version Control
Continuous Integration
|
Overview The merger of Development and Operations. | Activities
|
Individual student presentations will take place over the final 5 weeks of the semester. The order of student presentations will be based upon topics chosen – I will arrange them to provide as coherent an ordering as possible. | Activities
|
All times in this schedule are given in Eastern Time.
Symbol Key | |
---|---|
Lecture: | |
Slides : | |
Event or important date | |
Read | |
Do lab: | |
Assignment: | |
Take the | |
Do: | |
In your recitation section: | |
Under construction: |