CSc 110 - Introduction to Computer Programming I

University of Arizona, Summer 2023

Course Description

An introduction to programming with an emphasis on solving problems drawn from a variety of domains. Topics include basic control and data structures, problem solving strategies, and software development tools and techniques. Specifically, the Python programming language will be taught.

Location and Time

This is an online course. There will not be a particular, required class meeting time. However, you will be expected to go over prep material, take a prep quiz, and watch a video most days Monday-Friday for the duration of the course. There are also some required office hour visit, and you need to be prepared to take exams on exam days within a particular time-window. Therefore, it would be good to keep exam days as free as possible.

Prerequisites

C or better in MATH 112 (College Algebra) or CSC 101 or appropriate UA math placement score.

Instructor & Teaching Staff

There will also be some undergraduate TAs. See the class website for the contact info.

Course Format and Teaching Methods

As has been stated, this will be an online course. Though there won’t be regular class meeting times, there will be many course videos that you will be expected to watch. Though the course will be online, I am going to attempt to incorporate active learning and flipped-learning techniques.

By active learning, I mean that watching the course videos won’t just be staring at a computer screen. Instead, the videos will have periodic embedded questions, which will be worth points. You’ll need to pay close attention as you watch the videos, and attempt to get as many questions correct as you can! Thus, you can spend some time “actively” learn, rather than “passively” listen to me talk on videos.

By flipped-classroom, I mean that you will often be assigned reading or other material to complete before watching course videos. By doing this, you will (hopefully) have a basic understanding of a concept before watching the video about that concept.

Course Objectives

This course covers the basics of programming with Python 3. You’ll learn about data types, conditions, loops, functions, data structures, and more. By the end of the semester you should be able to write complete, well-structured programs in python.

Learning Outcomes

The successful CSc 110 student will be able to:

(These learning outcomes are derived from ones developed by Allison Obourn and other faculty at the UA).

Coursework and Grading Policies

The breakdown of grades in this course is as follows:

Instead of meeting at a particular place at a particular time for class, you should watch and interact with pre-recorded videos. The pre-recorded videos will generally have a number of questions and/or activities interspersed throughout the videos. These questions and/or activities will amount to 10% of your final course grade.

There will be both assigned readings and prep problem(s) due most days of class, and you should complete these before watching the corresponding video. In many cases, these problems will be based on the prep/reading topic due before class. In total these will contribute to 10% of the student grade. The general flow for a day should be like so, Do the assigned reading, Do the prep problem, then watch the video and answer the questions.

There will be nine programming assignments throughout the class, which will contribute to 30% of the student’s grade. The majority of these will be individual projects, but the instructor reserves the right to make some group-based.

There will be three exams throughout the course (including the final), for a total of 45%. Each will be worth 15%. These exams may cover material from class, the programming assignments, the final project, and the readings. These exams will be given online via gradescope. When taking an exam, it is important to ensure that you have the proper technology and internet access to complete the exam. I will not be providing make-up opportunities for technical difficulties, such as your battery dying while taking an exam, losing internet during an exam, etc. There will be a several-hour window during which you must take the exam on exam days. Check the schedule for the dates of these exams. You should ensure that you have at least two hours of available time on each exam day between 3-8pm AZ time.

You are required to meet with the instructor or a TA live in office hours at least twice throughout the duration of the course. The first meeting must be in the first 4 weeks (between June 5th and July 1st), and the second must be sometime between July 10th and August 5th. The purpose of these meetings is to allow us to (A) meet you and get to know you, and (B) provide guidance / suggestions on how to do well, how to improve your grade, etc. Each meeting is worth 2.5%.

The instructor and teaching staff will do their best to have grades back to students within 1 week. Once a grade has been entered for a particular item on the digital grade-book, students have at most 7 days (including weekends) to dispute the grade. This includes disputes related to excuses such as sickness, personal matters, dean’s excuses, etc.

The correspondence between percentage grade and numeric grade is as follows:

Late Days

In this class, you are given 2 late days. What this means is that you are allowed to submit up to 2 programming assignments within 24 hours after the due date throughout the semester, without penalty. Otherwise, they will be given a zero. Consider saving them for later in the course, when you might be in dire need :).

Final Exam

The final exam will be on August 9th. You should ensure that you have at least two hours of available time on this day between 3-8pm AZ time. There will be no make-up opportunities for the final exam.

Textbook

There is one required textbook for this course: Starting out with Python (5th). The ISBN-13 number is 978-0135929032. This book is rather pricey on Amazon (around $100). See for yourself: https://www.amazon.com/dp/0134444329/ However, unless you opt-out, you can get a digital copy of this textbook for less-than $30. More info on this in the next section.

More Textbook Info

Some course materials are being delivered digitally via D2L. Please access the material through D2L the first day of classes to make sure there are no issues in the delivery, and if you are having a problem or question, it can be addressed quickly. You must take action (even if you have not accessed the materials) to opt-out if you do not wish to pay for the materials, and choose to source the content independently. I am unsure what the opt-out deadline is for the summer. If you would like to opt-out, contact the uofa bookstore as soon as you can. Preferably, before the start of classes. If you do not opt-out and choose to retain your access, the cost of the digital course materials will appear on your Bursars account. Please refer to the Inclusive Access FAQs at https://shop.arizona.edu/textbooks/Inclusive.asp for additional information.

Software

This class is an introduction to programming, specifically programming in Python. Specifically, we will be using Python 3.5 or greater. You can download it here: https://www.python.org/downloads/. You should also download either Pycharm or the Mu Code editor to write Python code .

If you have a personal computer, you should download and install Python and Mu on your machine.

Getting Help with Course Material

Likely, some (or many) of you will find this course challenging, and will need to ask for help at various times. The instructor and teaching staff can provide opportunities to receive help when you are stuck.

You may not publicly post any of your code or solutions to problems to other students or to the internet in-general. If you are making a public post (visible to the entire class) make sure you do not include this. If you would like to include this, post to the instructors only.

If you are ever stuck, ask for help!

Cheating

Unless otherwise specified, you may not work in groups on any coursework. This includes quizzes, exams, programming drills, programming assignments, etc. You may not share code, copy/paste code, or look at each-others code. Any work you submit should be your own work. The instructor may use software to help detect cheating.

If cheating is detected on your work, penalties may include (but are not limited to):

Course Schedule

See the schedule page on the class website for the topic and reading schedule.

Additional Resources for Students

UA Academic policies and procedures are available at http://catalog.arizona.edu/policies. Student Assistance and Advocacy information is available at http://deanofstudents.arizona.edu/student-assistance/students/student-assistance.

Incomplete (I) or Withdrawal (W):

Requests for incomplete (I) or withdrawal (W) must be made in accordance with University policies, which are available at http://catalog.arizona.edu/policy/grades-and-grading-system#incomplete and http://catalog.arizona.edu/policy/grades-and-grading-system#Withdrawal respectively.

Absence and Class Participation Policy

The UA’s policy concerning Class Attendance, Participation, and Administrative Drops is available at: http://catalog.arizona.edu/policy/class-attendance-participation-and-administrative-drop

The UA policy regarding absences for any sincerely held religious belief, observance or practice will be accommodated where reasonable: http://policy.arizona.edu/human-resources/religious-accommodation-policy.

Absences pre-approved by the UA Dean of Students (or dean’s designee) will be honored. See https://deanofstudents.arizona.edu/absences

Obtaining Help

Makeup Policy for Students Who Register Late

Students who register after school has already begun are not guaranteed to be given the opportunity to make up late work.

Illness

COVID-19

As we enter the semester, our health and safety remain the university’s highest priority. To protect the health of everyone in this class, students are required to follow the university guidelines on COVID-19 mitigation. Please visit www.covid19.arizona.edu.

Department of Computer Science Code of Conduct

The Department of Computer Science is committed to providing and maintaining a supportive educational environment for all. We strive to be welcoming, respect privacy and confidentiality, behave respectfully and courteously, and practice intellectual honesty. Disruptive behaviors (such as physical or emotional harassment, dismissive attitudes, and abuse of department resources) will not be tolerated.

Classroom Behavior Policy

To foster a positive learning environment, students and instructors have a shared responsibility. We want a welcoming environment where we can challenge ourselves to succeed. All students should strive to learn and treat each-other with respect in all of the interactions through this online course, whether via Discord, Email, office hours, or any other forms of interaction.

Threatening Behavior Policy

The UA Threatening Behavior by Students Policy prohibits threats of physical harm to any member of the University community, including to oneself. See http://policy.arizona.edu/education-and-student-affairs/threatening-behavior-students.

Accessibility and Accommodations

At the University of Arizona we strive to make learning experiences as accessible as possible. If you anticipate or experience physical or academic barriers based on disability or pregnancy, you are welcome to let me know so that we can discuss options. You are also encouraged to contact Disability Resources (520-621-3268) to explore reasonable accommodation. Please be aware that the accessible table and chairs in this room should remain available for students who find that standard classroom seating is not usable.

Code of Academic Integrity

Students are encouraged to share intellectual views and discuss freely the principles and applications of course materials. However, graded work/exercises must be the product of independent effort unless otherwise instructed. Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog. See http://deanofstudents.arizona.edu/academic-integrity/students/academic-integrity.

The University Libraries have some excellent tips for avoiding plagiarism, available at http://www.library.arizona.edu/help/tutorials/plagiarism/index.html.

Selling class notes and/or other course materials to other students or to a third party for resale is not permitted without the instructor’s express written consent.

Violations to this and other course rules are subject to the Code of Academic Integrity and may result in course sanctions. Additionally, students who use D2L or UA e-mail to sell or buy these copyrighted materials are subject to Code of Conduct Violations for misuse of student e-mail addresses. This conduct may also constitute copyright infringement.

UA Nondiscrimination and Anti-harassment Policy

The University of Arizona is committed to creating and maintaining an environment free of discrimination. In support of this commitment, the University prohibits discrimination, including harassment and retaliation, based on a protected classification, including race, color, religion, sex, national origin, age, disability, veteran status, sexual orientation, gender identity, or genetic information. For more information, including how to report a concern, please see http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy

Subject to Change Statement

Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.