Course Outline Winter 2024
University of Alberta
CMPUT 404 - Web Applications and Architecture
LEC-A1
Fall 2024
- eClass Page: https://eclass.srv.ualberta.ca/course/view.php?id=95227
- Home Page: https://uofa-cmput404.github.io/
- Old outlines
- Lecture
- Labs
- Contact Information
- Course Content
- Learning Resources
- Grade Evaluation
- Policies for Late and Missed Work
- Required Technology
- Remote Delivery Considerations
- Student Responsibilities
- Academic Integrity and Student Conduct
- Contract Cheating and Misuse of University Academic Materials or Other Assets
- Contract Cheating: CS Courses
- Academic Integrity Issues Related to Minor Formative Assessments
- Appropriate Collaboration
- Citation
- Solo Effort: Participation Exercises, Quizzes, Exams
- Confidential: Exams
- Consultation: Assignments, Labs
- Teamwork: Group Projects
- Intellectual Violence
- Exam Conduct
- Lecture Conduct
- Students Eligible for Accessibility-Related Accommodations
- Recording and/or Distribution of Course Materials
- On-Campus Computer Labs
- Recording and/or Distribution of Course Materials
- Learning and Working Environment
- Feeling Stressed, Anxious, or Upset?
- Student Self-Care Guide
- Academic Integrity and Student Conduct
- Land Acknowledgement
- Administrative
Lecture
- Some lectures will also be available over Zoom.
- You must attend live.
- You will be required to attend in person for some lectures, all labs, and all exams.
- You must be in Edmonton to take this course.
- A1
- Monday Wednesday Friday, 1:00PM to 1:50PM
- HC L1-L1
Labs
- D01
- Monday, 5:00PM to 7:50PM
- CSC B-10
- D02
- Wednesday, 5:00PM to 7:50PM
- CSC B-02
- Lab Information
Contact Information
Please see the getting help section first.
Lecturer
- Office: ATH 4-05
- Office hours (ATH 4-05): Monday, Wednesday, Friday 2:10-2:50PM (in-person only)
- Office hours (Zoom): Tuesday, Thursday 2:10-2:50PM (zoom only)
- Email: Students must use the contact form. It may take several days to respond due the large number of students.
Teaching Assistants
TA office hours will be added on eClass.
Course Content
Course Description
This course introduces modern web architecture, ranging from user-facing applications to machine-facing web-services, through project-based learning. Topics include: multi-platform Web application frameworks utilizing SQL and NoSQL storage; HTTP/web architecture and protocols; integration with Web APIs; web data exchange and serialization.
Prerequisites
CMPUT 301, CMPUT 291
We strongly recommend taking CMPUT 391 at the same time.
Objectives and Learning Outcomes
Introduction to modern web architecture, from user-facing applications to machine-facing web-services. The course objective is to gain an overview of web-based technologies, with a software development focus on web services and web applications.
Course Topics
- The World-Wide Web: the tools and services.
- HTML
- CSS
- HTTP
- TCP/IP
- CGI
- Web Frameworks
- Web Applications
- Web Services
- JavaScript
- XML
- Web Mining (scraping)
- REST
- Security mechanisms, authentication, encryption, firewall, Secure Socket Links (SSL), Virtual Private Networks, etc.
- AJAX
- WebSockets
Learning Resources
Course Schedule
The weekly topic schedule is likely to be updated during the term; please see the live version.
Required Textbook and/or Other Major Course Materials
There is no required textbook for this course. Each module will cite online resources as required readings. You will find the links to each topic on the course eClass page.
Recommended or Optional Learning Resources
Additional resources may be provided by links from this site or the course eClass page. See the resources page.
Course Fees
Students will be required to purchase online hosting through Heroku in order to complete the coursework and course project. The expected fees are less than $30 USD, or approximately $40 CAD. If you are unable to pay these fees, you must contact your TA and instructor immediately. Failure to pay for Heroku in time to complete coursework will result in a mark of zero on the affected coursework.
Discounts may be available through the GitHub student pack, though we can't guarantee it. Students are responsible for paying the fees either way.
On-Line Homework Disclaimer
Online homework submission 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 will create your own ID or 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 any concerns about this, please contact the instructor of the course.
- GitHub Classroom (Microsoft) - You can create your own ID as long as it is not offensive. GitHub will be storing your labs, assignments and projects. GitHub will not have access to your marks, feedback, or grades.
- Heroku - Heroku will be storing your labs, assignments, projects. Heroku will not have access to your marks, feedback, or grades. See "Course Fees" above.
-
Mentimeter - You will be assigned a random, non-identifying ID. The system does not require creating an account or payment. Do not enter your real name.
-
Registration in the systems above and any monetary transactions are of your own accord and not the responsibility of the University.
- Students should be mindful of protecting their personal information and should be aware of how their personal information might be used and/or shared.
- Students MUST NOT use their @ualberta email address or CCID to register into the systems above, and instead should use a non-identifying email address or account.
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 apply for some services.
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 & Careers, and Study Abroad opportunities. Please visit Advising for more information about what Faculty Academic Advisors in the Student Services Office can assist you with.
Grade Evaluation
What | Weight | Collaboration | Due Date |
---|---|---|---|
Participation | 10% | Solo Effort | Most Lectures |
Lab Assignments(5 or 6) | 30% | Consultation | Mondays 4PM |
Project Part 0 | 1% | Teamwork | Tuesday, September 17, 4PM |
Project Part 1 | 5% | Teamwork | Monday, October 21, 4PM |
Project Part 2 | 5% | Teamwork | Monday, November 4, 4PM |
Project Part 3 | 5% | Teamwork | Monday, November 18, 4PM |
Project Part 4 | 5% | Teamwork | Monday, November 25, 4PM |
Project Part 5 | 9% | Teamwork | Monday, December 2, 4PM |
Final Exam | 30% | Solo Effort | See BearTracks |
Extra Credit | +1% | Solo Effort | Friday, November 29, 4PM |
- Please see the live schedule for exact due dates.
- Students must verify the exam date on BearTracks when the Final Exam Schedule is posted.
- Grades are unofficial until approved by the Department and/or Faculty offering the course.
Letter Grades
Letter | Descriptor | CS Department Interpretation |
---|---|---|
A | Excellent | Consistently original thinking that extends the material, demonstrated depth and breadth in the material, ability to integrate material with other subjects, ability to analyze and synthesize material at various levels of abstraction. |
B | Good | Like an A, but not consistent over time, or weak in a specific area. |
C | Satisfactory | Understand the core material but not its subtleties, can apply it to simple situations on own and to more complex situations with hints, evidence that the material has changed the way of thinking. |
D+ | Poor | Understands some of the core material but not its subtleties, can apply it to simple situations but often needs assistance, evidence that the material has had some change on the way of thinking. |
D | Minimal Pass | Shows some understanding of parts of the material, cannot apply it without some direction, little evidence that the material has changed the way of thinking. |
F | Failure | Little evidence of understanding of even the surface issues, poor analysis and synthesis, inability to apply the material. |
% | UA Letter | UA Descriptor | UA GPA |
---|---|---|---|
≥ 96.25% | A+ | Excellent | 4.0 |
≥ 91.25% | A | Excellent | 4.0 |
≥ 87.5% | A- | Excellent | 3.7 |
≥ 83.75% | B+ | Good | 3.3 |
≥ 78.75% | B | Good | 3.0 |
≥ 75% | B- | Good | 2.7 |
≥ 71.25% | C+ | Satisfactory | 2.3 |
≥ 66.25% | C | Satisfactory | 2.0 |
≥ 62.5% | C- | Satisfactory | 1.7 |
≥ 58.75% | D+ | Poor | 1.3 |
≥ 50% | D | Minimal Pass | 1.0 |
≥ 0% | F | Fail | 0.0 |
Statement of Expectations for AI Use
You MUST not submit work by LLMs as your own, that is plagiarism. This also applies to other "AI" and Generative Models: ChatGPT, Lex, Page, DALL-E2, Google BARD/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 from Microsoft, Copilot, "How do I write a merge sort in JavaScript?", 2023-08-31
function mergeSort(array) {
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, Bard/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/Bing/Bard 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.
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 10 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.
Re-examination
This course is not eligible for re-examination.
Past or Representative Evaluative Material
Will be provided. Some of it includes answer keys, most exam material does not include an answer key.
As of this writing, we are currently in the process of moving this material off of eClass to make it available. We plan to have it available by Week 10 on the course website. However, we may make it available on eClass instead, depending on how well the move is going.
Labs
Labs and Project Parts are due at 16:00 on Monday before the Walkthrough. In the labs, the TAs will explain the submission process (typically online). Late submissions will not be accepted for any reason.
Although you may program in python at home or outside the lab, your implementations will be scored based on their behaviour on a standard Ubuntu Linux machine, such as the CS department lab computers, or an Ubuntu VM. Firefox will be used for scoring frontend (HTML/CSS/JS).
Participation
Most participation marks will be in class during class. You can participate over Zoom or in-person. To participate in-person please bring a working cellphone, tablet, or laptop. There may be other participation marks from time to time. See Missed Term Work: Participation below.
Policies for Late and Missed Work
Late Policy
Absolutely no late work will be accepted. No extensions will be granted to individual students for any reason.
Non-medical Protected Grounds
Missed Term Work or Final Exam Due to Non-medical Protected Grounds (e.g., religious beliefs):
When a term assessment or final exam presents a conflict based on nonmedical protected grounds, students must apply to the Academic Success Centre for accommodations via their Register for Accommodations website. Students can review their eligibility and choose the application 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 apply AS SOON AS POSSIBLE to ensure the timely application of the accommodation. Students who apply later in the term may experience unavoidable delays in the processing of the application, which can affect the accommodation.
Missed Term Work: Assignments, Labs, Quizzes, Project Parts, Midterm Exams
A student who cannot complete a course component (Assignments, Labs, Quizzes, Project parts, Midterm Exams) 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. If an excused absence is granted, then weight will be transferred to other course components. 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 Code of Student Behaviour. 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.
Missed Term Work: Participation
Participation exercises will be available 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.
Submitting a participation exercise or Mentimeter without attending the lecture will be considered a breach of the Student Academic Integrity Policy.
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 Faculty office within two working days of the missed examination 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.
Required Technology
Please contact the instructor by the add/drop deadline 2024-09-16 if you do not have access to the minimum technology recommended. The instructor will make arrangements for accommodating students who contact the instructor before this date. Failure to do so may result in a zero in any assessment that depends on the minimum technology.
Labs Assignments and Project
This course requires a Mac, Windows, or Linux laptop computer capable of:
- Running an Ubuntu Linux VM or container.
- Warning about RAM: 8GiB RAM may not fit Windows 10/11 or macOS plus a VM.
- Windows: Windows 10 version 2004 or higher running Ubuntu in WSL2. 16GiB RAM.
- Intel Mac: VirtualBox running an Ubuntu VM. 16GiB RAM. CPU must support virtualisation acceleration.
- ARM Mac: UTM running an Ubuntu VM. 16GiB RAM.
- Linux: an Ubuntu Docker Container.
- If you can not meet these requirements, you may need to use the Ubuntu Linux computers in the CSC labs to test your work.
- Running git and other software development tools, such as Visual Studio Code.
- Working for the 3-hour duration of LAB sections.
Lecture Participation
A working smartphone, tablet, or laptop computer with an up-to-date web browser and working Wi-Fi.
Remote Delivery Considerations
Hybrid Synchronous Delivery
This course requires live attendance in-person. All labs, all exams, all presentations, and some lectures require in-person attendance.
- Some Lectures will be available in hybrid synchronous format. All lectures will be given in the lecture room on campus. At the same time, some lecture will also be streamed via Zoom and a recording of the lecture content will be made.
- Zoom access is provided as a convenience only.
- Zoom access is provided on a best-effort basis.
- Students are expected to attend during the lecture either on Zoom or in-person.
- Zoom access may be cancelled at any time.
- You must be available to attend lectures in person.
- You must be in Edmonton.
- You must not have a scheduling conflict with this course.
- Scheduling conflicts and travel will not be accommodated.
- Labs must be attended in-person only.
- Exams must be taken in-person only. They will not be online. You must bring your Student ID (One Card).
- Presentations and Guest Lectures will be given in-person only.
Technology Requirements
Technology for Remote Learning: 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 assessment and examinations. Please refer to Technology for Remote Learning - For Students for details. If you encounter difficulty meeting the technology recommendations, please email the Dean of Students Office (dosdean@ualberta.ca) directly to explore options and support.
Please contact the instructor by the add/drop deadline 2024-09-16 if you do not have access to the minimum technology recommended. The instructor will make arrangements for accommodating students who contact the instructor before this date. Failure to do so may result in a zero in any assessment that depends on the minimum technology.
Recordings of Synchronous Activities
Recordings are not a substitute for attending live.
Recordings are provided for review and for students with an excused absence only. You must attend this class live, while the lectures are happening unless you have an acceptable excuse (incapacitating illness, severe domestic affliction). 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=44&navoid=13550#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."
- Please note that class times for this course will be recorded. Recordings of this course will be used for the purposes of allowing review and providing lectures to students with an excused absence. Recordings will be disclosed to other students enrolled in this section of the class, other sections of the class, Teaching Assistants, other instructors, and University of Alberta officials.
- Students have the right to not participate in the recording and are advised to turn off their cameras and audio prior to recording; they can still participate through 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 final exam day, and accessible by zoom cloud storage. Please direct any questions about this collection to the instructor of this course.
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.
Student Resources for Remote Learning
Online learning may be new to you. Check out tips for success and find out more about online learning on the Campus Life page, and specifically on the Academic Skills Online & Remote Delivery Resources page.
Student Responsibilities
Academic Integrity and Student Conduct
The University of Alberta is committed to the highest standards of academic integrity and honesty, as well as maintaining a learning environment that fosters the safety, security, and the inherent dignity of each member of the community, ensuring students conduct themselves accordingly. Students are expected to be familiar with the standards of academic honesty and appropriate student conduct, 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 and the Student Conduct Policy, and avoid any behaviour that could potentially result in suspicions of academic misconduct (e.g., cheating, plagiarism, misrepresentation of facts, participation in an offence) and non-academic misconduct (e.g., discrimination, harassment, physical assault). Academic and non-academic misconduct are taken very seriously and can result in suspension or expulsion from the University.
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 Dean of Students. The College, the Faculty, and the 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 policy websites for details on inappropriate behaviours and possible sanctions.
The College of Natural and Applied Sciences (CNAS) has created an Academic Integrity for CNAS Students eClass site. Students can self enrol and review the various resources provided, including the importance of academic integrity, examples of academic misconduct & possible sanctions, and the academic misconduct & appeal process. They can also complete assessments to test their knowledge and earn a completion certificate.
"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 then 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. eClass) and allowing someone else to complete your assignment or exam remotely.
- Using an artificial intelligence bot or text generator tool to help with assignments is allowed in this course but may not be allowed in other courses. (It is not allowed on exams.)
- Using an online grammar checker is allowed in this course but may not be allowed in other courses.
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 or public servers 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: CS Courses
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.
Academic Integrity Issues Related to Minor Formative Assessments
In order to reduce the burden of discipline cases on the Faculty of Science Decision Makers, and to provide feedback to students in a more timely fashion, the following Faculty of Science policy may be followed:
The instructor may assign a full or partial deduction along with a standardized letter notifying the student of a first offence on a minor assessment (e.g. assignment or lab) worth no more than 5% where a substantial portion of the work is found to be not unique.
Subsequent offences on minor assessments, and ALL suspected academic misconduct on formative assessments (e.g. quizzes, exams, assessments worth more than 5%), will be reported to the Faculty of Science as a possible breach of the Student Academic Integrity Policy following the usual process.
Appropriate Collaboration
Appropriate collaboration follows the CS course policy.
Students need to be able to recognize when they’ve crossed the line between appropriate collaboration and inappropriate collaboration. If students are unsure, they need to ask the instructors to clarify what’s allowed and what’s not allowed.
Students are not permitted to copy solutions on homework assignments. 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 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 high 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.
An additional link that may be useful is "How to Avoid Inappropriate Collaboration": https://www.ualberta.ca/campus-life/academic-success/academic-integrity/collaboration.html
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.
Citation
If you include code or ideas from someone who isn't you (including from a Generative AI or LLM) you must cite it. Here is an example of an appropriate citation:
# The following function from Django Software Foundation and contributors, "Writing your first Django app, part 2", 2024-01-05
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
Example:
# From https://stackoverflow.com/a/952952 by Boris Verkhovskiy, Downloaded 2023-05-04
flat_list = [item for sublist in l for item in sublist]
Solo Effort: Participation Exercises, Quizzes, Exams
Participation exercises fall under the departments Solo Effort model unless announced by the instructor. 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 participation exercise, quiz, or exam without attending the relevant lecture, lab, seminar, or exam.
- Students may not share a participation exercise, 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: Exams
Midterm 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: Assignments, Labs
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: Group Projects
- 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.
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, ...
- Making contributors feel unwelcome.
Instances of Intellectual Violence may result in reduced marks and/or be referred to the Dean of Students under the Student Conduct Policy.
Exam Conduct
Students must conduct themselves according to the University of Alberta Calendar Regulations for Exam Conduct.
- Do not start the test or open the test booklet until instructed.
- If you are not on the class list, you may not write the examination.
- If you do not present your Student ID, you may not write the examination.
- Your student photo I.D. is required at exams to verify your identity.
- 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.
- 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.
- If you are sick, please do not attend the examination. Instead, apply for a deferred examination.
- No electronic devices are allowed.
- This includes calculators, cell phones, smartwatches, and headphones.
- Cell phones must be turned off.
- 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.
- If noise distracts you, bring ear plugs, not ear buds.
- If you do not stop writing the exam when the instructor or proctor announces the end of the exam, your exam will not be graded, and you will receive a mark of zero.
- Do not write down letters for multiple-choice exams.
- 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.
- You are not allowed to keep any part of the exam, scratch paper, or your notes.
- You must sign the class list and the exam.
Lecture Conduct
- Cell phone audio/ringers are to be turned off during lectures, labs and seminars.
- Cell phone and computer use during the lecture is only permitted for participation, note-taking, and other activities directly related to the lecture.
Students Eligible for Accessibility-Related Accommodations
In accordance with the University of Alberta’s Discrimination, Harassment, and Duty to Accommodate 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 nonmedical 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 apply as early 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 author(s).
On-Campus Computer Labs
See the Undergraduate Conditions of Use and Lab Policies for information about undergraduate labs.
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 author(s).
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 the Dean of Students: 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 you wait to access a service, the Dean of Students office is here to help.
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).
Student Self-Care Guide
This Self-Care Guide, originally designed by the Faculty of Native Studies, has broader application for use during students’ learning. It provides some ideas and strategies to consider that can help navigate emotionally challenging or triggering material.
Land Acknowledgement
The University of Alberta respectfully acknowledges that we are situated on Treaty 6 territory, traditional lands of First Nations and Métis people.
To learn more about the significance of this land acknowledgement, please read this useful article and associated links to more information.
Administrative
Policy about Course Outlines
Policy about course outlines can be found in Course Requirements, Evaluations Procedures and Grading of the University Calendar.
Disclaimer
- Any typographical errors in this Course Outline are subject to change and will be announced in class.
- The date of the final examination is set by the Registrar and takes precedence over the final examination date reported in this syllabus.
Update History
- 2024-09-02: Initial version.
- 2024-09-02: Clarify formatting of contract cheating: cs courses section.
- 2024-09-08: Fix Hybrid Synchronous Delivery section: remove on request only.
- 2024-09-16: Clarify 5 or 6 lab assignments.
- 2024-10-10: Fix some broken links that had extra
\
characters in them for some reason.
Copyright
Dr. Hazel Campbell, Department of Computing Science, Faculty of Science, University of Alberta (2023, 2024). Dr. Abram Hindle, Department of Computing Science, Faculty of Science, University of Alberta (2023).