Course Catalog:
A second programming course which reinforces the programming constructs learned in CS 2370 and covers more advanced programming techniques. Students learn about the client/server paradigm, how to create graphical user interfaces and event-driven program structure, and how to use basic data structures such as stacks, queues, lists, and trees. Students write applications using basic networking and multithreading techniques. Three lecture hours and 2 hours of computer lab. Falls and Springs.
Prereq: CS2370
Course Info #
- Instructor: Nat Tuck
- Email: <nathaniel.tuck@plymouth.edu>
- Office: D&M 305
- Lecture: Monday, Wednesday, Friday at 11:15am-12:05pm
- Labs:
- Section 01: Tuesday at 10-11:40am
- Section 02: Tuesday at noon-1:40pm
- Final Exam: Monday, December 8 @ 11am-1:30pm
- Course Site: https://homework.quest/ click “cs2381”
Office Hours, Fall 2025:
- In D&M 305
- Monday @ 1 - 2pm
- Tuesday @ 2 - 3pm
- Friday @ 12:30 - 1:30pm
Student Learning Outcomes #
Successful students will:
- Understand how to structure data in computer programs, including the roles of several common data structures.
- Be comfortable writing medium-sized programs in a modern programming language like Java.
- Be able to determine the computational complexity of many operations and algorithms.
- Practice reading and understanding computer code.
- Consider creative solutions to programming problems.
Texts #
We will be using the following free online textbooks:
Required Materials #
Grading #
Thing | Weight |
Labs | 40 |
Homework | 25 |
Attendance | 10 |
Final Exam | 25 |
The number of points available in an assessment may (or may not) exceed the denominator used in the grade calculation. For example, if the final exam offers 104 points out of 100, then a perfect score would count as 26% towards the final course grade.
Labs
Each week there will be a lab assignment to complete during the lab period. Labs will only be accepted before the end of the lab period, and only when submitted from a lab workstation.
The purpose of this course is to teach the skill of computer programming. Students need to practice writing programs themselves without external help. Therefore, the following rules apply to lab sessions:
- Personal electronics may not be used. If they are brought to lab, they must be kept in a closed container like a backpack.
- Only approved web resources can be used: Inkfish, the course site, provided lecture notes, the textbooks(s), the offical programming language documentation, and anything directly linked from the current lab assignment.
- Students who intentionally or repeatedly violate this policy will be asked to leave and will not be able to complete that lab assignment.
- These specific rules may be overridden by the instructions in individual lab assignments.
Homework
Each week there will be a homework assignment to be completed outside of class.
The intent of homework assignments is to learn and practice personal programming skills. You must complete homework either on your own or in assigned teams, and should not use external tools to generate solutions except as described in the assignments.
Homeworks submitted after the deadline loses 1% per hour late (round up).
There may be extra assignments that are counted as homework for administrative tasks like completing course evaluations.
Inkfish and Script Grades
Labs and homework will be provided through an online web application called Inkfish and must be submitted through the same system. Emailed submissions do not count for credit.
A portion of your grade for labs and homework assignments may be generated by an automatic grading script which runs when you submit your work. Unless there is a clear bug 🪳 in the script, the script output is that portion of your grade and will not be adjusted manually. You are being graded on getting the script to give you points. You should review the output, make corrections, and resubmit before the deadline if you are unhappy with the script results.
Script grades will be reduced if you submit work inconsistent with the text or spirit of the assignment, such as hard-coding outputs that should be calculated.
Feedback on your code will be additionally provided both manually and through the use of automated bots. Automated feedback will be marked as such, and any concerns about its correctness should be handled through the grade appeal process described below.
Teams
You may be assigned to work with a partner, in which case pair programming is required. In assigning partners, sometimes there ends up being a team of one or (under rare circumstances) three.
All team members are responsible for and get credit for any work submitted as a team.
Final Exam
The final exam will be on paper. Be prepared to write both English and code.
No electronics are allowed in exams.
Graded exams can be reviewed during office hours or by appointment.
Resources #
Tutoring #
There is evening tutoring in the lab classroom. See the course website for more details. The PASS Office also offers individual tutoring.
Accomodations #
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 (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 authorized CAS to electronically deliver a Letter of Accommodations for this course, please communicate with your instructor to review your accommodations.
Tentative Schedule #
Week | Date | Topic | |
---|---|---|---|
1 | Aug 25 | Intros: Class, Java; AI Tools | ThinkJava: Ch 1-6 |
2 | Sep 1 ‡ | Reviewing the Basics | ThinkJava: Ch 7-12 |
3 | Sep 8 | Lists, Interfaces, Generics; Java Stdlib | |
4 | Sep 15 | Algorithm Complexity | |
5 | Sep 22 | Building Lists: ConsList, ArrayList | |
6 | Sep 29 | Stacks, Queues, and Deques | |
7 | Oct 6 | Iterators, Sets, Maps | |
8 | Oct 13 | Hashing; Building HashSet | |
9 | Oct 20 | BSTs; Building TreeSet | |
10 | Oct 27 | More Sets / Maps | |
11 | Nov 3 | Bit Sets and Bloom Filters | |
12 | Nov 10 ¶ | Threads | |
13 | Nov 17 | Graphs | |
14 | Nov 24 § | 🦃 | |
15 | Dec 1 | Wrap-Up, Review | |
- | Dec 8-12 | Finals Week | Final Exam |
- ‡ No class on Monday, Sep 1 (Labor Day)
- § No class on Wednesday, Nov 26 - Friday, Nov 28 (Thanksgiving)
- ¶ No class on Monday, Nov 10 (Veterans Day)
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 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 receive an exception.
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.
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.
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
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 the use of generative AI tools. Such tools should not be used to generate assignment solutions except as explicitly described in a given assignment.
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.
Class cancellations and 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.