Today’s class will cover two important topics for your professional development as computer scientists. Expect one lecture like this in each of your IT and CS major courses, and take the opportunity to think about your life as a programmer outside the classroom.
Copyright and plagiarism are two related topics that both have to do with what it means to be the author of a creative work. We normally think of “creative works” such as books, articles, songs, and artwork, but legally, source code is also a creative work. This has important consequences for programmers to understand.
The purpose of copyright is to protect authors’ ability to profit from their own work and control its distribution. Copyright protections in the U.S. date from 1790 and have always applied for only a limited duration, although that duration has been extended dramatically over the last century. Generally, if something is under copyright, that means you cannot copy it (duh), share it, or republish it without the copyright holder’s permission.
Once the copyright term of a work runs out, it is in the public domain and can be freely used by anyone. In some cases (such as works created by U.S. federal employees as part of their job), copyright never applies and the work goes into the public domain immediately.
Even when a work is under copyright, there are some legal exceptions that allow you to violate copyright under certain circumstances, even without the copyright holder’s permission. This is called fair use, and it’s important to understand what limited circumstances allow it.
This is informative because it says something concise and authoritative about what cannot be copyrighted.
The next quotation is from a a legal ruling, and sheds some light on Fair Use and its limits.
There is no clear way to determine whether some violation of copyright is fair use, as this has been historically decided by a series of court decisions rather than any specific law.
In general, there are four determining factors to decide if something is considered fair use:
How are you using it and why (“purpose and character”)
If you are using something for educational purposes, or some other kind of non-profit use, or are transforming the original in some way, that is more likely to be considered fair use.
Nature of the original work
More creative or artistic works are less likely to be considered fair use than factual or technical documents.
Amount used
This one is important! If you are just using a small excerpt or a single portion of the original, that’s much more likely to be considered fair use.
Effects on the potential market
Remember, the purpose of copyright is to make sure authors can make money from their hard work. So, if your infringement doesn’t really affect the copyright holder’s ability to make money, that’s more likely to be considered fair.
Plagiarism is not (usually) a legal question like copyright, but rather a moral and ethical one. Plagiarising someone’s work means that you take credit for it, either explicitly or implicitly implying that you created something which was actually someone else’s.
What about collaboration? That is when multiple people work together to create something (or create their own versions of something) at the same time. A key aspect to collaboration is that all parties are actually working on completing the same task.
Here are some examples of how this applies to computer programs, especially in an academic setting:
You are struggling with a lab so ask your friend for help. She already finished that part of the lab, so she just sends you her source code. You copy the relevant part into your own program, changing some variable names so that it fits in with your code.
This is not collaboration. Your friend was already finished and did not work with you in any way. If you did not say that you copied that segment of code from your friend, then you have also committed plagiarism. In IC210 (and most of your computing classes), this would not be permitted for assigned work, even for simple homeworks.
You can’t figure out a homework problem, so you search Google for the part you are stuck on. You find a StackOverflow page that has a few key lines of code which you need — hooray! You copy those lines into your program and submit it.
This is allowed in IC210 for homeworks and labs, but must be cited. If you do not cite (in comments) that you took this part of code from StackOverflow, then you are committing plagiarism by claiming that work is your own.
You can find more specific examples in the slides referenced at the top of this page. When in doubt, your best resources are to:
Interested Midshipmen should contact the relevant POCs.
This internship is for 2-4 students each summer. The National Oceanic and Atmospheric Administration (NOAA) provides weather modeling and prediction to the entire country, as well as specific services to our Navy and Marines forces in the field. We send a few midshipmen to intern with their high performance computing group to learn and contribute to the massive data problems that NOAA solves.
Draper is a research lab associated with MIT whose purpose is largely to connect cutting-edge researchers with problems that the military needs to be solved. As one high-profile example, Draper Labs developed and manages the Trident missile guidance system. We will send a group of up to 7 Midshipmen during 2nd block to work in 2-3 teams on different projects within Draper where computing expertise is most relevant. The specific projects change each year based on the current projects at Draper, but we will work closely with the researchers to pair Midshipmen with specific projects based on their interests and background.
This is our annual summer internship at a DoD supercomputing site (in Maui or in Stennis Air Force Base). You'll travel with a USNA faculty member to visit one of these supercomputers, and spend your internship doing hands on research with that faculty member. The research topics vary based on faculty, but each relies on the HPC resources which you'll learn to effectively use.
We are sending 2 midshipmen to NPS to work directly with research faculty in computer science, data science, and cyber security. The projects vary each summer and will depend on the particular projects that NPS is looking into. You'll stay in the Monterey, CA area and work on cutting edge research.
This is a new internship with one of the most innovative teams in the DoD. The DDS (https://www.dds.mil) is located in the heart of Silicon Valley with a mission to connect with the latest tech startups to find solutions to the military's technological challenges. They focus on drone intelligence, and midshipmen will go next summer to work with the DDS team on drone software and challenges.
We will send a couple midshipmen to Los Alamos directly from the CompSci department to work with researchers in Physics and related disciplines who have computational and software challenges that our CS and IT majors are uniquely positioned to help with. You'll work on active research based on their staff's current challenges.
Typically, a number of midshipmen go each summer to intern with NSA at or near Ft. Meade. This program requires a TS/SCI clearance. There are several divisions to which you may be assigned, from Operations to Research and Development.
The National Reconnaissance Office sponsors summer internships to the Naval Postgraduate School (NPS) in Monterey, CA. This year, the department is sending 2 Midshipmen to this program, which also requires a TS/SCI clearance. NPS offers postgraduate degrees in Computer Science, and the faculty are very involved in research. NPS has an engineering focus and a diverse student body, including military officers from all the services, DoD civilians, and international military officers from around the world. Many Naval Officers transitioning to the IDC community will study in Computer Science at NPS as part of their transition. Midshipmen will be assigned to NPS faculty members to assist with ongoing research.
The CS Department has other internships in the works each year, and are not yet finalized for 2022 and beyond so stay tuned for emails in the Fall time frame with the official list of opportunities. There are also other opportunities in other departments that frequently need IT and CS majors to help with, since computing skills are widely needed and the number of students with these skills are few!
The department annually participates in the NSA-sponsored Cyber Defense Exercise, or CDX, which normally occurs in April. Preparation for the exercise begins months prior, and the competition is open to all Midshipmen. The event often garners national media attention, and has high visibility with USNA’s leadership.
The department annually participates in the UMD/USNA-sponsored Data Science Challenge, which normally occurs in March. The event is open to all Midshipmen. Teams work on making sense of data sets donated by different sponsors, bringing new insights and helping them understand their data and making better decisions.
The department also supports the Women in Cybersecurity and Computing (WICC) ECA. WICC was created to inspire and empower women by providing a sense of community and support for women interested in technology-related careers or fields. The members participate in MOs to attend and organize conferences and volunteer in STEM activities. Contact Prof. Crainiceanu for more information.
The Bowman Scholar program is an opportunity for Midshipmen to select early for the nuclear navy, during their 2/c year, while also pursuing research. Bowman applicants must have at least a 3.2 QPR and be in the top half of their class by military order of merit. In conjunction with early acceptance into the nuclear power program, selected scholars perform a research internship during 1/c summer, a research course during 1/c fall, and some will be able to attend NPS immediately following graduation to obtain a Master’s Degree.
Here are useful links:
The GRE, or Graduate Record Examination, is a nationwide exam often used by graduate schools for admissions. There is a "general" GRE and there are subject-specific GREs. If you plan to apply to graduate school in the near future, you should consider taking the GRE and having your scores sent to graduate institutions. Be sure to check whether your graduate school would like to see scores on the general exam, a subject-specific exam (e.g., the Computer Science GRE), or both. A good time to take the GRE is near the end of your 1/c year, or soon after graduation, while the bulk of the material is relatively fresh in your mind.