SC‐24sp‐Syllabus - TheEvergreenStateCollege/upper-division-cs-23-24 GitHub Wiki
Software Construction, Spring 2024
Syllabus
Tutoring, Office Hours
Consulting with the teaching assistant and coming to the instructor's office hours is an expected activity in the class and is necessary to excel in the class.
Collaboration and Academic Honesty Policy
Students are allowed to discuss and work with each other on assignments and on selected take-home quizzes, but must write up their own solutions and type in their own code.
Students are discouraged from using AI chat.
Attendance, Quiet Room, and Zoom Policy
Attendance is taken in every class. We ask students who wish to attend remotely through Zoom to request an accommodation from Evergreen's Accessibility Office before Week 1 of the quarter, to attend a zoom practice session and to follow these guidelines:
- Dedicate a quiet physical space to use while connecting through Zoom each time to aid in their focus
- Having to leave their home and walk a short distance helps, even if it's just walking around the house and back inside.
- Consider turning on their camera, with a background image if desired
- Participate by unmuting their microphones and asking or answering at least one question in every class.
Program Description
Software Construction is a thread of Student-Originated Software, an upper division program in computer science. It covers the core concepts and practices of software engineering dealing with program abstraction, specification and design. This quarter it was taught using the Rust programming language.
The main class text was the Interactive Rust Book from the Brown University Computer Science Department adapted from the official Rust book.
Topics include:
- Rust syntax and WebAssembly interaction with Javascript / Typescript
- interfaces vs. traits
- types
- refactoring
- unit tests
- string representation
- modules, package hierarchy, visibility
- ownership, borrowing, and lifetimes for references
- lambdas and closures
- design patterns
Students were evaluated based on 7 weekly assignments, which included and a final project demonstration to classmates.