Schedule
Preliminaries
Schedule Overview
- Week One: Technical and Professional Onboarding
- Module One: Introduction to Software Engineering Knowledge and Skills
- Week Two through Week Five: Establish your technical and professional skills
- Week Six:
- Monday: in-person assessment of individual developer development
- Tuesday: take the first executable examination during laboratory session
- Wednesday: in-person assessment of individual developer development
- Friday: in-person assessment of individual developer development
- Module Two: Practical Software Engineering Knowledge and Skills
- Week Seven through Week Ten: Enhance your technical and professional skills
- Week Six:
- Monday: in-person assessment of individual developer development
- Tuesday: take the second first executable examination during laboratory session
- Wednesday: in-person assessment of individual developer development
- Friday: in-person assessment of individual developer development
- Module Three: Advanced Software Engineering Knowledge and Skills
- Week Eleven through Week Sixteen: Enhance your technical and professional skills
- Week Seventeen:
- Thursday, December 14, 2023 at 9:00 AM: Executable Examination
- Demonstrate technical skills in software engineering:
- Use GitHub and GitHub Actions
- Use text editor and terminal window
- Implement and test Python functions
- Debug defective Python functions
- Confirm output of Python functions
- Demonstrate technical skills in software engineering:
- Thursday, December 14, 2023 at 9:00 AM: Executable Examination
Weekly Cadence
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based discussion of prior week’s reading in SE
- Focused individual preparation for next week’s SE reading
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based discussion of prior week’s reading in either FB or DB
- Focused individual preparation for next week’s FB or DB reading
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of next SE executive summary
- Publication of next FB or DB executive summary
- Confirmation of readiness for next week’s in-class discussions
- Publish executive summaries to the Developer Development blog:
Project Deadlines
- Project One: Chasten tool for automated analysis of Python projects
- Week One: Onboarding of team members
- Week Two: Official start for first project
- Week Eight: Chasten completion and project maintenance
- Week Nine: Final demonstration of the Chasten tool
- Week Nine: Retrospective for implementation of Chasten
- Project Two: Astronaught tool for deletion mutation analysis of Python projects
- Week Eight: Onboarding of team members
- Week Nine: Official start for second project
- Week Fifteen: Astronaught completion and project maintenance
- Week Sixteen: Final demonstration of the Astronaught tool
- Week Sixteen: Retrospective for implementation of Astronaught
Week One
Tuesday, August 29 – Friday, September 1
Monday: No class Tuesday: Technical preparation for joining a software startup Wednesday: Technical preparation for joining a software startup Friday: Technical and professional preparation for joining a software startup
Week Two
Monday, September 4 – Friday, September 8
Monday: Professional Development - Write a professional précis and publish the team’s executive summary:
- Preparation for SE1: Preface - Programming Over Time
- Write a professional précis and publish the team’s executive summary:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Demonstrate installation and use of the following artifacts:
- Chasten: tool for analyzing Python abstract syntax trees
- Fuzzing Book (FB): tools and techniques for generating tests
- Debugging Book (DB): tools and techniques for automated debugging
- Label all of the issues in the Chasten issue tracker
- Assign team members to all of the issues in the Chasten issue tracker
- Demonstrate installation and use of the following artifacts:
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Write a professional précis and publish the team’s executive summary:
- Preparation for FB1: Introduction to Software Testing
- Write a professional précis and publish the team’s executive summary:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE1: Preface - Programming Over Time
- Publication of FB1: Introduction to Software Testing
- Publish executive summaries to the Developer Development blog:
Week Three
Monday, September 11 – Friday, September 15
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE1: Preface - Programming Over Time
- Preparation for SE2: What is Software Engineering?
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB1: Introduction to Software Testing
- Preparation for FB2: Coverage
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE2: What is Software Engineering?
- Publication of FB2: Coverage
- Publish executive summaries to the Developer Development blog:
Week Four
Monday, September 18 – Friday, September 22
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE2: What is Software Engineering?
- Preparation for SE3: How to Work Well on Teams
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB2: Coverage
- Preparation for FB3: Fuzzing
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE3: How to Work Well on Teams
- Publication of FB3: Fuzzing
- Publish executive summaries to the Developer Development blog:
Week Five
Monday, September 25 – Friday, September 29
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE3: How to Work Well on Teams
- Preparation for SE4: Knowledge Sharing
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB3: Fuzzing
- Preparation for FB4: Mutation Analysis
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE4: Knowledge Sharing
- Publication of FB4: Mutation Analysis
- Publish executive summaries to the Developer Development blog:
Week Six
Monday, October 2 – Friday, October 6
Monday, Wednesday, and Friday: People Operations - In-person technical and professional assessment of all student team members:
Answer at least one question about professional skills Answer at least one question about technical skills Answer at least one technical question about the project Document professional insights in an assessment report
- In-person technical and professional assessment of all student team members:
Tuesday: Executable Examination - Demonstrate technical skills in software engineering:
- Use GitHub and GitHub Actions
- Use text editor and terminal window
- Implement and test Python functions
- Debug defective Python functions
- Confirm output of Python functions
- Demonstrate technical skills in software engineering:
Week Seven
Monday, October 9 – Friday, October 13
Monday: No class Tuesday: No class Wednesday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Discussion of SE4: Knowledge Sharing
- Publication of SE5: Engineering for Equity
- Discuss the team’s executive summary and write a professional précis:
Friday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Discussion of FB4: Mutation Analysis
- Publication of FB5: Mutation-Based Fuzzing
- Discuss the team’s executive summary and write a professional précis:
Week Eight
Monday, October 16 – Friday, October 20
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE5: How to Work Well on Teams
- Preparation for SE6: How to Lead a Team
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- First software tool enters maintenance mode
- Begin to focus on the second software tool
- Sprint planning
- Project implementation
- Project demonstration
- Chasten completion and start of project maintenance
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB5: Mutation-Based Fuzzing
- Preparation for FB6: Fuzzing with Grammars
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE6: How to Lead a Team
- Publication of FB6: Fuzzing with Grammars
- Publish executive summaries to the Developer Development blog:
Week Nine
Monday, October 23 – Friday, October 27
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE6: How to Lead a Team
- Preparation for SE7: Leading at Scale
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Demonstration of completed version of the first software tool
- Retrospective for the implementation of the first software tool
- Development of the second software tool
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB6: Fuzzing with Grammars
- Preparation for FB7: Efficient Grammar Fuzzing
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE7: Leading at Scale
- Publication of FB7: Efficient Grammar Fuzzing
- Publish executive summaries to the Developer Development blog:
Week Ten
Monday, October 30 – Friday, November 3
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE7: Leading at Scale
- Preparation for SE8: Style Guides and Rules
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB7: Efficient Grammar Fuzzing
- Preparation for FB8: Parsing Inputs
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE8: Style Guides and Rules
- Publication of FB8: Parsing Inputs
- Publish executive summaries to the Developer Development blog:
Week Eleven
Monday, November 6 – Friday, November 10
Monday, Wednesday, and Friday: People Operations - In-person technical and professional assessment of all student team members:
Answer at least one question about professional skills Answer at least one question about technical skills Answer at least one technical question about the project Document professional insights in an assessment report
- In-person technical and professional assessment of all student team members:
Tuesday: Executable Examination - Demonstrate technical skills in software engineering:
- Use GitHub and GitHub Actions
- Use text editor and terminal window
- Implement and test Python functions
- Debug defective Python functions
- Confirm output of Python functions
- Demonstrate technical skills in software engineering:
Week Twelve
Monday, November 13 – Friday, November 17
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE8: Style Guides and Rules
- Preparation for SE9: Code Review
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of FB8: Parsing Inputs
- Preparation for FB9: Reducing Failure-Inducing Inputs
- Note: Content on Reducing Failure-Inducing Inputs is also in DB
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE9: Code Review
- Publication of FB9: Reducing Failure-Inducing Inputs
- Publish executive summaries to the Developer Development blog:
Week Thirteen
Monday, November 20 – Friday, November 24
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE9: Code Review
- Preparation for SE10: Documentation
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Developer Development - Publish executive summaries to the Developer Development blog:
- Team-based Discussion of FB9: Reducing Failure-Inducing Inputs
- Preparation for DB1: Introduction to Debugging
- Publication of SE10: Documentation
- Publication of DB1: Introduction to Debugging
- Publish executive summaries to the Developer Development blog:
Wednesday: No class Friday: No class
Week Fourteen
Monday, November 27 – Friday, December 1
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE10: Style Guides and Rules
- Preparation for SE11: Testing Overview
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of DB1: Introduction to Debugging
- Preparation for DB2: Tracing Executions
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE11: Testing Overview
- Publication of DB2: Tracing Executions
- Publish executive summaries to the Developer Development blog:
Week Fifteen
Monday, December 4 – Friday, December 8
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE11: Testing Overview
- Preparation for SE12: Unit Testing
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Sprint planning
- Project implementation
- Project demonstration
- Astronaught completion and start of project maintenance
- Collaboratively implement and deploy into production a software tool:
Wednesday: Technical Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of DB2: Tracing Executions
- Preparation for DB3: Assertions
- Discuss the team’s executive summary and write a professional précis:
Friday: Developer Development - Publish executive summaries to the Developer Development blog:
- Publication of SE12: Unit Testing
- Publication of DB3: Assertions
- Publish executive summaries to the Developer Development blog:
Week Sixteen
Monday, December 11 – Friday, December 15
Monday: Professional Development - Discuss the team’s executive summary and write a professional précis:
- Team-based Discussion of SE12: Unit Testing
- Preparation for DB4: Statistical Debugging (Automatic Fault Localization)
- Discuss the team’s executive summary and write a professional précis:
Tuesday: Project Development - Collaboratively implement and deploy into production a software tool:
- Demonstration of completed version of the second software tool
- Retrospective for the implementation of the second software tool
- Publish executive summaries to the Developer Development blog:
- Publication of DB4: Statistical Debugging (Automatic Fault Localization)
- Final review of all content on Developer Development web site
- Collaboratively implement and deploy into production a software tool:
Wednesday: No class due to study day Friday: No class