The Ethical Software Engineer and Academic Integrity
Software engineers are trusted with the lives and livelihoods of the users of the software they develop. Paying customers (clients, product owners) also depend on software engineers for their livelihoods. Furthermore, society depends on software engineers to act in the interest of the broader society, not just the paying customer and immediate users. Consequently, great (and ethical) software engineers hold themselves to the highest standards of conduct. They do their own work, they know where every line of code came from and document it, speak up when there is a problem, and do not allow the release of code that may jeopardize the livelihoods of users, clients, or society at large. It's not just good for business in the long term, it's the moral and ethical thing to do. Software engineers who do not uphold these standards will be passed over for promotions, lose their jobs, and be unable to get good references from previous employers or colleagues. You could even be sued for civil damages or indicted for a crime. Short-term or selfish thinking leads to long-term losses to all parties. In short, take the high road, you'll never regret it. Act in ways that you, your friends, and family would be proud.
It is within this framework -- the framework of the ethical software engineer -- that you should understand and practice UCSD's principles and rules of Academic Integrity. These are not arbitrary rules. These are the principles on which our identities as engineers are founded. There is no higher honor than to know that those around you feel they can count on you. Be worthy of that trust. It's not easy, it takes discipline and effort. Here, forthwith, is the Academic Integrity statement.
You are to do your own work in this course. Each student is responsible for knowing and abiding by UCSD's policies on Academic Dishonesty and on Student Conduct. Any student violating UCSD's UCSD Academic Integrity Policy will be reported to the Academic Integrity Office for administrative processing, and may result in suspension or dismissal from UCSD, as well an an academic sanction that could result in failing the course (e.g., a grade of zero (0) on a compromised assignment). Committing acts that violate the UCSD Student Conduct Code that result in course disruption will be referred to the Office of Student Conduct, and could result in suspension or dismissal.
As a clarification of the UCSD Academic Integrity Policy as it applies to the work in this course, note the following:
No student shall provide their assignments, in part or in total, to any other student in current or future classes of this course. No student shall procure or accept assignments from any other student from current or prior classes of this course.
You alone can possess and use your clicker. If you are found possessing someone else's clicker in lecture, or your clicker is found in possession of someone else during lecture, both of you will be in violation of the academic integrity policy.
You alone can turn in lecture worksheets. If you are found turning in someone else's worksheet in lecture, or giving the lecture code to someone else not in the room during lecture, both of you will be in violation of the academic integrity policy.
All programming code and documentation submitted for evaluation or existing inside the student's computer accounts must be the student's original work or material specifically authorized or provided by the Instructor. The course accounts are authorized for course work only.
Collaborating with other students to develop, complete or correct course work is limited to activities explicitly authorized by the Instructor (e.g., see below). Use of other student's course work, in part or in total, to develop, complete or correct course work is unauthorized. However, students may freely discuss their work with others.
Each student must retain intermediate work as proof that submitted work is their own. A student may be asked to provide these intermediate copies as evidence that the submitted work is the student's.
With regard to the above rules, it is understood that your project team members will be sharing code among its themselves (but not to other teams) to complete your project.
With regard to the above rules, it is acceptable to search the internet to solve programming problems of the "how to" and bug type. You are responsible for not violating copyright laws when taking code solutions that are found on the internet. If you cannot ascertain that copying is permitted, you cannot copy the code, but must, at worst, fashion your own solution based on the solution you have found. You must document the source (including a URL) of any code that is used in part or whole (at the place of use, in source code comments), just as you document your sources in an English paper or essay.
With regard to the above rules, it is acceptable to use pre-existing third-party libraries (i.e., jar files), as long as they have a license that permits such use. You are responsible for not violating said licenses. If there is no license or explicit permission, use is prohibited. You must document (in your project code) the use of third-party libraries, including a URL that points to the home of the library.
With regard to the above rules, it is permissible to use an AI code generator such as Github Copilot or ChatGPT to help you generate code. Consistent with the rules on using website code and libraries, you must document, in source code comments, which generator (including version number) was used, and the final prompt(s) used to generate the code. It is understood that you edit the code after generation; you must still cite the use.