Course Outline Fall 2026
WORK IN PROGRESS SYLLABUS (NOT FINALIZED)
University of Alberta
CMPUT 301 - Introduction to Software Engineering
LEC A1 EA1 A2 EA2 A3 EA3
Fall 2026
- WORK IN PROGRESS SYLLABUS (NOT FINALIZED)
- TERRITORIAL ACKNOWLEDGEMENT
- The University of Alberta respectfully acknowledges that we are located on Treaty 6 territory, a traditional gathering place for diverse Indigenous peoples including the Cree, Blackfoot, Métis, Nakota Sioux, Iroquois, Dene, Ojibway/ Saulteaux/Anishinaabe, Inuit, and many others whose histories, languages, and cultures continue to influence our vibrant community.
CMPUT 301: Introduction to Software Engineering
Sections: A1, EA1, A2, EA2, A3, EA3
Fall 2026
Instructor: Hazel Campbell
Office: UComm
E-mail: hazelcam@ualberta.ca
- ALL email must include CMPUT301 in the subject line
Office Hours: Immediately after class and by appointment
Lecture Room & Time:
LEC A1/EA1 - VVC 2-215 (MWF 10:00am - 10:50am)
LEC A2/EA2 - VVC 2-215 (MWF 11:00am - 11:50am)
Instructor: Abram Hindle
Office: UComm
E-mail: hindle1@ualberta.ca
- ALL email must include CMPUT301 in the subject line
Web Page: https://softwareprocess.ca/
Office Hours: Immediately after class and by appointment
Lecture Room & Time:
LEC A3/EA3 - ETLC E1-017 (MWF 12:00pm - 12:50pm)
Teaching Assistant(s): Available on the course webpage
Labs: ETLC E1-003 5pm to 7:50pm TWR
TERRITORIAL ACKNOWLEDGEMENT
The University of Alberta respectfully acknowledges that we are located on Treaty 6 territory, a traditional gathering place for diverse Indigenous peoples including the Cree, Blackfoot, Métis, Nakota Sioux, Iroquois, Dene, Ojibway/ Saulteaux/Anishinaabe, Inuit, and many others whose histories, languages, and cultures continue to influence our vibrant community.
COURSE CONTENT
Calendar Description:
As an introduction to software engineering, this course is about building software effectively. You will apply good practices, effective design techniques, and development tools within a team project to create an application with a graphical user interface.
The focus is largely practical, with broad coverage in topics such as: object-oriented design, user interfaces, unit testing, design patterns, and refactoring.
Communication skills, team dynamics, working with a "customer", and creativity are also important factors in the course project. The knowledge, skills, and experience you gain will be invaluable in your future software development projects.
Additional Course Information:
Course Prerequisites: CMPUT 201 or CMPUT 275
Course Objectives and Expected Learning Outcomes:
We will learn about applying software engineering concepts to design and implement interactive applications.
One effective way to build such applications is to apply object-oriented design and use software components. To be useful to end users, the design of these applications must also be guided by usability principles. The course involves a team project in building a well-designed Java/Android application with a sophisticated graphical user interface.
By the end of this course, you will have a strong background in basic software engineering concepts. Also, you will have the skills to implement interactive applications in Android. You will learn to propose and think critically about software and user interface designs.
Students are expected to participate in all classes and labs.
LEARNING RESOURCES
Required Course Materials:
This course does not have a required textbook. There are a number of excellent resources for this course, available as electronic books or through open access on the Web. See the course Canvas site for links.
Images reproduced in lecture slides have been included under section 29 of the Copyright Act, as fair dealing for research, private study, criticism, or review. Further distribution or uses may infringe copyright on these images.
In addition to fair dealing, the Copyright Act specifically exempts projected displays by educational institutions for the purposes of education or training on the premises of the education institution.
Copyright regulations, however, prohibit me from distributing complete copies of the lecture slides on the course site.
You may assume that any code examples we provide to you are public domain and free for you to take without attribution, unless they are licensed.
Course Material Access:
Course Material Access allows students to access their required course materials through Canvas for the duration of the term. A flat fee per term will appear in the student's Fee Assessment section in Bear Tracks. Digital formats are prioritized, but print materials are provided if digital formats are not available. This is an automatic opt in program, but students can choose to opt out, if they decide it is not for them. Some reasons may include:
- the cost of all required course material is less than the program flat fee for the term
- print materials are preferred over digital formats
- access to course material is desired beyond a given term
Students must choose to opt out by each term's registration deadline (i.e., add/delete date). Students will automatically be opted out if none of their digital or printed course material has a cost associated with it. For more information on how to access your course materials on Canvas or how to opt out, visit the Course Material Access website.
Recommended or Optional Learning Resources:
See the resources page on the course webpage.
Course Schedule & Assigned Readings:
See the online live schedule here.
Other Course Fees:
Students will be required to use the online service Firebase in order to complete the coursework and course project. The expected fees are $0, however, Firebase may assess fees if storage, bandwidth, user, or operation limits are exceeded, watch your account usage. One member of the group will be required to supply payment information. It is the responsibility of the student to pay for any Firebase charges. If you are unable to pay these fees, you must contact your TA and instructor immediately. You might need a credit card.
On-Line Homework Disclaimer:
- Online homework is a component of this course and is provided by a third-party company. Please be aware that this company will be storing assessment information that may be associated with you. As a way to protect your personal information, you may be assigned a random ID to enter into the system. Only the random ID, performance on the online homework, and the affiliation to the University of Alberta for this random ID will be conveyed to the company. You are not required to provide any additional personal information to this company. If you have concerns about this, please contact the instructor of the course.
Additional learning resources aimed at facilitating student learning, and perhaps including formative assessment tools, are available from the textbook publisher and may be accessed for a fee paid by the student to the third-party provider (e.g., textbook company). Students choosing to access and use the online resources should note the following:
- Firebase (Google) - See "Course Fees" above.
- Registration in the system and any monetary transactions are of their own accord and not the responsibility of the University of Alberta.
- Students should be mindful of protecting personal information and aware of how their personal information might be used and/or shared.
- Students can consider using a non-identifying email address or account for these purposes.
REMOTE DELIVERY CONSIDERATIONS
To successfully participate in remote learning in this course, it is recommended that students have access to a computer with an internet connection that can support the tools and technologies the University uses to deliver content, engage with instructors, TAs, and fellow students, and facilitate assessments and examinations. If you encounter difficulty meeting the technology recommendations, please email the Office of Student Success and Experience (sse@ualberta.ca) directly to explore options and support. Please contact the instructor by the add/drop deadline if you do not have access to the minimum technology recommended.
Student Resources for Remote Learning:
Online learning may be new to you. Please refer to Technology for Online Learning - For Students to ensure you have the appropriate technology for remote learning.
Hybrid Synchronous Delivery:
There are online lecture components for sections A1/EA1, A2/EA2. Lectures are in-person in section A3/EA3.
Recordings of Synchronous Activities:
A1/A2:
- Please note that class times for this course will be recorded. Recordings of this course will be post to allow students to catch up on missed lectures due to illness and review for exams. Recordings will be disclosed to other students enrolled in this section of the class and University of Alberta instructors, chairs, deans, and decision makers, officers, etc. upon request.
- Recordings of this course are to be used by students for the purposes of exam review prior to exams, and review by students with an excused absence or relevant accomodation only.
- Students have the right to not participate in the recording and are advised to turn off their cameras and audio prior to the recording, but students can still participate in the text-based chat. It is recommended that students remove all identifiable and personal belongings from the space in which they will be participating.
- Recordings will be made available until the day before the final exam, and accessible on Canvas. Please direct any questions about this collection to the instructor of the course.
A3: There are no recordings.
Home-based Lab Activities:
As part of the learning experience in this course, you will be required to undertake certain activities in or around your place of residence, To ensure that you undertake the activity safely and fully informed of the risks, please review the University of Alberta's Remote Learning Lab-Based Assignment Information Advisory. If you have questions or concerns, contact your instructor.
GRADE EVALUATION
| Assessment | Weight | Collaboration Policy | Date |
|---|---|---|---|
| Participation | 8% | Consultation | Most Lectures |
| Labs | 5% | Consultation | Fridays 5:00pm |
| Assignment 0 | 1% | Consultation | \~ Week 3 - 2026-09-18 5pm |
| Project Part 0 | 1% | Teamwork | \~ Week 3 - 2026-09-18 5pm |
| Assignment 1 | 8% | Consultation | \~ Week 5 - 2026-10-02 5pm |
| Project Part 1 | 1% | Teamwork | \~ Week 5 - 2026-10-02 5pm |
| Project Part 2 | 5% | Teamwork | \~ Week 8 - 2026-10-20 5pm |
| Project Part 3 | 10% | Teamwork | \~ Week 10 - 2026-11-06 5pm |
| Project Part 4 | 16% | Teamwork | \~ Week 14 - 2026-11-30 5pm |
| Midterms | 15% × 1 = 15% | Confidential | MT1: October 16 |
| Final | 30% × 1 = 30% | Confidential | Don't know |
For courses with a Final Exam, students must verify the date of the Final Exam on Bear Tracks when the Final Exam Schedule is posted.
Grades are unofficial until approved by the Department and/or Faculty offering the course.
The scores shown on Canvas are not accurate.
Midterm Dates
50 minute exam sessions at:
- Midterm 1 - Friday, October 16, 2026
- A1/EA1: 10:00 AM
- A2/EA2: 11:00 AM
- A3/EA3: 12:00 PM (noon)
Re-examination:
There is no possibility of a re-examination in this course.
Final Letter Grades
University of Alberta Grading Policy
Grades reflect judgments of student achievement made by instructors and must correspond to the associated descriptor. These judgments are based on a combination of absolute achievement and relative performance in a class. Faculties may define acceptable grading practices in their disciplines. Such grading practices must align with the University of Alberta Assessment and Grading Policy and its procedures.
Course Grades Obtained by Undergraduate Students:
This table reflects the GPA Point Value and Descriptor (e.g., Excellent, Good) for each Letter Grade.
| Descriptor | Letter Grade | Grade Point Value |
|---|---|---|
| Excellent | A+ | 4.0 |
| Excellent | A | 4.0 |
| Excellent | A- | 3.7 |
| Good | B+ | 3.3 |
| Good | B | 3.0 |
| Good | B- | 2.7 |
| Satisfactory | C+ | 2.3 |
| Satisfactory | C | 2.0 |
| Satisfactory | C- | 1.7 |
| Poor | D+ | 1.3 |
| Minimal Pass | D | 1.0 |
| Failure | F or F4 | 0.0 |
Note: F4 denotes eligibility of a student to apply for a re-examination in a course.
Access to Past or Representative Evaluative Material: Past materials are located on the CMPUT 301 GitHub webpage: https://ualberta-cmput301.github.io/general/resources.html
Statement of Expectations for AI Use:
AI Use Generally Permitted
You can use GenAI tools in this course, within the guidelines specified for each assessment. Follow all directions as provided. If you have any questions/concerns, please ask. AI is prone to fabrication (factual inaccuracies). Review outputs carefully and validate using trusted sources. You are responsible for any errors or omissions the AI tool provides that you fail to identify and resolve.
Important: AI use must be acknowledged transparently. See the U of A Library’s How to Cite AI for standard reference and citation expectations. Failure to acknowledge AI use may be considered cheating and a violation as outlined in the relevant sections of the University of Alberta Student Academic Integrity Policy.
While you may use AI, you MUST not submit work by LLMs as your own without acknowledgement, that is plagiarism. This also applies to other "AI" and Generative Models: ChatGPT, Claude, Lex, Page, DALL-E2, Google Gemini, Microsoft Bing/Copilot, and others. If you use LLMs you must cite it. This includes the corporation that made the AI, the AI, Subject, and Date. For example:
// The following function is from Microsoft, Copilot, "How do I write a merge sort in JavaScript?", 2023-08-31
function mergeSort(array) {
Due to the changing nature of LLMs and agentic software engineering if you use it, you must specify you used it in your assignment or project README and estimate how comprehensively you used it. You're responsible for everything you submit.
If you use LLMs you must cite it, but it's probably better to Google what it tells you and find a real citation because:
LLMs like ChatGPT are wrong a lot. It does not understand computer science. It understands how to form sentences and paragraphs well enough to be convincing, but it doesn't actually understand what anything it is saying means. When it has the choice between two answers, with opposite meanings, it will pick the answer that looks more like things it has seen before, not the answer that is more correct. This means you need to double-check that what it tells you is actually correct.
StackOverflow is always a better resource than Large Language Models such as ChatGPT, Copilot, Gemini, etc., but of course if you use code from StackOverflow or any other website, you must cite it. This is because other human programmers will usually check and downvote, remove, or fix bad information on StackOverflow. No one is checking the output of LLMs: if an LLM lies to you, no one will ever know.
ChatGPT and similar services are recording everything you tell it, and tracking you. Using ChatGPT/Claude/Gemini etc. they are recording everything you say and how the LLM responds to you. There is no privacy.
- ChatGPT example from CMPUT 229:
- Me: "What is the difference between the b and j pseudoinstruction in RISC-V?"
- ChatGPT: "... The b instruction is actually a shorthand for the more general beq (branch if equal) instruction, which compares two registers and branches if they are equal. However, > > in the case of b, one of the registers is always x0 (the zero register), so the comparison > is always false, effectively causing an unconditional jump. ...the key difference between b > and j is that b is a relative branch instruction that jumps to a location within a limited range, while j is an absolute jump instruction that can jump to any address within the range of the program counter."
- There are 3 problems with this answer:
- b is not shorthand for beq: RARS replaces it with jal -- the actual replacement depends on the assembler used and the situation it is used in.
- This also makes ChatGPT's conclusion about relative limited range jumps and absolute jumps wrong. All jumps and branches in RISC-V are relative, short range jumps except jalr. RARS also (at least in every case I've seen) translates j to jal, not jalr, and jal is also a short-range, relative jump.
- If b gets translated to beq x0, Y, label then what guarantees that the other register isn't also zero? The comparison with beq x0, Y cannot always be false, despite what ChatGPT claimed. This really doesn't make any sense. It would make more sense for it to be translated to bne x0, x0, label ... but that's the opposite instruction of what ChatGPT claimed.
AI Assisted Grading:
This course uses AI-assisted tools—specifically Gemini—to support parts of the grading process. These tools assist in identifying patterns, enhancing consistency, and the efficiency of grading tasks. By streamlining these processes, more time can be dedicated to higher-value teaching activities, such as providing personalized feedback, developing learning materials, or directly supporting students, while also ensuring timely return of assessments. AI tools may be used to assist in grading assignments, projects, labs, and exercises. Regardless of the tool’s involvement, final responsibility for all grades rests with the instructor.
Data Use and Privacy
Student submissions may be processed through these tools to provide grading support. In alignment with the tools terms of use:
- Your work is not used to train public AI models.
- Submitted data is typically retained temporarily to complete the grading task but is not stored long-term.
- No personally identifiable information is intentionally shared with the AI tool.
Gemini has been reviewed through the University’s Privacy and Security Assessment process and is approved for use in AI-assisted grading. If you are concerned about how your data is handled, I encourage you to reach out to me with questions or review the tool’s privacy documentation (Gemini). The appeals process for grades remains unchanged and follows standard university procedures.
Your Options
If you are uncomfortable with your work being processed through AI-assisted tools, you may choose to opt out. To do so, please notify the instructors by email 2026-09-18. Your decision to opt out will be respected and will not negatively affect your standing in the course.
Feedback Transparency
Your feedback will always state if the submission was graded by AI with the following:
- AI-assisted grading - Provisional marks generated by the tool and confirmed by the Head TA or the instructor.
- AI-assisted with human re-check - Initially processed by the tool but redirected for full human review due to a key performance indicator (KPI) trigger (e.g., low confidence, rubric mismatch, or disagreement between AI grading agents).
- Manually graded - Assessed entirely by a human grader without AI involvement.
Appeals & Error Handling
If you believe your grade reflects an oversight—by the AI tool or a human reviewer, please review the rubric and contact the instructors within one week for re-evaluation.
POLICIES FOR LATE AND MISSED WORK
- You must attend this class live, while the lectures are happening unless you have an acceptable excuse (incapacitating illness, etc.). You must be in Edmonton and available to attend in-person. If you are not available to attend in person do not take this course. Following University policy, we absolutely do not provide any accommodations for travel. https://calendar.ualberta.ca/content.php?catoid=69&navoid=20927#attendance
- "Unacceptable reasons include, but are not limited to personal events such as vacations, weddings, or travel arrangements. When a student is absent without acceptable excuse, a final grade will be computed using a raw score of zero for the work missed. Any student who applies for or obtains an excused absence by making false statements will be liable under the Student Academic Integrity Policy. Students should consult their Faculty for detailed information and requirements."
Late Policies:
No late work is accepted. This include midterms and final exams. No resubmissions. Late work will not be marked.
Absence Form:
This course uses a Google form to request excused absences for term work. This form needs to be filled out by students if they wish to request an excused absence for any deliverable. Emails to instructors or TAs will not be accepted as timely notification for an excused absence. Absence Form
Missed Term Work/Final Exam Due to Non-medical Protected Grounds (e.g., religious beliefs):
When a term assessment or final exam presents a conflict based on non-medical protected grounds, students can register with the Academic Success Centre for accommodations via their Register for Accommodations website. Students can review their eligibility and choose the registration process specific for Accommodations Based on Non-medical Protected Grounds.
It is imperative that students review the dates of all course assessments upon receipt of the course syllabus, and register AS SOON AS POSSIBLE to ensure the timely application of the accommodation. Students who register later in the term may experience unavoidable delays in the processing of the application, which can affect the accommodation.
Missed Labs:
Labs are due Friday at 5PM on the same week the lab was presented. Project meetings are due at the time of the meeting, and they are included in the lab mark. Failure to attend and actively participate in project meetings will result in a lab mark of zero.
The 2 lowest marks for Labs (including project meetings) will be dropped when calculating the course mark. No late labs will be accepted. Failure to complete a lab (or to attend a project meeting) on time for any reason will result in a mark of zero. Please note that you can miss 2 labs (or project meetings) without penalty. We will not apply excused abscences to labs except in exceptional circumstances as you are allowed to miss some.
Missed Lecture Participation:
Participation exercises will be available at most lectures.
The 6 lowest marks for lecture participation will be dropped when calculating the course mark. No late participation will be accepted. Failure to complete a participation exercise on time for any reason will result in a mark of zero. Please note that you can miss 6 lectures without penalty. We will not apply excused abscences to participation exercises except in exceptional circumstances as you can miss some.
Submitting participation exercises is the responsibility of the student to do it in a timely manner.
Missed Assignments, Project Parts, Quizzes, Midterm Exams:
A student who cannot complete an assignment, project part, quiz, or midterm exam, due to incapacitating illness, severe domestic affliction or other compelling reasons must contact the instructor within two working days of missing the assessment, or as soon as possible, to request an excused absence using the absence form. If an excused absence is granted, then the deliverable weight will be split and shared over other deliverables in the same category (categories such as assignments, exams, project). If a Midterm exam is missed, then its weight will be transferred to the Final exam. An excused absence is a privilege and not a right. There is no guarantee that an absence will be excused.
Misrepresentation of facts to gain an excused absence is a serious breach of the Student Academic Integrity Policy. In all cases, instructors may request adequate documentation to substantiate the reason for the absence, at their discretion.
Failure to complete an assignment or contribute to a project part without an excused absence will result in a raw score of zero or a proportional score reduction.
Re-evaluation of Term Work:
Re-Evaluation of Term Work follows the Computing Science department course policies. Any questions or concerns about marks on a particular assignment must be brought to the attention of the instructor (not a TA) within 7 calendar days of its return date. After that, we will not consider remarking or re-evaluating the work. So do not expect anyone to re-evaluate all the work you did all term long in the hopes of getting a higher final grade.
However, clerical errors such as incorrectly computing or recording a mark may be raised at any time prior to 2 working days following the final exam. It is the student's responsibility to confirm that their term work has been recorded properly.
Deferred Final Examination:
A student who cannot write the final examination due to incapacitating illness, severe domestic affliction, or other compelling reasons can apply for a deferred final examination. Such an application must be made to the student's home Faculty Office within two working days of the missed exam and must be supported by appropriate documentation or a Statutory Declaration (see calendar on Attendance). Deferred examinations are a privilege and not a right; there is no guarantee that a deferred examination will be granted. The Faculty may deny deferral requests in cases where less than 50% of term work has been completed. Misrepresentation of facts to gain a deferred examination is a serious breach of the Student Academic Integrity Policy.
An approved deferred final examination may use an alternative format and may include an oral component. Deferred examinations will be held on February 1, 2027, between 10:00 a.m. and 5:00 p.m. Mountain Time. Individual start times will be assigned after the number of approved deferrals is known. Because the examination may include an oral component, students may be scheduled in separate time slots. All approved deferred final examinations for this course will be administered on this date.
STUDENT RESPONSIBILITIES
Academic Integrity and Student Conduct:
The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Student Academic Integrity Policy (on the University of Alberta Policies and Procedures Online (UAPPOL) website) and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation, and/or unauthorised collaboration. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University.
The University of Alberta is also committed to maintaining a learning environment that fosters the safety, security, and the inherent dignity of each member of the community, ensuring students conduct themselves accordingly by avoiding behaviour stipulated in the Student Conduct Policy (e.g., discrimination, harassment, physical assault).
All students are expected to consult the Academic Integrity website for clarification on the various academic offences. All forms of academic dishonesty are unacceptable at the University. Unfamiliarity of the rules, procrastination or personal pressures are not acceptable excuses for committing an offence. Listen to your instructor, be a good person, ask for help when you need it, and do your own work -- this will lead you toward a path to success. Any academic integrity concern in this course will be reported to the College of Natural and Applied Sciences. Suspected cases of non-academic misconduct will be reported to the Office of Student Success and Experience (formerly the Office of the Dean of Students). The College, Faculty, and Dean of Students are committed to student rights and responsibilities, and adhere to due process and administrative fairness, as outlined in the Student Academic Integrity Policy and the Student Conduct Policy. Please refer to the policies for details on inappropriate behaviours and possible sanctions.
The College of Natural and Applied Sciences (CNAS) has created an Academic Integrity for CNAS Students website. Website content includes the importance of academic integrity, examples of academic misconduct & possible sanctions, and the academic misconduct & appeal process. Students can also access this material as an online, self-directed Canvas course and complete assessments to test their knowledge.
The Office of Student Conduct and Accountability has also made the following Canvas course available for all students: Academic Citizenship: Integrity and Belonging in the Learning Community.
"Integrity is doing the right thing, even when no one is watching" -- C.S. Lewis
Contract Cheating and Misuse of University Academic Materials or Other Assets:
Contract cheating describes the form of academic dishonesty where students get academic work completed on their behalf, which they submit for academic credit as if they had created it themselves. Contract cheating may or may not involve the payment of a fee to a third party, who then creates the work for the student.
Examples include:
- Getting someone to write an essay or research paper for you.
- Getting someone to complete your assignment or exam for you.
- Posting an essay, assignment, or exam question to a tutorial or study website; the question is answered by a "content expert", then you copy it and submit it as your own answer.
- Posting your solutions to a tutorial/study website, public server, or group chat and/or copying solutions that were posted to a tutorial/study website, public server, or group chat.
- Sharing your login credentials to the course management system (e.g., Canvas) and allowing someone else to complete your assignment or exam remotely.
- Using an artificial intelligence bot or text generator tool to complete your essay, research paper, assignment, or exam solutions for you (without the instructor's permission).
- Using an online grammar checker to "fix" your essay, research paper, assignment, or exam solutions for you (without the instructor's permission).
Contract cheating companies thrive on making students believe that they cannot succeed without their help; they attempt to convince students that cheating is the only way to succeed.
Uploading the instructor's teaching materials (e.g., course outlines, lecture slides, assignment, or exam questions, etc.) to tutorial, study or note-sharing websites, public servers, or chat apps is a copyright infringement and constitutes the misuse of University academic materials or other assets. Receiving assignment solutions or answers to exam questions from an unauthorized source puts you at risk of receiving inaccurate information.
Contract Cheating: CMPUT Courses:
These are also contract cheating:
- Logging in as someone else
- Sharing your login credentials
- Sharing your anonymous ID
- Using someone else's anonymous ID
- Allowing someone else to log in as you
- Representing yourself as someone else
- Having someone else represent themselves as you
on any of the following:
- On other UAlberta services and linked services:
- Zoom
- gmail
- Google Chat, Drive, ...
- Lab computers
- Wi-Fi
- On an external service, website, or app:
- repository hosting services: GitHub, GitHub Classroom, Bitbucket, GitLab, ...
- live quiz services: Wooclap, ...
- Textbook websites/apps
- KnowledgeTree/MasteryGrids
- online tutorials
- online practice systems
- online homework systems
These are also contract cheating:
- Misrepresenting authorship to a version control system such as git:
- Forging git commit metadata (author, time, etc.)
- Creating git commits where the author recorded did not create the changes being committed.
- ...
- Submitting participation exercises for someone else. Representing yourself as someone else, or having someone else represent themselves as you to an instructor, TA, or other UA employee.
- Attending lecture/lab/seminar for someone else.
- Having someone else attend lecture/lab/seminar for you.
Appropriate Collaboration:
Students need to be able to recognize when they have crossed the line between appropriate collaboration and inappropriate collaboration. If students are unsure, they need to ask instructors to clarify what is allowed and what is not allowed.
Here are some tips to avoid copying on assessments:
- Do not write down something that you cannot explain to your instructor.
- When you are helping other students, avoid showing them your work directly. Instead, explain your solution verbally. Allowing your work to be copied is also considered inappropriate collaboration.
- It is also possible that verbally discussing the solution in too much detail may result in written responses that are too similar. Try to keep discussions at a general or higher level.
- If you find yourself reading another student's solution, do not write anything down. Once you understand how to solve the problem, remove the other person's work from your sight and then write up the solution to the question yourself. Looking back and forth between someone else's paper and your own paper is almost certainly copying and considered inappropriate collaboration.
- If the instructor or TA writes down part of a solution in order to help explain it to you or the class, you cannot copy it and hand it in for credit. Treat it the same way you would treat another student's work with respect to copying, that is, remove the explanation from your sight and then write up the solution yourself.
- There is often more than one way to solve a problem. Choose the method that makes the most sense to you rather than the method that other students happen to use. If none of the ideas in your solution are your own, there is a good chance it will be flagged as copying.
For programming assignments, powerful software tools are used to detect plagiarism. When the software tools indicate that there is similarity between two submissions, the submissions are reviewed by the instructor or teaching assistant. If the possibility that the standards for academic honesty were violated is confirmed, an investigation is started. Eventually the submitted solutions may be forwarded to the Faculty of Science Associate Dean of Students for further investigation and eventual sanctions.
- Each student must be able to verbally describe their exam answers and code, line by line, to a professor or TA, if asked to do so. Your mark may be reduced if you aren't able to explain your own work satisfactorily.
- For some substantial programming assignments and homework questions, students may discuss the concepts covered by the assignment with other students registered in the course as long as they do not share actual solutions or programming code.
- All suspected cases of plagiarism will be forwarded to the Dean's office and thoroughly investigated. Receiving a low mark for work not completed is a far superior alternative to this process and its possible long-term consequences for your career.
All suspected cases of plagiarism and other forms of cheating are immediately referred to the College of Natural and Applied Sciences (CNAS). CNAS, not your instructor, will determine what course of action is appropriate. We do not hesitate to send ALL cases of cheating to CNAS. Please do not put yourself or us into such an unpleasant situation. Please read the Student Conduct Policy carefully.
Citations:
If you include code or ideas from someone who isn't you (including from a Generative AI or LLM) you must cite it. Here are examples of an appropriate citation:
// The following function is from Microsoft, Copilot, "How do I write a merge sort in JavaScript?", 2023-08-31
function mergeSort(array) {
To cite something written by an entity such as a real person you must include the name of the author, the name of the resource, directions to the resource (like a URL).
/* This function was made by Gerald <gerald@example.com> in lib/X.c at https://example/libX/src/lib/X.c 2015 */
void scrambleEggs() {
Stackoverflow recommends you cite the author, the license, the title of the question, the url to the answer.
/*
Author: Felix Too https://stackoverflow.com/users/4083076/felix-too
Title: "Failed to install the following Android SDK packages as some licences have not been accepted" error
Answer: https://stackoverflow.com/a/55641042
Date: 2019-04-11
License: CC-BY-SA 4.0 (International)
*/
It's better to document AI use than get questioned if you used it.
Collaboration policy definitions:
The following are definitions for the different collaboration policies used in this course
Solo Effort:
Solo Effort must be completed by the student registered in the course without external assistance from any individual or organization.
- Students may only submit work authored by themselves.
- Students may not discuss or exchange solutions, steps, strategies, code, links, code, images, videos, output, comments, repositories, answers, etc.
- Students may not consult with other students on how to solve the problem, unlike the consultation model described below.
- Students may not submit a quiz, or exam without attending the relevant lecture, lab, seminar, or exam.
- Students may not share a quiz, or exam link (URL).
- Students may not represent themselves as someone else, (or have someone else represent themselves as the student) during lectures, labs, seminars, or exams.
- Including in-person or over Zoom, or any other remote video, voice call, chat, or email service.
- See Contract Cheating above.
Violation of the above will be considered a breach of the Student Academic Integrity Policy.
Confidential:
Midterms and Final Exams are also Confidential in addition to Solo Effort as listed above.
- Students may not discuss the contents of the exam, except with instructors.
- Students are not always able to take the exam at the same time, so do not discuss the contents of the exam even if you have already taken it!
- No human, computer, electronic assistance is allowed of any sort, including AI chatbots, calculators, tutors, etc.
Consultation:
Individual assignments and labs are under the department's Consultation model. That means you may discuss the labs with others, but you must create and submit a solution that is entirely your own work. If you consult with other students, you must list their names in a comment at the top of your submission or in your repository README, along with a brief description of the part(s) of the assignment you discussed.
How to consult with other students without plagiarizing:
- Study the Course, Computing Science Department, CNAS, and University policies listed above regarding Academic Integrity.
- All sources used must be cited.
- If you use code snippets you must cite them, please see the examples above.
- All sources of information used, e.g., books, websites, students you talked to etc., must be cited in your submitted file or repo README for each assignment.
- If student A cites student B, then B should also cite A as consulted.
- Individually develop your own solution for assignments and exercises. Submit only your own work for evaluation.
- Each student is responsible for what is handed-in and must be able to explain it.
- Students may only submit work authored by themselves. Work submitted by a student that is the work of someone else (e.g. another student or a tutor) either in part or in entirety is considered plagiarism.
- You can freely discuss the steps and solutions with your classmates on a conceptual verbal level.
- Limit discussion to be among students taking the current course, not students who took in earlier terms or other students. Consultation is a two-way process that benefits both sides.
- Do not exchange any text, code, images, videos, output, comments, repositories, or detailed (low-level) step-by-step procedures.
- Do not share solutions.
- Do not give other students access to your solutions and do not seek access to other's solutions. This is considered plagiarism.
- Do not show your code to classmates.
- Do not look at a classmate's code.
Examples of consultation:
- Acceptable consultation example:
- Student A has a problem with the code
- Student A asks Student B for help
- Student B explains the steps, concepts, or techniques they used to get their code working
- Student A understands the fix
- Student A can reproduce and explain the fix.
- Student A submits the code
- Acceptable consultation example:
- Student A needs to make a grid for a board game program.
- Student A asks Student B for help.
- Student B explains that they "used two nested for loops, one for the vertical and one for the horizontal."
- Student A implements two nested for loops using their own unique code.
- Student A can use the for loops to fix similar problems, and they can explain why each piece of code is needed, along with how it works to solve the problem.
- Student A submits the code
- Unacceptable consultation example:
- Student A needs to make a grid for a board game program.
- Student A asks Student B for help.
- Student B sends the code they used to make the board game grid for their solution.
- Student A copies Student B's code into their own solution, changing it a little.
-
Student A submits the code
-
Unacceptable plagiarism example:
- Student A has a problem with the code
- Student A asks Student B for help
- Student B provides Student A with the code
- Student A submits the code
Teamwork:
- As long as you are a part of a group, you are responsible for everything in the group project, whether you participated in every component or not.
- A group may only submit work authored by group members or appropriately cited and credited code that does not violate the author's license.
- Use of
git rebase, force push, or any other operations that change or remove authorship, commit, or timing metadata are the same as lying that you wrote code that someone else actually wrote or lying about when you added code. These operations are strictly forbidden and will result in a score zero for the same as not participating in your group. They may be also reported to CNAS as under the Student Academic Integrity Policy if you are suspected of using these operations to gain an academic advantage.- You are responsible for setting
git config pull.rebase falseon all repositories for this course.
- You are responsible for setting
Intellectual Violence:
In this course, Intellectual Violence is considered bullying. Intellectual violence is when one teammate uses their skill, knowledge, or experience, to intimidate or control the other teammate(s) rather than sharing and helping them learn. Examples of Intellectual Violence:
- Using complex terminology or concepts to make others feel inferior.
- Dismissing or ridiculing colleagues’ ideas or contributions.
- Withholding information to maintain a power imbalance.
- Creating an environment where only certain knowledge or skills are valued.
- Rejecting contributions without constructive feedback.
- Imposing overly strict code standards.
- Ignoring or delaying code reviews, pull requests, or commits.
- Favouring contributions from certain team members.
- Using harsh or condescending language in comments, code reviews, pull requests, issues, commit messages, etc.
- Making contributors feel unwelcome.
Instances of Intellectual Violence may result in reduced marks and/or be referred to the SSE under the Student Conduct Policy.
Exam Conduct:
Please refer to the Examinations section of the Academic Calendar for more details on Conduct of Exams.
- Do not start the test or open the test booklet until instructed.
- If you are not on the class list, you may not write this examination.
- If you do not present your Student ID, your examination may not be graded.
- Your student photo I.D. is required at exams to verify your identity.
- Final: If you enter more than 30 minutes after the start of the examination may not write this examination. You must remain seated until 30 minutes has passed.
- Final: Students must arrive at the specified time to take the exam. Once the exam has started, students must remain in the physical in-person or remote environment for at least 30 minutes. Students who arrive more than 30 minutes late for an in-person exam will not be permitted to take the exam. Students who arrive more than 30 minutes late for an online exam may have their exam attempt removed or disqualified by the instructor. In both cases students may apply for a deferred examination.
- Midterm: The midterm exam session will take 50 minutes. 10 minutes setup, 30 minutes midterm exam writing, 10 minutes of collection. Students who arrive more than 10 minutes late for an in-person midterm will not be permitted to take the midterm. Students may apply for a excused absence.
- If you are sick, please do not attend the examination. Instead, fill out the absence for for the midterm or apply for a deferred final exam with your Faculty (e.g. Faculty of Science) for the final.
- Absolutely no electronic devices are allowed. No exceptions.This includes calculators, cell phones, smartwatches, and headphones. You may not have them near you, in your pocket, or take them to the washroom. If you brought electronics with you, you must leave them in your bag at the front of the classroom. If you are distracted by the sound of other students, bring ear plugs, not ear buds.
- You must leave your bag at the front of the classroom. You may be able to see it, but it must be out of reach. If you brought electronics with you, you must turn them off (not just silent but all the way off) and leave them in your bag at the front of the classroom.
- No smart glasses. We will be checking for smart glasses. If you need prescription glasses (like me), you may only bring glasses with no electronics. We may ask you to take off your glasses momentarily to inspect them.
- We may be using radio detectors to find electronics.
- You may write on the exam if you need scratch paper.
- No notes are allowed.
- Place your student ID number on every page. If your exam pages come apart we will need this!
Accommodations for Students:
In accordance with the University of Alberta’s Accommodation Policy and Discrimination and Harassment Policy, accommodation support is available to eligible students who encounter limitations or restrictions to their ability to perform the daily activities necessary to pursue studies at a post-secondary level due to medical conditions and/or non-medical protected grounds. Accommodations are coordinated through the Academic Success Centre, and students can learn more about eligibility on the Register for Accommodations website.
It is recommended that students register AS SOON AS POSSIBLE in order to ensure sufficient time to complete accommodation registration and coordination. Students are advised to review and adhere to published deadlines for accommodation approval and for specific accommodation requests (e.g., exam registration submission deadlines). Students who request accommodations less than a month in advance of the academic term for which they require accommodations may experience unavoidable delays or consequences in their academic programs, and may need to consider alternative academic schedules.
Recording and/or Distribution of Course Materials:
Audio or video recording, digital or otherwise, of lectures, labs, seminars or any other teaching environment by students is allowed only with the prior written consent of the instructor or as a part of an approved accommodation plan. Student or instructor content, digital or otherwise, created and/or used within the context of the course is to be used solely for personal study, and is not to be used or distributed for any other purpose without prior written consent from the content authors.
STUDENT SUPPORTS
Faculty of Science Student Services:
The Faculty of Science Student Services office is located on the main floor of the Centennial Centre for Interdisciplinary Sciences (CCIS). This office can assist with the planning of Your Academics, and provide information related to Student Life & Engagement, Internship and Careers, and Study Abroad opportunities. Please visit Advising for more information about what Faculty Academic Advisors can assist you with.
Student Services Directory:
The Student Services Directory helps U of A students find and access support quickly and effectively, bringing together a catalogue of student services from across the university in one convenient location.
Academic Success Centre:
The Academic Success Centre provides professional academic support to help students strengthen their academic skills and achieve their academic goals. Individual advising, appointments, and group workshops are available year round in the areas of Accessibility, Communication, Learning, and Writing Resources. Modest fees may apply for some services.
Writing and Learning Centre:
Get support when and where you need it. The centre, located in 2-10 Cameron Library, offers both in-person and virtual supports for undergraduate and graduate students. Strengthen your academic skills by attending a workshop or booking a one-on-one appointment. Their website provides more information about drop-in appointments, writing groups, Canvas modules and special programming to find what works best for you. Workshops and appointments are free for current U of A students.
Feeling Stressed, Anxious, or Upset?
It's normal for us to have different mental health experiences throughout the year. Know that there are people who want to help. You can reach out to your friends and access a variety of supports available on and off campus at the Need Help Now webpage or by calling the 24-hour Distress Line: 780-482-4357 (HELP).
Learning and Working Environment:
The Faculty of Science is committed to ensuring that all students, faculty and staff are able to work and study in an environment that is safe and free from discrimination, harassment, and violence of any kind. It does not tolerate behaviour that undermines that environment. This includes virtual environments and platforms.
If you are experiencing harassment, discrimination, fraud, theft or any other issue and would like to get confidential advice, please contact any of these campus services:
- Office of Safe Disclosure & Human Rights: A safe, neutral and confidential space to disclose concerns about how the University of Alberta policies, procedures or ethical standards are being applied. They provide strategic advice and referral on matters such as discrimination, harassment, duty to accommodate and wrong-doings. Disclosures can be made in person or online using the Online Reporting Tool.
- University of Alberta Protective Services: Peace officers dedicated to ensuring the safety and security of U of A campuses and community. Staff or students can contact UAPS to make a report if they feel unsafe, threatened, or targeted on campus or by another member of the university community.
- Office of the Student Ombuds: A confidential and free service that strives to ensure that university processes related to students operate as fairly as possible. They offer information, advice, and support to students, faculty, and staff as they deal with academic, discipline, interpersonal, and financial issues related to student programs.
- Office of Student Success and Experience: They can assist students in navigating services to ensure they receive appropriate and timely resources. For students who are unsure of the support they may need, are concerned about how to access services on campus, or feel like they may need interim support while they wait to access a service, this office is there to help.
Course Outlines:
Policy about course outlines can be found in the Academic Regulations, Evaluation Procedures and Grading section of the University Calendar.
Disclaimer:
Any typographical errors in this syllabus are subject to change and will be announced in class and/or posted on the course website. The date of final examinations is set by the Registrar and takes precedence over the final examination date reported in the syllabus.
Copyright:
- Dr. Abram Hindle and Dr. Hazel Victoria Campbell, Department of Computing Science, Faculty of Science, University of Alberta (2026).
- Dr. Zhou Yang and Mr. Henry Tang, Department of Computing Science, Faculty of Science, University of Alberta (2026).
- Dr. Ken Wong, Department of Computing Science, Faculty of Science, University of Alberta (2023).