Spring 2023 Syllabus

  1. Course Topics
  2. Textbook
  3. Prerequisites
  4. Student Expectations
  5. Grading
  6. Code of Conduct
  7. List of Changes

Course Topics

Catalog Description

Content Delivery Mode: Paced, Online, Asynchronous

3 Credit Hours

An introduction to the thought processes of computer science and the art of programming. Topics include learning to think algorithmically, and solve problems efficiently, using a high-level programming language and a variety of software tools and technologies. Skills learned include designing programs to solve problems, developing the algorithms needed, using abstractions, data structures and encapsulation, writing code to implement algorithms, testing the code for errors, and documenting the process and the outcome. This course welcomes students with limited or no programming experience.

Items or topics not covered in this syllabus are per UT policy or instructor’s discretion.


List of Topics

  1. Your Computer
    • Loading Python 3 interpreter
    • Navigating your files
    • Using an integrated development environment (IDE)
    • Using Spyder IDE, Atom, VSCode, or Jupyter
  2. Python 3
    • Variables
    • Sets, lists and dictionaries
    • Conditions
    • Loops
    • Functions
    • Reading and writing files
    • Exceptions
    • Classes
  3. Programming
    • Using libraries (imports)
    • Solving problems using Python
    • Maintaining code
    • Commenting your code
    • Making your code readable

Learning Objectives

At the end of this course, students should be able to understand and/or perform the following.

Intro to Python

  1. Be able to create a new Python source file (xxx.py)
  2. Understand what if __name__ == “__main__”: is used for.
  3. Understand and be able to follow the flow of an already written Python file.
  4. Be able to import modules, such as the math module and use it.

Variables and Types

  1. Be able to create a variable and give it a suitable name.
  2. Be able to determine the type of a variable using type().
  3. Be able to input data from the user using input().
  4. Be able to output data to the user using print().
  5. Understand what an integer, float, string, and bool variables are.
  6. Be able to create and use a list.
  7. Be able to add or remove elements of a list.
  8. Be able to create and use a dictionary.
  9. Be able to add or remove elements of a dictionary.
  10. Be able to create and use a set.
  11. Understand the unique properties of a set versus a list.

Operators

  1. Be able to add (+), subtract (-), multiply (*), divide (/), and calculate exponents (**).
  2. Understand the difference between division (/) and floored division (//).
  3. Understand the order of operations applied to Python operators.

Strings

  1. Be able to concatenate strings using +.
  2. Be able to split a string based on a delimiter.
  3. Be able to join a list of elements into a string.
  4. Be able to find a substring within a string both forwards and in reverse.
  5. Be able to replace a substring within a string.
  6. Understand that strings are immutable and what that means.
  7. Understand that input() always returns a string.
  8. Be able to convert a string into an integer or float.

Conditionals

  1. Understand what if, elif, and else mean.
  2. Understand what mutual exclusivity means and how to use it.
  3. Be able to write a conditional statement.
  4. Be able to use the Boolean operators ==, !=, <, <=, >, >=.
  5. Be able to invert a Boolean operator using not.
  6. Be able to combine Boolean operators by using and or or.

Loops

  1. Be able to write a while loop using a given condition.
  2. Be able to write a while loop using an infinite condition.
  3. Understand when to use a while loop over a for loop (or vice-versa).
  4. Be able to use the range() function and its three forms.
  5. Understand what break and continue do and what they are used for.

Designing Algorithms

  1. Understand the steps to identify the elements of a problem.
  2. Be able to write the solution to a problem given a full template.
  3. Be able to write the solution to a problem given a partial template.
  4. Be able to write the solution to a problem given NO template.
  5. Be able to write pseudo-code and outline how the solution to a problem would be written.

Functions

  1. Be able to define and name a function.
  2. Be able to use positional arguments.
  3. Be able to use default parameter values.
  4. Be able to use keyword arguments.
  5. Be able to use named arguments.
  6. Be able to input data into a function using arguments.
  7. Be able to return data out of a function using “return”.
  8. Understand when parameters are copied versus referenced.

Classes

  1. Be able to create a class blueprint and name it.
  2. Be able to create the __init__ method and know what it does.
  3. Understand what the self variable means and what it is used for.
  4. Be able to create named methods in a class.
  5. Be able to create and use member fields in a class.
  6. Be able to create a class and assign it to a variable.
  7. Understand how the __init__ function relates to creating a class instance.

Files

  1. Understand what a file is.
  2. Be able to open a file for reading and/or writing.
  3. Be able to read lines from a file.
  4. Be able to write lines to a file.
  5. Be able to handle exceptions, such as opening a non-existent file.

Textbook

Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming. ISBN: 978-1593279288.

Some assignments and homework questions will come directly from this book, so it is necessary to have either a physical or electronic copy.


Prerequisites

Students are assumed to have satisfactory knowledge of the following topics prior to taking this course.

  1. Be able to use Canvas.
  2. Be able to type.
  3. Have a connection to the Internet to be able to view lectures, lecture videos, and submit assignments.

Student Expectations

  1. Students must complete weekly reading by reviewing the lecture slides, lecture notes, and/or lecture videos.
  2. Students must complete weekly assignments.
  3. Students must keep up with due dates listed on Canvas under Syllabus.
  4. Students must use the discussion system (e.g., Teams, Piazza, and so forth) to ask questions. Do not email the professor or TAs directly. Doing so could slow responses. We use a discussion system so that everyone that can help you can see your messages and the responses. This ensures you get the most accurate and timely information.
  5. Students will need a Mac or Windows PC capable of loading the appropriate software. Students may (but are not required to) purchase laptop computers at the UT Volshop for a discount price at: https://www.utvolshop.com/shop-voltech/pcs?page=1.

Grading

  1. Some assignments may be submitted late for a 10% per day penalty.
    • It is the students’ responsibility to check the due dates and availability dates for all assignments.
  2. Grades are not rounded or curved.

Grading Appeals

  • Students may appeal an assignment grade provided:
    • The appeal is made within 7 days of the grade being revealed.
    • The student uses the message system (Piazza) on Canvas and writes to all Instructors.
    • Students must document and argue their grievances and why the grade should be changed.

Letter Grades

LetterScoreLetterScore
A92C72
A-88C-68
B+85D+65
B82D62
B-78D-58
C+75F0

Tips To Succeed

  1. Try different forms of instruction. If you can’t learn from the textbook, try the lecture notes, or lecture. There are several forms that present the material. It may seem repetitive to you, but it is to offer you different avenues to learning the material.
  2. Review and update your lecture notes. Your notes should be an evolving process. You need to write them over in your own words after you understand them. Just like learning anything else, repetition is important to the learning process!
  3. Get help early. The instructors and TAs will hold regular office hours. The time goes by much easier when we have students to talk to. Even if you don’t have specific questions, come over to office hours and introduce yourself. You will see where we’re coming from and we can see where you’re coming from.
  4. Start early. For most (I’d dare say all) cases, if you’re late submitting an assignment, it will either suffer a penalty or not be accepted at all. This is the item where most students who struggle can get ahead. You reduce access to the TAs and instructors when you wait until the last minute to start your assignments.
  5. Do NOT cheat. No matter how many office hour sessions, discussion boards, and so forth that we make, we still get students who think they need to go to stackoverflow or Chegg and download “their” solution. Nothing will kill your grade faster than cheating. We have sophisticated tools that help us find and accuse cheating. Cheating will result in your permanent student record being flagged!
  6. Try outside help. The Student Success Center has tutoring and supplemental instruction. Their schedule changes every semester (and even sometimes during a semester). Here at EECS, the Systers group might be able to offer you help.
  7. Know what is required. I’ve seen several students earn a terrible score due to either not reading the assignment or not asking for clarification if a question arises. This essentially means the student is doing a different assignment. You will not be graded on what assignment you do, but instead, the assignment that is given to you.
    • In many cases, this course provides a narrative, hints/tips, and a rubric. Students must read and understand all different forms. If anything seemingly contradicts, a student should ask for clarification.

Code of Conduct

Cheating and Plagiarism

Students who are accused of cheating or plagiarism on an exam or any single assignment worth 10 points or more towards their final grade will receive an F for the course. Otherwise, students will receive a 0 for the assignment and a 10 point drop to his or her final grade. Repeated violations will result in an F for the course.

All cheating and plagiarism cases will be investigated by the Office of Student Conduct and Community Standards (SCCS): https://studentconduct.utk.edu. Any communications must be in writing for both informal and formal portions of the standards review process. Students may be submitted to SCCS before receiving an informal response if the evidence is overwhelming or if the semester is close to ending, such as with a final exam.

The SCCS policy is to not assign a final grade until a determination is made. If a student is alleged to have cheated and final grades are assigned before the matter has been resolved, a student will receive an NR (not reported) grade. This precludes students from taking any of the follow-on courses or from retaking this course.


Examples of Cheating

  • Plagiarism and cheating may result from a student copying an assignment or sections of an assignment from another student, from an online source, or from the student’s own previous assignment (from a previous attempt at the course). Students may not use a tool to produce their lab submission, including but not limited to external sources, a disassembler, or a compiler.
  • Students are not permitted to try to disable the output matching system on Zybooks by manually typing the output rather than actually making the calculation.
  • SECTION 11.4 (STUDENT CODE OF CONDUCT). Plagiarism is using the intellectual property or product of someone else without giving proper credit. The undocumented use of someone else’s words or ideas in any medium of communication (unless such information is recognized as common knowledge) is a serious offense, subject to disciplinary action that may include failure in a course and/or dismissal from the University. Specific examples of plagiarism include, but are not limited to:
    1. Using without proper documentation (quotation marks and citation) written or spoken words, phrases, or sentences from any source.
    2. Summarizing without proper documentation (usually a citation) ideas from another source (unless such information is recognized as common knowledge).
    3. Borrowing facts, statistics, graphs, pictorial representations, or phrases without acknowledging the source (unless such information is recognized as common knowledge).
    4. Collaborating on a graded assignment without the instructor’s approval.
    5. Collaborating on a graded assignment without citing all collaborators.
    6. Submitting work, either in whole or partially created by a professional service or used without attribution (e.g., paper, speech, bibliography, or photograph).
  • SECTION 11.5 (STUDENT CODE OF CONDUCT). Specific examples of other types of academic dishonesty include, but are not limited to:
    1. Providing or receiving unauthorized information during an examination or academic assignment, or the possession and/or use of unauthorized materials during an examination or academic assignment.
    2. Providing or receiving unauthorized assistance in connection with laboratory work, field work, scholarship, or another academic assignment.
    3. Falsifying, fabricating, or misrepresenting data, laboratory results, research results, citations, or other information in connection with an academic assignment.
    4. Serving as, or enlisting the assistance of, a substitute for a student in the taking of an examination or the performance of an academic assignment.
    5. Altering grades, answers, or marks in an effort to change the earned grade or credit.
    6. Submitting without authorization the same assignment for credit in more than one course, including if that student is repeating the same course.
    7. Forging the signature of another or allowing forgery by another on any class or University-related document such as a class roll or drop/add sheet.
    8. Gaining an objectively unfair academic advantage by failing to observe the expressed procedures or instructions relating to an exam or academic assignment.
    9. Engaging in an activity that unfairly places another student at a disadvantage, such as taking, hiding, or altering resource material, or manipulating a grading system

Tips to Avoid Cheating

  • Students are encouraged to work together provided the students cannot see each other’s code.
  • Students should work where their laptop screens are back-to-back. You can talk algorithms and logic, but not code.
  • Do not allow students to even peek at your code. If a student gets their hands on your code, both will be in violation of the plagiarism policy regardless of who actually wrote the code.
  • Google is a great tool; however, it is the primary way students cheat. They will find code on the internet and copy it as their own. Try using the lectures, notes, and videos given in the class.
  • ALWAYS cite who you worked with and where you got help, including any TA or instructor.

List of Changes

This syllabus is subject to change before, during, or after the semester. Any changes will be listed below sorted by descending date.

  • (9-Feb-2023) Update student code of conduct sections for plagiarism/cheating. Remove grading form for Piazza post.
  • (5-Aug-2020) Initial release