link to this document: https://tinyurl.com/csc-324-25sp
Instructor: Leah Perlmutter
Instructor calendly: calendly.com/leahperl
Section 01 class meeting times: MWF 10:00 - 11:50 am, Noyce 3819
Section 02 class meeting times: MWF 2:00 - 3:50 pm, Noyce 3819
Mentors: Destany Best (section 01) and Elliot Swaim (section 02)
Welcome to CSC 324, Software design and development!
If you're curious what kinds of projects you might work on in CSC-324, please see blog posts by CSC-324-01 spring 2024 teams.
CSC-324 Syllabus (2025 spring)
Milestones, Sprints, and Presentations
I'm excited to teach Software Design and Development for my second time this semester! I grew up in Ohio, went to college in Maine, then moved to Washington state to work in software industry and get my PhD. My PhD dissertation is about students building a sense of belonging in college computer science, and it is deeply important to me to build a classroom that is welcoming to all. I have 15 year old tortoiseshell cat named Mocha.
Destany Best (she/her)
Heyyyy, I am Destany and I am a fourth year double major in Computer Science and French. I am active on campus in the Black Student Union, the long form improv team, and Girls Who Code! I learned a lot during my experience taking 324 and I am excited to be a part of your experience. Feel free to reach out to me anytime!
Elliot Swaim (he/him)
Greetings! My name is Elliot. I'm a fourth year CS major hoping to one day develop 3D applications. I took CSC 324 with Leah last spring, and I'm super excited to be back as a mentor! I'm one of the leaders Gateway Grinnell, a Christian club that does Bible Studies every week. I also love to sing in choir and to swing dance! Let me know any questions, quandaries, quams, or otherwise quaggy queries to quaere, and I'd be happy to quell the quagmire.
These learning objectives are common to all sections of CSC 324 at Grinnell:
In this section of CSC 324, the "customer" will not be a real person, but rather an abstract role played by your peers, mentor, and instructor to represent users who might use your product. We will use various exercises to take the perspective of software users other than yourself and support inclusive design.
Announcements [TBD] -- We'll decide together on the first day of class which mode of communication to use for class announcements.
Getting in touch with the instructor -- If you need to get in touch with me, send me an email. I try to reply to messages within about 24 hours, excluding weekends and holidays. If you do not hear back within that amount of time, please send a reminder. You can also schedule an office hour appointment using my calendly link at the top of this page.
Gradescope -- You will submit assignments via gradescope. Please confirm that you have been added to this class on gradescope.
Class meetings -- The class meets for 1h 50m, three times per week, for a total of 5h 30m per week. About half this time will be traditional classroom instruction with the instructor presenting material. The rest will be "lab time" where students complete exercises or group work. The amount of the class period used for instruction versus lab time will vary by day and by week.
Team meetings -- Some of our lab time will be dedicated to weekly meetings of your team, unstructured time for you to work on milestones and get help from the instructor and mentor.
Instructor and mentor meetings (check-ins) -- Each team will meet weekly with the instructor or mentor, during part of our lab time.
Sprints -- A sprint is a cycle in which a team plans, completes, and reflects on shared work. Once teams are formed, we will complete one sprint every two weeks. Every sprint, teams will complete milestones specified by the instructor and additional work of their own selection.
Project proposal -- Working in teams of 2, you will produce a written document and short video pitch describing a vision for a possible group project.
Proposal feedback and preference -- You will give feedback on some of the proposals and produce a ranked list of which projects you would like to work on and teammates you would like to work with. The instructor will choose which proposals become projects based on feasibility and student feedback. The instructor will assign groups based on student preference.
Group project milestones -- Working in teams of 4-6 students, formed in week 3, you will complete milestones every 2 weeks toward the design and development of your software. For each milestone, you will be putting into practice concepts from recent lectures.
Group project demos -- A few times in the second half of the semester, your group will present to the class by demonstrating features of your software and describing your development process.
Group project sprint reports -- Your team will submit brief reports relating to your progress and process for each sprint.
Individual reflections and evaluations -- You will reflect on and evaluate your own contributions to group work, your teammates' contributions, and your team's process.
AI Project -- You will work with a team (potentially different from your course project team) to investigate and reflect on a certain use case of generative AI. You will report your findings to the class and recommend an update to the AI policy based on your findings.
Late Days are a currency you can spend to turn in some assignments late. You can think of it as a no-questions-asked extension for many situations that may come up such as a short illness, forgetting an assignment, travel, etc. The late day policy is intended to reduce logistical workload around minor lateness -- it spares students and instructors from negotiating an extension.
Extensions
Group work will make up most of your grade. In well-functioning teams that share work equitably, team members will earn the same grades on group work. However, it is possible for different teammates to earn different grades on group work, depending on their contributions, as reported in individual reflections. More information forthcoming on the specifics of grading.
80% Course project
5% Proposal
15% Individual Work
Adjustments after calculating your grade as a percentage
Percent to grade
I expect you to attend class every day, but I will not grade you explicitly on attendance. More importantly, your teammates will probably miss you if you don't show up, and will hold you accountable according to your team's established norms.
If you need to plan absences for religious observance, athletics, travel, etc. let me know far in advance. Any day that you will miss class unexpectedly, please email me before class (or after class on the same day) so I know you're ok. If you miss a few days in a row, I'll start to worry about your wellbeing and how your absence might affect your learning and your team's success. Please stay home if you are sick.
I strive to meet access needs for everyone in the class. If you would like to talk about your access needs, let's chat!
Philosophy
Prof. Perlmutter believes that AI can be put to good use for teaching and learning; however, more investigation is needed to figure out which uses support learning and which uses undermine learning.
Participants in this course will work on an AI Project (during sprint 4) in which we co-construct a set of recommendations for using AI, based on our thoughtful and reflective experimentation with AI in activities that are explicitly part of the AI Project. Within the AI Project, there will be many opportunities to experiment with AI, following your interests and curiosity. For course related activities outside the AI Project, use of AI is strictly limited. Our collective findings from the AI Project will be used to update this policy.
Essentially what this means is that if you see a possible use case of AI that you would like to pursue, you will have the opportunity to propose a thoughtful experiment to investigate that use case, conduct and reflect on that experiment, report your findings to the class, and recommend a corresponding update to this policy.
Attribution
Like any other source, you must cite AI when you use it for scholarly work.
Generative use
Informational use
Exceptions
Specific assignments might make exceptions for you to use AI in ways not otherwise allowed by this policy. You must follow this policy unless explicitly told otherwise.
This schedule is approximate and subject to change. Bold indicates a milestone with a presentation.
Week | Topics | Deliverable/Milestone |
1 | Introduction, Project proposals, Doing software well | Proposals |
2 | Software development lifecycle, Requirements | Group formation |
3 | Team group work norms, User stories | Requirements |
4 | Version control, Agile development, Prototyping | Github setup |
5 | Storyboarding, Getting feedback on your design | Paper prototyping |
6 | Accessibility | Feedback & Iteration |
7 | Architecture, Code Design, Build Systems | Design & Architecture |
Spring Break | ||
8 | Testing, Team reflection | Testing & CI |
9 | Testing | (work on release 1) |
10 | Feedback and critique, Documentation | Release 1 and demo |
11 | Code Review, Refactoring and technical debt | Documentation |
12 | Team reflection | Code Review and demo |
13 | Software Licensing and open source, Bug logging | Wrap up |
14 | Presentations | Final Presentation |
15 | Finals week | Final release |
Uncertainty alert: This calendar is for rough planning purposes only. Future dates are approximate and subject to change.
Theme | Start date | Sprint Planning due | Pulse check due | Main deliverables due (incl sprint review as applicable) | Sprint retrospective due | |
P | Proposal | Wed 1/22 | - | - | Mon 1/27 | - |
R | Proposal review | Mon 1/27 | - | - | Wed 1/29 | - |
M1 | Requirements & User Stories | Mon 2/3 | - | - | Thurs 2/6 | - |
M2 | Github Setup | Mon 2/10 | - | - | Sat 2/15 | - |
S1 | Paper Prototyping, Feedback & Iteration | Mon 2/17 | Wed 2/19 | Fri 2/28 | Sun 3/2 | Mon 3/3 |
S2 | Design & Architecture, Testing & CI (spans spring break) | Mon 3/3 | Wed 3/5 | Fri 3/28 | Sun 3/30 | Mon 3/31 |
S3 | Initial Release | Mon 3/31 | Wed 4/2 | Fri 4/11 | Tues 4/8 | Mon 4/14 |
Interlude: Demo 1 Presentation | Fri 4/11 | |||||
S4 | Documentation Use of AI | Mon 4/14 | Wed 4/16 | Fri 4/25 | Sun 4/27 | Mon 4/28 |
Demo 2 Presentation | Fri 4/25 | |||||
S5 | Wrap up | Mon 4/28 | Wed 4/30 | n/a | Wed 5/14 | n/a |
Final Presentations | Wed 5/7 |
Final "exam" meeting times (might be used for final presentations)
Assigned Mon 4/28
Assigned Wed 4/23
Assigned Mon 4/14
Assigned Fri 4/4
Assigned Mon 3/31
Assigned Fri 3/28
Assigned Mon 3/3
Assigned Fri 2/21
Assigned Mon 2/17
Assigned Mon 2/10
Assigned Wed 2/5
Assigned Mon 2/3
Assigned Wed 1/29
Assigned Wed 1/22
Assigned Wed 1/22