Skip to main content
  1. /classes/
  2. Classes, Fall 2026/
  3. CS 4140 Fall 2026: Course Site/

CS 4140 Fall 2026: Syllabus

·2147 words·11 mins·
Software Engineering (3 credits)

← Back to Course Site

Course Catalog:
Presents fundamental principles of software engineering. Emphasizes software design, implementation and maintenance. Techniques used in the major phases of the software life cycle such as rapid prototyping, object-oriented design and module testing, are discussed. Software teams complete a term project that includes system documentation, design and implementation. Falls.
Prereqs: CS 2381 and CS 3720.

Course Info
#

Office Hours, Fall 2026 in D&M 305:

  • To Be Announced.

Student Learning Outcomes
#

Successful students will:

  • Work in a team to develop a complex web application.
  • Publish the resulting application as a public git repository released under an open source license.
  • Use a selection of specific tools, techniques, and methodologies for software engineering, software development, and project management.
  • Engage in self-directed learning to gain knowlege and experience with new web development languages, frameworks, libraries, and tools.
  • Discover project tasks and break large tasks down into smaller pieces.
  • Contribute to allocation of tasks between team members then personally do a fair share of the work.
  • Deploy to a commodity virtual private server.

Texts
#

There is no required textbook 🪳 for this course.

Course Materials
#

During the course of the semester, each student will be required to purchase the following services:

  • A commodity virtual private server for the full semester.
  • A domain name
  • $10 of credit on OpenRouter.

This can be done for under $50.

Please wait to get these until the task is assigned, as there are several specific requirements.

Software Project
#

In this course you will work in a team to build a software project.

This semester the plan is for the whole class to work as one big team to build a single application using a simple agile methodology. Tools and processes will be introduced as we go.

A major focus of this class is on the elements of software development other than writing application code, so expect those things to take a significant portion of your time and effort in this class.

Grading
#

Thing Weight
Final Presentation 25
Homework 25
Status Reports 50

The number of points available in an assessment may (or may not) exceed the denominator used in the grade calculation.

Letter grades

≥ 93 → A, ≥ 90 → A-,
≥ 87 → B+, ≥ 83 → B, ≥ 80 → B-,
≥ 77 → C+, ≥ 73 → C, ≥ 70 → C-,
≥ 67 → D+, ≥ 63 → D, ≥ 60 → D-,
else (< 60) → F

Final Presentation

At the end of the semester each student (or small group) will give a presentation on something interesting they did during during the semester. The grade for this will cover both the presentation itself and the work it describes.

A component of this grade may be from peer evaluations.

Homework

You will be assigned specific tasks to complete outside of class.

Status Reports

You will be assigned periodic status reports where you will need to answer questions and describe process steps and project tasks completed by you and your team.

Peer Evaluation

Some of your tasks will be to evaluate work done by your classmates, both in the form of code reviews and checklist-based confirmation of task completion.

This means your work will be evaluated by peers as well. In many cases, these evaluations will directly become task scores and influence final grades. Do the best you can to provide a fair and accurate evaluation.

Late Work

Please start early and submit your work on time.

In many cases other students won’t be able to start their tasks until you complete yours. Please try to avoid inconveniencing your classmates.

Tentative Topics and Dates
#

Week Date Topic
1 Aug 31 Welcome, Github, WebDev
2 Sep 07 † Multi-User App Structure
3 Sep 14 Testing, Features, DB Migrations
4 Sep 21 Deployment and CI, Project Start
5 Sep 28 CD, Documentation
6 Oct 05 Projects, Customers
7 Oct 12 Backups, Customer Meetings
8 Oct 19 Coverage, Design
9 Oct 26 Database, State
10 Nov 02 Big Feature Planning
11 Nov 09 † Load Time, Interactivity
12 Nov 16 Security, Monitoring
13 Nov 23 ‡ 🦃
14 Nov 30 Redundancy, Mirroring, Failover
15 Dec 07 Polish, Handoff
- Dec 14-18 Finals Week Presentations
  • † No class on Monday, Sep 07 (Labor Day) or Wednesday, Nov 11 (Veterans Day)
  • ‡ No class Wednesday, Nov 25 through Friday, Nov 27 (Thanksgiving Recess)

Standard Policies

Attendance

Attendance is required for all class meetings (whether lectures or labs). You must check in to the online attendance tool within 5 minutes of the start of the period to receive full attendance credit.

If you are absent for more than five class meetings, each subsequent missed meeting will subtract 4% from your final grade. Five is a large margin, giving you plenty of space for unavoidable absences that aren't covered by the excused absence policy.

If you are unable to attend class due to a circumstance covered by the university Excused Absence Policy email the professor as soon as possible for an exception. If you reasonably can email before the meeting, you must do so to for the absence to be excused.

Late Work

You are expected to submit your assignments by the deadline. Try to get stuff done and submitted at least an hour before that so you don't miss the deadline due to a browser bug or wifi glitch.

Unless some more specific policy is specified for a specific assignment or type of assignment, late work will not be accepted.

For assignments submitted via Inkfish, the late policy specified on Inkfish applies. Aside from "no late submissions", the other common option is "1% of grade subtracted per hour late".

If you are unable to complete an assignment on time due to circumstances covered by the university Excused Absence Policy email the professor as soon as possible for an extension. If you reasonably can email before the deadline, you must do so to receive an extension.

Submitting Work

Assignemnts will typically be assigned on Inkfish and must be submitted there. Work will *never* be accepted by email unless specifically requested, and any attempt to send work by unsolicited email will result in a 10% grade penalty on that assignment.

Letter Grades

≥ 93 → A, ≥ 90 → A-,
≥ 87 → B+, ≥ 83 → B, ≥ 80 → B-,
≥ 77 → C+, ≥ 73 → C, ≥ 70 → C-,
≥ 67 → D+, ≥ 63 → D, ≥ 60 → D-,
else (< 60) → F

Automated Feedback and Grading

This class may use two different mechanisms for automated feedback and grading: Grading scripts, and AI-assisted feedback.

For assignments with script grades, when you submit your work to Inkfish a script will automatically run and evaluate it. This will produce a grade, which is a portion of the grade you will recieve for this assignmet if this is your final attempt. If you don't like the grade, you should fix the issues so the script gives you more points. Points earned by bypassing the intent of the assignment (e.g. hard-coding outputs to make the script happy when you should be writing a program that computes stuff) will be removed.

For any assignment, you may receive feedback generated with LLM assistance. That analysis will be used to help compute your final score for improved usefulness, accuracy, and consistency. Obviously, if the LLM does anything dumb and I miss it you should let me know so we can fix it. The LLMs will either be run locally or through USNH provided services. Your work will not be shared with external (not local, not USNH) cloud providers for this purpose.

Hopefully this LLM assisted feedback will sometimes include fast feedback, where some feedback is provided before the assignment deadline. This will be slow compared to script grades, but should give an additional opportunity to revise your work before it's graded.

Peer Review

Any work you submit may be shared with other students in the class for peer review and feedback.

Grade Appeals

If you think you received an incorrect grade, send me an email describing why your grade is wrong and how you think it should be corrected.

If the grade isn’t clearly wrong, I will ask you to stop by my office hours so we can discuss the issue in more detail.

For scores automatically and immediately generated by deterministic test scripts on Inkfish, you are expected to review that immediate feedback and resubmit with corrections before the due date. Scores where you could have done that are unlikely to be modified unless there's a clear error in the script.

Academic Integrity

Please carefully read and be familiar with the university Academic Integrity Policy.

Especially don’t do any of the things in the list of examples of academic integrity violations. Make sure to review the penalties for repeated offenses.

The maximum penalty for academic dishonestly is a grade of “AF” in this course. In addition, the student’s name may be sumitted the the appropriate university authorities for further diciplinary action which may result in penalties up to dismissal from the University.

The most likely violation for this course is plagarism, which is when a student submits a solution for an assignment that wasn’t produced by them (or their assigned team in the case of a group assignment). Both submitting work that you didn’t produce and providing solutions to other students are unacceptable in this course and will result in a penalty as described above.

Some assignments in this course allow (or require) the use of generative AI tools. Such tools should not be used to generate assignment solutions except as explicitly described in a given assignment.

Copyright and Attribution

To avoid plagarism, the following are clearly OK:

  • If a you or a member of your team wrote code.
  • If a member of your team generated boilerplate code with a non-AI code generation tool (e.g. mix phx.gen.html in Phoenix)
  • Using external open source libraries through package management tools.

Copying code from other sources is OK if you provide clear attribution and:

  • The code is a documentation sample clearly intended to be adapted and used by developers OR the code is licensed under an open source license compatible with your project license. Make sure to follow the license.
  • Attribution should be identify the author if possible, how to find the resource (e.g. URL, book citation, etc), and any relevant licensing info.
  • The code isn't solving a programming task that you were supposed to solve with your own code.

Using code produced by generative AI is OK as long as:

  • The assignment instructs you to use a code generation tool and you do so according to the assignment instructions.
  • You clearly note in your submission (e.g. comment, README, etc) that you which code generation tools you used and how.
  • The default aider commit comment is sufficient.

Not OK:

  • Copying code you didn't produce yourself into your project without clear attribution.
  • Copyright infringement (including for non-code assets)
  • Getting other people to write code for you, especially non-classmates.

Fair Grading Policy

All grading in this class is subject to the university Fair Grading Policy.

Email and Canvas

Some communication about this class will be done through email to your University address. Please check your email; you are responsible for any email communications you miss.

Other communication - especially to the whole class - will be done through Canvas Annoucements. Check those regularly.

ADA Statement

Plymouth State University is committed to providing students with documented disabilities equal access to all university programs and facilities. If you think you have a disability requiring accommodations, you should contact Campus Accessibility Services (CAS), located in Speare 210 (535-3300) to determine whether you are eligible for such accommodations. Academic accommodations will only be considered for students who have registered with CAS. If you have a Letter of Accommodation for this course from CAS, please provide the instructor with that information privately so that you and the instructor can review those accommodations.

Tutoring

CS&T offers evening tutoring for several classes. Keep an eye out for annoucements. The PASS Office also offers individual tutoring.

Class Cancellations and Inclement Weather

Class cancellations, if nessisary for whatever reason, will be posted as an annoucement on Canvas.

While my goal is to hold class during inclement weather unless the Univesity has closed, that isn't always possible. Definitely check canvas for a cancellation (or short delay) if the weather report mentions freezing rain.

Inclement weather and class cancellations don't change assignment deadlines unless explictly noted.

Late Registration

If you register late for the course please contact the professor to discuss completing any missed assignments as soon as possible.

Nat Tuck
Author
Nat Tuck