James Skon, Chalmers 328 740-427-5369
Department of Mathematics and Statistics
Spring 2025
Location and Time : Chalmers 320, 2:40-4:00 TH
Office hours: 2-3pm MW, 9-11TH Link to book appointment
and other hours by appointment (send email request)
Consultant: Sejin Kim.
| Software Engineering Quotes “The best way to get a project done faster is to start sooner.” –Jim Highsmith “Design and programming are human activities; forget that and all is lost.“ –Bjarne Stroustrup “Simplicity is prerequisite for reliability“ –Edsger W.Dijkstra “Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away“ –Antoine de Saint-Exupery “Program testing can be used to show the presence of bugs, but never to show their absence!” –Edsger Dijkstra “A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.” –Niklaus Wirth AI in Software Engineering Quotes “AI won’t replace software engineers, but engineers who leverage AI will replace those who don’t.” — unknown “With AI, software engineering has become less about writing code and more about orchestrating complex systems where machines assist in creating and improving code autonomously.“ — Jeff Dean, Google AI Lead “AI in software engineering is like a superpower: it enables us to iterate faster, test smarter, and discover better solutions we wouldn’t otherwise imagine.” — Fei-Fei Li, Stanford AI Lab “Software engineering with AI is not about making engineers redundant; it’s about liberating them from redundancy.” — Martin Fowler, Software Engineer and Author “AI tools are the new compilers; they’re transforming raw ideas into executable code with unparalleled efficiency and intelligence.” — Andrej Karpathy, Deep Learning Expert |
Course description
This course offers an in-depth exploration of software and system design through a project that encompasses planning, analysis, design, implementation, testing, and maintenance, with a focus on leveraging generative AI tools in each phase. Students will use AI to assist with tasks such as requirements gathering, definition, planning, and cost estimation, applying AI-generated insights to streamline workflows and enhance decision-making.
As a Community-Engaged Learning (CEL) course, students will work on real-world projects that address the needs of organizations within the local or broader community. A central component is a semester-long team project, where teams of 2-4 students collaborate to analyze, design, implement, and document substantial, applied solutions. This course may involve travel off-campus for site visits, meetings with stakeholders, and hands-on community engagement, providing students with an immersive and dynamic learning experience.
Using AI tools, students will optimize their approach to problem-solving, requirements analysis, code generation, testing, and documentation, gaining practical experience in integrating AI assistance into professional software engineering practices. By the end of the course, students will develop technical and project management skills, as well as critical insights into the ethical and practical implications of AI in software engineering, while making meaningful contributions to the community.
. Prerequisite: COMP118 Introduction to Programming or COMP318 Software Development or COMP218 Data Structures
Objectives of the course for the student
- To understand the significance of using engineering methodologies, enhanced by generative AI tools, in the design and development of software systems.
- To learn how to effectively integrate AI-assisted software engineering techniques and methodologies across all phases of the development lifecycle.
- To develop and construct comprehensive software specifications, using AI to assist in requirements gathering, documentation, and refinement.
- To create and implement robust software designs, utilizing AI to support design exploration, architectural decision-making, and pattern selection.
- To apply AI-driven tools for software verification and validation, optimizing testing strategies and ensuring product reliability and quality.
- To practice and refine various AI-enhanced techniques in software project management, including AI-assisted scheduling, cost estimation, and resource allocation.
- To collaborate within a design and development team, using AI tools to streamline communication, task management, and code sharing while delivering a product for a real-world community partner.
- To connect academic knowledge with civic engagement, using AI to explore innovative solutions to address real-world organizational needs.
- To develop professional communication skills, leveraging AI to support effective collaboration and documentation across diverse communities, contexts, and social structures.
Texts
| 1. Ian Sommerville, Software Engineering Tenth Edition. Addison-Wesley Publishing Company 2015 website 2. Steve McConnell. Rapid Development. Microsoft Press. 1991. Kenyon Library Link. |
References
- Nguyen-Duc, Anh. “Generative AI for Effective Software Development.” Part IV Generative AI in Software Engineering Processes, Springer, 01/01/2024.
- LangChain Documentation
Method used in the course
This course will combine brief lectures with discussions, team project work, and team project presentations, all supported by AI tools to enhance collaboration, efficiency, and innovation. Team projects are central to the course, designed to develop each student’s ability to function effectively within a collaborative environment while leveraging AI for tasks like brainstorming, task distribution, code generation, and project documentation.
Each team will be responsible for internal organization, including assigning primary responsibilities for specific aspects of the project. These roles involve coordinating and facilitating AI-assisted work in their respective areas, ensuring completeness and cohesion, rather than handling tasks alone. Teams should plan for regular (at least weekly) meetings, where AI tools can be used to streamline communication, task tracking, and progress reporting.
As an advanced course, students should expect to spend between 8–10 hours outside of class weekly on coursework and project tasks, using AI tools to assist with various aspects of the workload. Those dedicating consistent time outside of class and actively integrating AI tools will be best positioned to meet the course’s demands and excel in their projects.
Daily Questions, Answers, and Quizzes:
Before each class day eachstudent will create a comprehensive quiz question and its corresponding answer to be included in the upcoming in-class quiz. Additionally, suggest potential discussion questions related to the days reading.
Submission Requirements:
- Quiz Question:
- Description: Create an original, clear, and relevant question that assesses understanding of the course material.
- Value: Up to 9 points.
- Quiz Answer:
- Description: Provide a complete and accurate answer to your proposed quiz question.
- Value: Up to 9 points.
- Discussion Questions:
- Description: Submit up to 2 potential discussion questions that relate to your quiz question and answer.
- Value: 1 point each (maximum of 2 points).
Total Possible Points: 20 points
Submission Deadline:
- Primary Deadline: Midnight the night before the quiz.
- Late Submission: Accepted until 10:00 AM on the day of the quiz with a 1-point penalty deducted from the total score.
- Method: Submit your assignment via [Specify Submission Platform, e.g., Canvas, Google Classroom, Email].
| Component | Comment | Max | Score |
| Question | 9 | ||
| Answer | 9 | ||
| Discussion | 2 | ||
| Total | 20 |
Grading Criteria:
The majority of questions/answers will receive 7 points. 8 will be researved for really good questions/answers. and 9’s will be rare.
| Component | Poor (1-3 Points) | Fair (4-6 Points) | Good (7 Points) | Excellent (8 Points) | Truly Exceptional (9 Points) |
|---|---|---|---|---|---|
| Quiz Question | – Unclear or ambiguous. – Irrelevant to course material. – Lacks structure. | – Partially clear. – Some relevance to course material. – Minor issues with structure. | – Clear and relevant. – Well-structured. – Effectively assesses understanding. | – Highly clear and engaging. – Directly relevant and insightful. – Enhances comprehension of material. | – Exceptionally clear, creative, and thought-provoking. – Deeply relevant and integrates multiple course concepts. – Inspires critical thinking. |
| Quiz Answer | – Incomplete or incorrect. – Lacks explanation. – Does not fully address the question. | – Partially correct. – Some explanation provided. – Addresses the question but lacks depth. | – Complete and correct. – Clear explanation. – Fully addresses the question. | – Thorough and detailed. – Well-explained with examples. – Enhances understanding of the question. | – Exceptionally thorough and insightful. – Provides comprehensive explanations and multiple examples. – Demonstrates deep mastery of the topic. |
| Discussion Questions | – Missing or irrelevant. – Lack depth or connection to the quiz question. | – Partially relevant. – Some connection to the quiz question. – Basic in-depth questions. | – Relevant and thoughtful. – Clearly connected to the quiz question. – Encourages meaningful discussion. | – Highly relevant and insightful. – Deeply connected to the quiz question. – Promotes in-depth analysis and discussion. | – Exceptionally relevant and innovative. – Seamlessly integrates with the quiz question. – Drives profound and comprehensive discussions. |
Additional Guidelines:
- Originality: Ensure that both the quiz question and answer are your own work and do not duplicate existing quiz content.
- Clarity: Use clear and concise language. Avoid ambiguity to ensure that your question is easily understood.
- Relevance: Align your question and answer with the key topics and learning objectives of the course.
- Depth: Strive for depth in both your question and answer to demonstrate a comprehensive understanding of the material.
- Formatting: Present your submission in a well-organized manner. Use headings, bullet points, or numbering as appropriate for readability.
Example Submission Structure:
Software Engineering Team Project . Each student will participate on a software engineering team, working through the processes as a team. As seen in the grading below there are a variety of activities, some team oriented, and some individual. Participation in all team activities, and completion of individual work is essential to this aspect of the course. The activities the team engages in will include the following critical phases, with each phase having an associated document, and presentation.
Engagement with Collaborators. Central to the success of this type of project is close engagement and collaboration among the project partners, stakeholders and the student creators. It is essential that communication and collaboration be maintained throughout the project. It is thus expected that the students initiate and maintain contact our partners on a regular basis. This includes providing them with drafts of the project specifications, plans, designs, prototypes, and solutions for review and feedback. Meetings can occur in person or virtually. Each meeting must be documented on the provided reflections forms (see reflection section below). Meetings are expected to occur at least once a week.
A least once a week each team must complete a team partner meeting reflection form. A different team member will fill in this form after each meeting, cycling through team members so a certain member will fill one in every 4th meeting. The form is here: Partner Meeting Reflection Form.
| Phase | Activity | Document and Presentation |
|---|---|---|
| Project Selection and Team Formation | After reviewing project options, each student will use AI tools to analyze project fit based on skills, interests, and potential impact. They will submit applications for at least two projects, with AI assisting in crafting applications and identifying relevant project strengths. | AI-Enhanced Project Applications |
| Initial Project Research | Teams will collect initial information on the partner’s needs, using AI to assist in gathering data, analyzing similar solutions, and producing an initial project description. This includes identifying major functions and key information to manage. | Project Proposal with AI-Generated Insights |
| Requirement Engineering | The team will use AI-assisted tools to analyze the organization’s background, conduct stakeholder interviews, and compile a software specification. AI will aid in organizing insights, automating transcription analysis, and structuring requirements. | System Requirements Specification |
| Research Solution Options | Teams will leverage AI to explore various platforms and architectural solutions, including open-source and commercial components, languages, and architectural models. AI will provide insights on component compatibility, cost estimates, and feasibility. | AI-Generated Project Options Overview and Comparison Table |
| Risk Assessment and Management | AI tools will help identify and evaluate risks related to system development, prioritizing those that pose the highest impact. AI will assist in monitoring and updating risk factors over time, enabling dynamic risk mitigation strategies for the top risks. | Risk Tables with AI-Supported Risk Analysis |
| System Design | Using AI for architectural assistance, the team will select a solution and create a detailed system design, specifying all components, interfaces, and user experience. AI tools will support diagramming, interface mock-ups, and user journey planning, streamlining the design process. | System Architecture and AI-Aided System Design Document |
| System Prototype | Teams will develop several iterations of prototypes, using AI to accelerate development and refine the user experience. AI tools will support rapid testing, feedback collection, and risk mitigation by allowing for iterative feedback from stakeholders on functionality and design. | Demonstrations with AI-Augmented Prototypes |
| System Code and Documentation | AI will assist in generating code, documenting processes, and managing code quality. Teams will use AI for automated code reviews, continuous integration, and documentation, creating robust and well-documented code bases. | Comprehensive Code Base and AI-Aided Documentation |
| System Test Planning | The team will develop a system test plan with AI support, using automated testing tools to ensure the system meets specifications. AI will help identify edge cases, automate test creation, and perform preliminary tests to streamline the validation process. | AI-Assisted Test Plan and Testing Reports |
| System Delivery | At the course’s conclusion, teams will present a working or prototype system to the community entity. This will include a presentation, a demonstration, and complete documentation. AI will be used to enhance the final presentation, polish system demos, and generate user-friendly documentation. | Operation Documentation, Installation Documentation, System Demo, Final Presentation |
Reflection. A central part of this course is critical reflection, reflection about the processes used, reflections about preparing for meetings with community partners, reflections about the quality and effectiveness of interactions with community partners, reflections about the methods, advantages, and effectiveness of team work, and reflections about the processes of proof reading, critiquing, and unifying the work produced by the team. This is seen below in the reflection component of each phase.
The goal will be to, for each of the phases above, engage in the following reflective activities:
- Outcomes:
- What were the specific objectives of your meeting? What goals did you have?
- What is the time and place (or mode) of the meeting?
- Who was present?
- Give a summary of the the meeting outcomes.
- What new questions arose that need to be addressed.
- Describe:
- How did you prepare before meeting with project principals to gather information for this phase?
- Who did you interact with in order to proceed with the assignment? Why with this person? How useful was the information gathered?
- In what ways did you work as a team? In particular, did you divided the work among team member, and if so, how did you divide it? Alternatively, did you actively work together as a group, and on what parts?
- Examine:
- How did your interactions with project principals go? Were you appropriately prepared? Did you miss anything important?
- Did you use your time, and the time of the project principals effectively as you gather information? How effective were you in recording the information from these meetings in ways that are useful for moving the projects forward.
- Compare and contrast the value of working individually on components of the project verses working together actively as a team.
- How effective were you in working together to produce output that was well integrated, complete, and error free? Was there unnecessary duplication of effort?
- Articulate Learning:
- What did you learn about preparing for interactions with project principals? What will do to prepare for future phases to improve effectiveness and productivity of these interactions.
- What did you learn about having effective and productive interactions with project principals? How with you improve record keeping? How will you prepare for follow-up queries?
- What did you learn about effective team work? Can you categorize and describe the types of work that is best done individually verses done as a team?
- How can you work more effectively to check and improve each other’s work, and to better integrate the corporate work product into a unified, cohesive document?
One unexcused absence is allowed. After that, your final grade will be reduced by 2% per each unexcused absence. Also coming late or leaving early (without a written excuse) will result in a ‘late’. Three of these will count as a full unexcused absence.
Grading Table
| Category | Percent |
|---|---|
| Quiz Questions | 5 |
| Quizzes | 5 |
| Individual Homework | 15 |
| Team Project | 50 |
| Evaluation (Final Project Grade, Personal Statement, Midterm Assessment) | 25 |
| Total | 100 |
2025 Team Projects: Teams
| Project | Info | Team | Contact |
| Belize School Computer Project – School Computer Lab request system | GitHub Notes | Dunson, Peter, dunson1@kenyon.edu Yu-Ching Lin, lin7@kenyon.edu Nadeem, Ibraheem, nadeem2@kenyon.edu Aslam, Ayesha, aslam1@kenyon.edu | Doug Karl dougkarl10@gmail.com 614-571-5701 |
| Belize School Computer Project – Track assets across schools, and facilitate repair requests | GitHub Notes | Mahmoud, Fatma, mahmoud1@kenyon.edu Shrestha, Samy, shrestha1@kenyon.edu Markwardt, Henry, markwardt1@kenyon.edu | Doug Karl dougkarl10@gmail.com 614-571-5701 |
| Mount Vernon Arts Consortium NameASeat | Github Pretix (GitHub) Seat Maps Seat Maps with Google Sheets and forms GitHub Pretix Web Order Lovable Deployment | Ampofo-Twumasi, Davelle, ampofotwumasi1@kenyon.edu Hutchison, January, hutchison2@kenyon.edu Luo, Wren, luo1@kenyon.edu Gassama, Mous, gassama1@kenyon.edu | Megan Evans operations@mvac.org 740-462-4ART |
| Knox County Historical Society Negatives | GitHub Slide Scanners PastPerfect | Weber, Jack, weber4@kenyon.edu Sitrin, Kaden, sitrin1@milnikelr Liu, Joey, liu17@kenyon.edu | Jim Gibson jknox333@hotmail.com 740-397-3503 |
| Freedom Center Intake Forms | Notes | Afet Kilinc afetk@freedomctr.net | |
| Kenyon Programming IDE 1 Edit,Colaboration | IDE Code GitHub | Akanwe, Wisdom, akanwe1@kenyon.edu Singleton, Braeden, singleton1@kenyon.edu Nelson, Nick, nelson3@kenyon.edu | James Skon skonjp@kenyon.edu 740-358-9417 |
| Kenyon Programming IDE 2 Open/Save to Github, Auto Tests, AI | IDE Code GitHub | Deka, Calvin, deka1@kenyon.edu Oppong-Krampah, Yaw, oppongkrampah1@kenyon.edu Moss, Connor, moss1@kenyon.edu Idowu, Godwin, idowu1@kenyon.edu | James Skon skonjp@kenyon.edu 740-358-9417 |
Schedule
Mermaid ER Crowfoot relationships | CS @ Kenyon(opens in a new tab)
Team project Prototype Presentation & Demonstration | CS @ Kenyon(opens in a new tab)
Disability Statment
Kenyon College values diversity and recognizes disability as an aspect of diversity. Our shared goal is to create learning environments that are accessible, equitable, and inclusive. If you anticipate barriers related to the format, requirements, or assessments of this course, you are encouraged first to contact the office of Student Accessibility and Support Services (SASS) by emailing Erin Salva at salvae@kenyon.edu, then to meet with the instructor to discuss accommodation options or adaptations.
Software project grading rubric
| Category | Developing 1-3 | Competent 4-7 | Accomplished 8-10 | Score |
|---|---|---|---|---|
| Articulate requirements and design of the Project. | Demonstrated understanding of requirement and design issues. | Articulated requirement and design of the project. Described most constraints and variables to be maximized or minimized. | Clearly articulated requirements and design and underlying issues. Clearly articulated constraints and variables to be maximized or minimized. Correctly answered clarifying questions, demonstrating mastery of issues. | |
| Plan the solution and implementation of the project. | Identified some critical tasks. Created plan with some foreseeable problems. | Identified critical tasks. Delegated tasks to team members. Created plan for task and project completion that is workable with some modifications. | Identified critical tasks. Delegated tasks to team members. Accurately estimated time and resources for critical tasks. Created credible plan for task and project completion. | |
| Choose appropriate tools and methods for each task | Selected appropriate tools and methods for most tasks. Identified strengths and weakness of most chosen tools. | Selected appropriate tools and methods for each task. Identified strengths and weaknesses of various tools and methods. Cited reasons for choices. | Selected appropriate tools and methods for each task. Articulated strengths and weakness of various tools and methods. Discussed and gave credible justification for choices. | |
| Give clear and coherent oral presentation | Provided minimal presentation of design problem and results. | Presentation was reasonable and organized. Presentation presented mostly in a professional manner | Presentation was coherent and well organized. Presentation presented in a professional manner | |
| Give clear and coherent written final report | Provided acceptable final report detailing all project phases and results. | Provided acceptable final report detailing all project phases and results. Report was reasonable and organized. Report was provided mostly in a professional manner. | Provided acceptable final report detailing all project phases and results. Report was coherent and well organized. Report presented design in a clear and professional manner. | |
| Function well as a team | Contributions of team members’ variable. Lack of leadership on the project. Many individual contributions with some overlap. | Most team members contributed. Little or no duplication of effort. Conflicts usually amicably resolved. Team members demonstrated some understanding of the overall project. | Each team member contributed to the success of the design. Little or no duplicated effort. Few conflicts, amicably resolved. .Team members able to respond to audience’s questions throughout the presentation. | |
| Create well documented set of life cycle products specific to the project | Project documents/solution was acceptable but limited due to the background of the team. | Project documents/solution met objectives set for the project. Project documents/solution considerations showed team generally understood the problem | Project document/solution exceeded the initial objectives. Innovative approaches were demonstrated in the design. Solution indicated a thorough understanding of project. | |
Presentation Rubric
- Clear Introduction
- Overview
- Clarity
- Evidence of Preparation
- Description of System Architecture
- Use of diagrams and visual aids
- Entire Team Involvement
- Organization
- Demonstration
- Overall quality
- https://bookshelf.vitalsource.com/#/booksSoftware Failure Case Studies
Therac25
Ariane5.pptx
Ariane 5 Report
Ariane 5 Case
Ariane 5 LaunchSoftware Failure Group Assignments:
1. Ariane 5 Study
2. Therac 25 StudySoftware Fails Questions
Software-Fails-Watch.pdf
Software Failure Article
Software Fail Watch
Group Signup
Presentation Rubric
Looking for new ways to unwind after a long day? Explore interactive attractions or check out the плей фортуна официальный сайт for exciting gaming options and generous rewards.
