Course Syllabus
Course Basics
Course COMP 1020: Programming for All 2
Credits 3
Pre-reqs COMP 1010
Lectures Lectures are Tuesday and Thursday 2:00 - 2:50pm
Location WEB L101. You can find WEB by searching the online campus map. The west side of the building has a courtyard which provides access to the lower level of WEB. If you enter from the east, or street-side, you will be on the upper level of WEB (which also has a first floor that does not have our classroom) and you will want to descend the stairs on the side overlooking the city down to the lower levels.
Lab sessions Multiple Friday sessions: 9:40-10:30a, 10:45-11:35a, 11:50a-12:40p, 12:55p-1:45p, 2:00p-2:50p in WEB L208. Lab attendance at your registered lab session is required and has graded work. If attending a different section helps handle a temporary conflict, you can do that, but you cannot just start attending a different section long-term. This lab space is adjacent to a larger room with computers (the Engman lab) and is near the door that exits from the large stairwell leading to all levels of WEB. The lab has machines available but you can also use a personal laptop.
Instructor David E. Johnson
Instructor Contact Info
- Email david.e.johnson@utah.edu (please see information about course communication in the Course Resources module).
- Office 3146 MEB (along the west face of the MEB 3rd floor)
Course Staff Email We will be using Piazza for contacting course staff (the instructor and TAs) and for class discussions. There is a link to Piazza in the Canvas menu bar.
Textbook There is a free ebook we will be using and other free readings. Information will be posted in Canvas modules as needed.
Important Dates In-class tests on Feb. 6 (midterm 1), March 20 (midterm 2) and the final on the University-specified final exam date of Friday, April 25 from 1-3PM. The in-class quizzes will be Jan. 23, Feb. 20, March 6, and April 10. These dates cannot be missed except for documented emergencies and you should plan around them.
Clicker or audience response device During many lectures, I will have small audience participation questions that you can answer using a smart phone, tablet, or laptop.
Description This course is part of a two-course sequence designed for non-CS major students who desire a practical course for gaining basic computer programming skills. Like its prequel, this course will use the Python language to develop skills in problem-solving, debugging, acquiring real-world data, processing data, and interacting with and visualizing solutions. The prequel course focused on showing the power of writing small programs that leverage existing code to create interesting applications. This course will build on those fundamentals and introduce object-oriented design principles that help facilitate building more extensive applications. Examples from a variety of fields will be used to illustrate the utility of computers and programming. Students should leave the course with the confidence and ability to write useful, small-scale programs in their area of interest.
At the end of the course, students will be able to
- write small functions, classes, and scripts in Python to accomplish desired tasks
- debug and modify small programs
- use tools to manage larger projects, such as version control systems and testing
- use object-oriented constructs within their programs
- make a modern application with a GUI toolkit
Course Materials
Website The class website is the Canvas course available through CIS. It will be updated throughout the semester with the class schedule, lecture notes, laboratory exercises, assignment specifications, and much more.
Lecture notes The instructor will often make use of slides and other documents during lecture. These documents will be posted on the class website following the lecture; however, such posted documents may not represent completely the material covered in class. Students who must miss class are strongly encouraged to check with a classmate or TA.
Python All programming in COMP 1020 is in Python, using the PyCharm programming environment. Python is available for your use on the College of Engineering’s lab machines. Instructions for installing these resources on your personal computer is available on the class website in the Class Resources module.
New students should create a College of Engineering lab account at:
https://webhandin.eng.utah.edu/cade/create_account/index.php
Student Evaluation
Programming assignments The instructions for each assignment and its due date will be posted on the class website. It is the student’s responsibility to ensure the successful and timely submission of each programming assignment — start early and follow the instructions carefully. Corrupted or missing files will not be grounds for extensions. Double-check your submissions, and save a digital copy of all of your work.
Late Assignments Assignments turned in after the due date and time receive an immediate 10% of the possible score deduction per day up to two days. After 48 hours the assignment can no longer be submitted and the assignment score becomes 0%.
Late Passes Every student gets two late passes to use during the semester. It is not necessary to email the instructor to use a late pass - they just get applied if available. A late pass forgives the one or two day late penalty for one assignment. It does not extend the assignment past the two day late period. Late passes will be automatically applied to late assignments and tracked in the Canvas gradebook. Students cannot decide to shift a late pass from one assignment (for example, where a pass was used on a 24 hour late assignment) to another (a later assignment that was 40 hours late).
Extra Credit Once assignment grades are released you have until the following Tuesday to meet with a TA and 1) Review feedback 2) Suggest to the TAs ways the assignment could be improved 3) Discuss what you found most difficult in the assignment. You can get 0 - 3% extra credit depending on how well prepared you were (for example, reviewing the assignment feedback in advance). A reasonable meeting would receive 3%.
Lab exercises Students in labs generally work through online instructions with the aid of the lab TA and answer Canvas quiz questions for grading. We will drop the lowest two lab scores, so that helps you manage unexpected (or expected) problems with attendance. You should review the material in the online lab instructions even if you do not attend the lab. Labs are very beneficial for reviewing material covered in lecture and introducing new material -- attendance is expected and graded through the quiz mechanism.
In-Class Exams and Final Exam There will be two in-person tests and an in-person final exam. See the "Important Dates" section above for the dates.
In-Class Quizzes There will be four in class quizzes taken during the last 20 minutes of some lectures. These quizzes are an opportunity for fast feedback about your understanding of course material and the homework. See the "Important Dates" section above for the dates. One quiz score will be dropped and that is the default process for handling a missed quiz.
Final course grade:
The final course grade will use the following weights to calculate a final course percentage.
Midterm Exams 25%
Final Exam 20%
Labs 5%
Assignments 35%
In-Class Quizzes 15%.
Your weighted, cumulative course percentage score is turned into letter grades using the following scheme:
[100-94] A
(94-90] A-
(90-87] B+
(87-84] B
(84-80] B-
(80-77] C+
(77-74] C
(74-70] C-
(70-67] D+
(67-64] D
(64-60] D-
(60-0] E
where [ ] means including that number and ( ) means up to but not including.
Regrades Students who wish to appeal a score on an assignment, a lab, a quiz, or a test must do so within one week of receiving the score. Look under Course Resources for this process.
Getting Help
Instructor office hours See the link at the top of the course website under Course Resources.
Teaching assistants and consulting hours See the link at the top of the course website under Course Resources for the consulting schedule of the course TAs. During consultation, use the TA Queue (also on the class website) to alert the TA on duty that you have a question.
Communication For questions outside of class and consulting hours, students are encouraged to use Piazza (available through the tabs on the left of Canvas).
To send urgent messages to everyone in the class, such as corrections to assignments or changes in due dates, the course staff will make announcements through Canvas. You should make sure you are getting notifications and checking that system regularly.
To ask a question of the course staff, students should use Piazza. More details will be available under the Course Resources module.
In general, we can often provide quick and detailed responses through Piazza and it is an excellent mechanism for getting feedback. See further instructions under the Course Resources module in Canvas.
Course Guidelines
Behavior in the classroom All students are expected to maintain professional behavior, according to www.regulations.utah.edu/academics/guides/students/studentRights.html (the University of Utah Student Code). Students should read the Code carefully and know that they are responsible for the content.
Students are expected to engage with the instructor and classmates during class meetings. Students are permitted to use a laptop or mobile device to take notes or to participate in course activities. Use of a laptop or mobile device for any other purpose is not permitted, and students who do so will be asked to leave the classroom. While you may consider it a right to casually browse the web, engage in social media, or play games during lecture, such activity is very distracting to others (especially in a crowded classroom) and is not permitted.
Working together Students are encouraged to discuss assignments and laboratory exercises with fellow classmates, but each student is responsible for formulating and writing their own answer. Cheating is: sharing written or electronic work either by copying, retyping, looking at, or supplying a copy. Cheating is not: discussing concepts, answering questions about concepts or clarifying ambiguities, or helping someone understand how to use the class tools and software.
Students may occasionally be optionally allowed or required to work on assignments or lab exercises in pairs or small groups. Guidelines and rules for working together will be posted with such assignments.
Cheating is taken very seriously and students must be careful not to collaborate on assignments.
Submissions are routinely checked by the course staff for signs of unauthorized collaboration.
There must be no collaboration during tests, quizzes, or the final exam. Please see the University of Utah Student Code for a detailed description of the university policy on cheating.
Please see the detailed policy on academic misconduct in the Course Resources module.
Any student found cheating will fail the entire course.
AI You must not use AI tools (such as ChatGPT, Copilot, and so on) for any code you submit for an assignment. In an introductory class like this, they keep you from learning the material. They also often do not work or use approaches that are different or more advanced than is appropriate for this course.
College of Engineering guidelines For information on withdrawing from courses, appealing grades, and more, see the College of Engineering guidelines at https://www.coe.utah.edu/students/current/semester-guidelines/. (Links to an external site.)
Please read university policies on ADA, Safety, Sexual Misconduct, and Academic Misconduct: https://cte.utah.edu/instructor-education/syllabus/institutional-policies.php
Note: This syllabus is meant to serve as an outline and guide for our course. Please note that I may modify it with reasonable notice to you. I may also modify the Course Schedule to accommodate the needs of our class. Any changes will be announced in class and posted on Canvas under Announcements.
Course Summary:
Date | Details | Due |
---|---|---|