Assignments
Course Assignments
Assignments Overview
There will be 8 Small programming assignments and 4 large programming assignments over the course of the semester. You will be given one week to complete small programming assignments and 2 weeks to complete large programming assignments.
Collaboration & AI Assistant Policies
Collaboration Policy
Assignments should be completed individually, without close collaboration with other students. You are free to discuss "high-level" ideas with other students in the class. However, you are not allowed to share code under any circumstance. If you have any doubts about this policy, ask Dr. Moran. I am here to help!
In general, Students are expected to code their programming assignments individually. A general rule with programming assignments is to never share your code (in parts or in whole) with other students or even look at another student’s code. Instead, ask your classmates broad questions. Here are some sample questions that are appropriate to ask and do not constitute cheating.
- My code compiles with this strange error message. What does that mean?
- Can you clarify what the instructor means in the directions for this assignment?
- Can you explain what happens in memory when a variable is declared?
- I am not sure how all these user defined functions in the large program assignment work together. Can you explain how they are all are supposed to work together?
Do not ask your classmates if you can see their code or if they can fix yours. If you are reading another student’s code for help, you are crossing the line as far as cheating goes in this course. Please, do attend office hours if you get stuck and need help, whether it is the concepts or the code! If you have any questions regarding what constitutes cheating in this course, come speak with the TAs or me! We are here to help you succeed!
The following sample questions constitute cheating:
- Can you show me how you implemented this user defined function?
- How did you compare two arrays?
- Is this how you check if the user input is valid and correct?
- How did you take summation of all integer values stored in the 1D array?
- Do you want to compare code solutions?
For each assignment, you will be required to turn in a "Collaboration log", that explains the students (and AI Assistants) that you chatted with. This collaboration statement can simply state "I did not collaborate with anyone on this assignment", or it should stipulate the person you worked with and what type of acceptable discussion took place.
You can download the Collaboration Statement Template document here.
Clarification about online sources: It is fine to use Google and other sites to look for snippets of publicly available code that might help you with assignments, and it is okay to use a limited amount of such code in your own work. You should not take entire solutions or large amounts of code from the web. And you must clearly comment your code to indicate which code and ideas are purely your own, which code or ideas are borrowed or adapted from elsewhere, and where the other code or ideas came from.
Policy on the Use of AI Coding Tools
Recently, we have seen the introduction and proliferation of AI tools (e.g., OpenAI ChatGPT and GitHub CoPilot) that are able to aid software engineers in their work. In this class, it is perfectly acceptable to make use of these AI assistants, and in fact, I would encourage students to try these tools and become familiar with them. The main reason for this is that learning to use AI effectively is an emerging and important skill for software engineers, and I will cover some basics about how to use these tools in certain lectures.
However, the course policy regarding academic integrity still discussed above still applies for AI Coding Tools like ChatGPT. That is, you should treat AI Assistants like a person, and hence should not ask AI programming tools to generate code for you, however, you are permitted to ask questions about code and to ask the AI assistant to explain concepts to you. It's not okay to put homework questions into a model, or to ask the model to solve specific tasks that an assignment has tasked you to perform. That crosses the line into simply cheating, just as asking a roommate to do your homework would be a violation of the College academic integrity policy.
When using AI assistants, please also consider the following policies and suggestions:
- Put Effort into Crafting High-Quality Prompts: Tools like ChatGPT and CoPilot, while useful, have serious limitations, and hence are often incorrect. If you provide minimum effort prompts, you will get low quality results. You will need to refine your prompts in order to get good outcomes. This will take concerted effort.
- Be Aware of AI Limitations: Even if you have crafted well-constructed prompts, do not blindly trust anything an AI assistant tool says or outputs. If it gives a fact or explanation, assume that it is wrong unless you either know it to be correct or check it with another source. You are responsible for any errors or omissions provided by the tool, and these tools tend to work best for topics you fully understand.
- Give the AI Tool Proper Attribution: AI is a tool, and one that you must acknowledge using. Thus, you must provide these tools proper attribution if you use them for assignments. As such, you are required to provide an entry in your Collaboration log to document when you have used one of these tools.
- Know When to Use and Not Use AI Tools Be thoughtful about when AI tools are useful and when they are not. Don't use the tool if it isn't appropriate, or if you do not have full grasp of a given concept from class.
Programming Assignment Style Guide
As we have discussed in class, you should follow the course style guide when writing your code.
Assignment Schedule & Instructions
All Assignments are due at midnight on the due date indicated, unless otherwise noted. See the full course schedule for additional information.
Small Programming Assignments are denoted by , where as Large Programming Assignments are denoted by .
Info
This schedule of assignments is subject to change throughout the course of the semester. Any changes will be announced on Ed Discussions.
Assignment |
Date Released |
Due Date |
Assignment Description |
---|---|---|---|
Eustis Setup - A First Test Program | August 27th | September 3rd | |
Small Program 1 | September 4th | September 11th | |
Small Program 2 | September 28th | October 6th | |
Large Program 1 | September 28th | October 13th | |
Small Program 3 | October 18th | October 27th | |
Small Program 4 | November 3rd | November 10th | |
Large Program 2 | November 3rd | November 17th | |
Small Program 5 | November 21st | November 28th | |
Large Program 3 | November 21st | December 1st |