(Spring 2022): I am not longer the instructor for this course. Please contact the instructor of record for more information regarding policies and procedures.

Spring 20XX Syllabus

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

Course Topics

Catalog Description

3 Credit Hours

Introduce programming and computational science and engineering to graduate students in the sciences and engineering. Problem solving and algorithm development. Might use various programming languages such as C++, Python or others as needed.
Comment(s): EECS majors cannot use course to meet degree requirements.
Registration Restriction(s): Minimum student level – graduate.

We will use the Python programming language for this semester.


List of Topics

  1. Your Computer
    • Loading Python 3 interpreter
    • Navigating your files
    • Using an integrated development environment (IDE)
  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
  4. Data Science
    • Using the pandas library to retrieve and analyze data.
    • Using the matplotlib library to plot data.
    • Using the requests library to retrieve Internet data.
    • Using the tkinter library to display data.

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.

Pandas and Data Science

  1. Be able to read a file.
  2. Be able to read data from a URL.
  3. Be able to conditionally truncate data.
  4. Be able to plot data.
  5. Be able to apply mathematical operations to a data set.
  6. Distinguish between a value, Series, and DataFrame.

Visualizing Data

  1. Be able to use tkinter to display data.
  2. Be able to handle keyboard and mouse input.
  3. Be able to use the requests module to read data from the Internet and display it.

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.

Assignment Categories

Students will be evaluated on the following assignment categories. The weight of each category will be listed on Canvas. Information about assignments, including due dates, will be listed on Canvas.

  • Practice – small, quiz-like question banks used to test Python syntax and semantic knowledge.
  • Algorithm Labs – medium, guided projects for students to learn concepts and apply them in a practical situation.
  • Projects – large, multiple weeklong projects for students to use the tools learned in class to solve a problem.

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.

Grading

  1. Some assignments may be submitted late for a 20% per day penalty.
  2. Students must coordinate before missing an exam.
  3. Students who score less than 65% in any assignment category (average of all assignments under the category), such as exams or homework, will drop to the next lower letter grade. For example, a C will become a D, an A will become a B.
  4. Grades are not rounded or curved. Extra credit may be available to help boost a student’s grade.
  5. Per UT policy: students are not permitted to do extra work after the final to boost a grade.

Grading Appeals

  • Students may appeal an assignment grade provided:
    • The appeal is made within 7 days of the grade being revealed.
    • Students must use the grade appeal form on Canvas.
    • Students must document their grievances and why the grade should be changed.
      • Appeals without proper support and citations will be denied.

Letter Grades

LetterScore
A94
A-90
B+87
B84
B-80
C+78
C75
D70
F0

Code of Conduct

Cheating and Plagiarism

Students who are accused of cheating or plagiarism on 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 cheating or plagiarism will result in an F for the course.

All cheating and plagiarism cases will be investigated by the Office of Student Conduct: https://studentconduct.utk.edu.

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 10.4 FROM HILLTOPICS. 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 10.5 FROM HILLTOPICS. 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.

  • (5-Aug-2020) Initial release