CS170Q: Programming for the World Around Us
[ Course Info | Course Objectives and Goals | Resources | Instructors | Textbooks | Schedule | Grading | Course Policies | Course Details ]Welcome to CS170Q! In this class, we will experience computing from a broad context, and explore the power of technology through computer programming. Computing is ubiquitous and has enabled revolutionary advances in many disciplines and domains, and we will create programs and systems that benefit a diverse set of stakeholders. We will also investigate practices to ensure that we are inclusive in our development of these systems to maximize benefit and to mitigate the risk of harm.
Course Info
- Course Number and Title: CS170 - Programming for the World Around Us
- Section A
- Credit Hours: 4 Semester Hours
- Credit Hours include "contact time" in the classroom and outside course work. It is expected that the sum of classroom time and outside course work time should add up to three times the listed credit hours per week.
- Course Webpage: https://BillJr99.github.io/Ursinus-CS170-Fall2022
- LMS (Canvas): Canvas
- Course Calendar: Import the course calendar into your favorite calendar app with this link!
- Class Notebook: Access our class notebook here! If you are unable to access the notebook, please let me know and I will share the document with your account.
- Academic Term: Fall 2022-23
- Term Start and End: through
- Course Prerequisites: None.
- Class Meeting Locations and Times:
- Section A:
- s from 10:00 AM to 10:50 AM in Pfahler 012
- s from 10:00 AM to 10:50 AM in Pfahler 012
- s from 10:00 AM to 10:50 AM in Pfahler 012
- s from 10:00 AM to 10:50 AM in Pfahler 012
- Final Exam:
- Section A: 2022/12/14 from 01:00 PM to 04:00 PM in PFA012
- Course Description: An introduction to programming and computer science as a tool for solving problems, automating work, and analyzing and working with data. The course introduces Python and studies its applications in various domains including bioinformatics, the physical sciences, business, and humanities by looking at a variety of problems drawn from these domains. The lab will involve the implementation of algorithms and analysis on data sets drawn from these areas. Also, the ethics of data use are covered via discussion of relevant articles and media. No prior programming experience is assumed. Offered every Fall. Three hours of lecture and one hour of laboratory per week. Four semester hours. (S, R) Note: CS-170Q may not be used as elective credits for computer science majors or minors.
Course Learning Objectives and Learning Goals
Learning Objectives
- To implement algorithms using the Python programming language
- To use appropriate variables to represent and manipulate data
- To use logic conditionals to make decisions in a computer program
- To use loops to create appropriate repetition in a computer program
- To abstract code into functions for re-use
- To reuse external library functionality to extend the capabilities of a program
- To collaborate with others in the creation of computer programs
Learning Goals
- To apply programming as a vehicle to make computing and technology accessible to a broad variety of application domains in the sciences and humanities
- To use design thinking and empathetic computing practices to identify and to address diverse stakeholder groups and needs
- To design algorithms and computer programs to solve problems across a variety of domains
- To interface computer programs with data from the external environment
- (Q) To consider how the context surrounding problems influences the approach used to develop a solution
- (Q) To explain quantitative information presented in a variety of forms
The Questions
Throughout the course, we will be thematically guided by the Ursinus Questions:- What should matter to me?
- How should we live together?
- How can we understand the world?
- What will I do?
Specifically, we will collectively consider questions like:
- What types of problems can (and should) computers help with by automating solutions?
- How and when should human factors be considered into solution designs and the what that computers interact with us?
- How do automated solutions introduce unintended harms, or amplify existing harms, on others? How can we mitigate these harms?
- How can I utilize the power of the computer to improve the world and the lives of others?
Resources
Accommodations
Ursinus College and your instructor are committed to ensuring equal access and providing reasonable accommodations for all students. If you have, or think you have, a disability in any area such as, mental health, attention, learning, chronic health, sensory, or physical, please contact the Director of Disability Services.Ursinus College is committed to ensuring equal access and providing reasonable accommodations for students with disabilities. The Institute for Student Success works with students who have any kind of disability, whether apparent or non-apparent, learning, emotional, physical, or cognitive, and need accommodations to increase their access to this learning environment. I encourage you to reach out to the Director of Disability Services, Dr. Dee Singley to discuss about supports and accommodations you may need. Dr. Singley’s office is located in the Institute for Student Success in Lower Wismer. You can schedule a meeting with Dr. Singley by using this link: https://dsingley.youcanbook.me/, by emailing her at dsingley@ursinus.edu or by calling her at 1-484-762-4329. Students can also review accessibility and disabilities services on the ISS website.
Peer Coaching
The Institute for Student Success offers Peer Coaching that you can sign up for anytime. The Institute for Student Success connects students to the resources, activities, services, and programs that can help students be successful, thrive, and persist to graduation. They offer academic skills workshops, one-on-one coaching, tutoring, and more. Contact them at instituteforstudentsuccess@ursinus.edu or 610-409-3400.Early Alerts
From time to time, I may send academic early alerts through the college to you reagarding your academic performance or engagement in the class. These alerts are intended to help you engage in a way that will improve your ability to be successful. Should I send you an alert, I expect that you will follow up with me within 5 days to discuss your engagement on campus or in our class.Religious and Spiritual Life Observance Policy
Per the Religious and Spiritual Life Observance Policy, students who expect to miss classes, examinations, or other assignments due to religious observance may notify me two weeks prior to the observance. I will be happy to discuss reasonable alternatives with you.Wellness Center
Wellness Center resources are confidential and free to all students. Please consult the Wellness Center website for more information. As a student, you may experience a range of issues that can cause barriers to learning or reduce your ability to participate in daily activities. These might include strained relationships, anxiety, high levels of stress, alcohol/drug problems, feeling down, health concerns, or unwanted sexual experiences. The Wellness Center provides free short-term individual counseling, group therapy, and referral services that are confidential and are not a part of your educational record. Call Wellness at 610-409-3100 between 9:00-5:00, M-F. If you or someone you know is experiencing a crisis after hours, call Campus Safety at 610-409-3333. For a local resource, Montgomery County Mobile Crisis is available for 24/7 telephone support at (855) 634-HOPE (4673). The National Suicide Prevention Hotline also offers 24/7 support at 800-273-8255. As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. Ursinus College Wellness Center offers services to assist you with addressing these and other concerns you may be experiencing. If you or someone you know are suffering from any of the aforementioned conditions, you can learn more about the broad range of confidential mental health services available on campus via the Wellness Center by emailing wellness@ursinus.edu or calling 610-409-3100. If you are interested in more academic support, please contact the Institute for Student Success at instituteforstudentsuccess@ursinus.edu or 610-409-3400. If you find yourself struggling with your mental or physical health this semester, please let me know. I am one of many people here at Ursinus who care about you and your welfare. For example, the Wellness Center provides numerous health and counseling services, including free short-term individual counseling, group therapy, and referral services that are confidential and are not a part of your educational record. Contact the Wellness Center by emailing wellness@ursinus.edu or calling 610-409-3100.Center for Writing and Speaking
The Center for Writing and Speaking is available for one-on-one and group appointments to advise you as you revise your writing projects and presentations. They will even support your personal projects and extracurricular activities! Please feel free and encouraged to review any and all writing and speaking work from this class with them.Bear2Bear
The college recognizes that temporary financial hardships can impact students' access to course materials, as well as their access to opportunities on campus. Please be aware of the Bear2Bear fund, which has been established by donors to the college and provides special grants for students who have exhausted other sources of funding.Help Room
The Math Help Room (Pfahler 102) is a great place to go if you are struggling and is managed by the Institute for Student Success. Students who have previously taken the course will be there to help you with the assignments.Course Instructors and Student / Office Hours
Role | Name and Contact Information | Student Hours / Office Hours |
---|---|---|
Professor |
William Mongan
Phone: 610-409-3410 E-Mail: wmongan@ursinus.edu Office: Pfahler Hall 101L |
Sign up for a one-on-one appointment during my office hours! |
Textbooks
Required? | Title | Author | Edition | ISBN | Freely Available? |
---|---|---|---|---|---|
Required |
Python for Everyone |
Cay Horstmann | 3rd Edition | 978-1-119-49853-7 | |
Recommended / Supplemental |
Runestone Academy |
Brad Miller | Online Edition | Online Version |
Course Schedule
Week | Date | Title | Readings | Deliverables Handed Out | Deliverables Due |
---|---|---|---|---|---|
Week 1 | Course Overview |
|
|||
Week 1 | Course Overview Continued: What is Computer Science? | ||||
Week 1 | Computing in Context: Exploring Computing Concepts with Unplugged Activities |
|
|||
Week 1 | Computing in Context: Post-It Pandemonium | ||||
Week 2 | Computing in Context: Classifying Flowers |
|
|||
Week 2 | Lab: Setting up Your Computing Environment |
|
|
||
Week 2 | Lab: Setting up Your Computing Environment | ||||
Week 2 | Introduction to the micro:bit and Random Number Generation with Variables and Mathematical Expressions |
|
|||
Week 3 | Introduction to the micro:bit and Random Number Generation with Variables and Mathematical Expressions |
|
|||
Week 3 | Lab: Flesch-Kincaid Reading Level |
|
|||
Week 3 | Representing Numbers and Text in Python |
|
|||
Week 3 | Representing Numbers and Text in Python | ||||
Week 4 | Representing Numbers and Text in Python |
|
|||
Week 4 | Lab: Random Dice Rolling with the micro:bit |
|
|||
Week 4 | Hide-and-Seek and Radio Communication with the micro:bit and Conditionals | ||||
Week 4 | Hide-and-Seek and Radio Communication with the micro:bit and Conditionals | ||||
Week 5 | Conditionals in Python |
|
|
||
Week 5 | Lab: Accessible Hide and Seek with Sound |
|
|||
Week 5 | Conditionals in Python | ||||
Week 5 | Conditionals in Python | ||||
Week 6 | Tin Foil Piano with micro:bit Using Functions and Loops | ||||
Week 6 | Lab: Debugging |
|
|
||
Week 6 | Tin Foil Piano with micro:bit Using Functions and Loops | ||||
Week 6 | Tin Foil Piano with micro:bit Using Functions and Loops | ||||
Week 7 | Iteration in Python |
|
|
||
Week 7 | Lab: Card Deck |
|
|||
Week 7 | Iteration in Python |
|
|||
Week 8 | Iteration in Python |
|
|||
Week 8 | Iteration in Python |
|
|||
Week 9 | Functions in Python |
|
|
||
Week 9 | Lab: Cryptography | ||||
Week 9 | Functions in Python |
|
|||
Week 9 | Functions in Python |
|
|||
Week 10 | Social Vicinity Tracker with micro:bit Using Arrays | ||||
Week 10 | Lab: Credit Card Validator | ||||
Week 10 | Social Vicinity Tracker with micro:bit Using Arrays | ||||
Week 10 | Lists in Python |
|
|||
Week 11 | Lists in Python | ||||
Week 11 | Lab: Unit Testing |
|
|||
Week 11 | Lists in Python | ||||
Week 11 | Dictionaries in Python |
|
|||
Week 12 | Dictionaries in Python | ||||
Week 12 | Lab: Story Telling |
|
|||
Week 12 | Graphics and Sound | ||||
Week 12 | Graphics and Sound |
|
|||
Week 13 | Graphics and Sound | ||||
Week 13 | File I/O in Python |
|
|
||
Week 14 | File I/O in Python |
|
|||
Week 14 | File I/O in Python |
|
|||
Week 14 | Protocols: Rock-Paper-Scissors with the micro:bit | ||||
Week 14 | Protocols: Rock-Paper-Scissors with the micro:bit |
|
|||
Week 15 | Trust and Privacy on the Internet: Zero Knowledge Coin Flip with the micro:bit | ||||
Week 15 | Data Encodings: Telling Time with WWVB | ||||
Week 15 | Data Encodings: Telling Time with WWVB |
|
|||
Week 15 | Data Encodings: Telling Time with WWVB |
|
- Add Deadline:
- Drop with a W Deadline:
- Reading Day:
Grade Breakdown
Letter grades will be assigned on the scale below at the end of the course. "Grade grubbing" is not conducive to professional practice; every assignment has or will have very precise expectations and point breakdowns, and I will evaluate submitted work carefully according to these standards. I will also return assignments in a timely manner, and the running weighted grades will be updated frequently. Therefore, I expect a commensurate level of respect from you. In sum, you should know where you stand at all times, there will be plenty of opportunities to improve your standing, and there should be no surprises at the end of the course.Grading Table
Item | Weight |
---|---|
Programming Assignments | 25% |
Labs | 35% |
Service Learning Project | 15% |
Final Project | 15% |
Class Participation and Quizzes | 10% |
Letter Grades
Letter | Grade Range |
---|---|
A+ | 96.9-100 |
A | 93-96.89 |
A- | 89.5-92.99 |
B+ | 87-89.49 |
B | 83-86.99 |
B- | 79.5-82.99 |
C+ | 77-79.49 |
C | 73-76.99 |
C- | 69.5-72.99 |
D+ | 67-69.49 |
D | 63-66.99 |
D- | 59.5-62.99 |
F | 0-59.49 |
Course Policies
Classroom Environment and Inclusivity Standards
My goal is to foster a environment in which students across all axes of diversity feel welcome and valued, both by me and by their peers. Axes of diversity include, but are not limited to, age, background, beliefs, race, ethnicity, gender/gender identity/gender expression (please feel free to tell me in person or over e-mail which pronouns I should use), national origin, religious affiliation, and sexual orientation. Discrimination of any form will not be tolerated. Furthermore, I want all students to feel comfortable expressing their opinions or confusion at any point in the course, as long as they do so respectfully. As I will stress over and over, being confused is an important part of the process of learning computer science. Therefore, I will not tolerate any form of put-downs by one student towards another about their confusion or progress in the class. Learning computer science and struggling to grow is not always comfortable, but I want it to feel safe. Much of this material is probably new to everyone, and those with some prior experience likely recall a time when it was new to them, too. Remember that this is not a competition: helping others to grow is itself a richly rewarding professional development opportunity. In order to allow for equitable access to class for students who may be attend and participating remotely, I may record our class sessions. These recordings will only be available on our Canvas site. I will announce that we are recording in the beginning of any classes of this kind; out of respect and privacy for me and all class members, please do not download, copy, or redistribute class recordings.Online Communication Policy
Since this is a class-wide communication, the following rules apply to message groups and electronic communications:- Students are expected to be respectful and mindful of the classroom environment and inclusivity standards.
- They are equally applicable to a virtual environment as they are in class.
- Students are not permitted to share direct answers or questions which might completely give away answers to any homework problems or labs publicly on Microsoft Teams. When in doubt, please send me a direct message there.
- I will attempt to answer questions real time during student / office hours. Otherwise, I will make every attempt to respond within 24 hours. Of course, students can and should still respond to each other outside of these intervals, when appropriate!
- Students may ask anonymous questions.
Course Management Systems: Canvas, Microsoft OneNote, and Microsoft Teams
We will be using Canvas to post all of the grades. For the most part, we will submit work using Canvas as well. For class activities and notes, we will be using OneNote, and for other discussions and announcements for the course, including messaging me directly with questions, we will use Microsoft Teams. OneNote and Teams are linked to your Office suite through Ursinus, so you are automatically enrolled. There you can ask and answer questions about the lecture content and assignments.Since it is likely that students will have similar questions, it is much more efficient for me to answer them there so the whole class can see the answer, so it is possible that I will ask you to re-send a question publicly that I get in an e-mail. If you'd prefer, I could anonymize the question as well, but I'd like you to have the opportunity to post it so that you are credited with having such a good question!
Collaboration Policy and Academic Integrity Policy
Communication between students is allowed (and encouraged!), but it is expected that every student's code or writeups will be completely distinct! Please do not copy code off of the Internet (repurposing code from the Internet will probably make it harder anyway because the assignments are so specialized). Please cite any sources in addition to materials linked from the course website that you used to help in crafting your code and completing the assignment.See the Course Management page in the Faculty Handbook for an explanation of college policies on plagiarism and other academic honesty violations.
To encourage collaboration, students will be allowed to choose one "buddy" to work "near" during the assignment. Students are still expected to submit their own solutions, but they are allowed to provide substantial help to their designated buddy, and even to look at the buddy's code during the process. Students must indicate their buddies in the README upon assignment submission. Please let me know if you would like a buddy but are having trouble finding one.
Below is a table spelling out in more detail when and how you are allowed to share code with people (table style cribbed from Princeton CS 126).
Please Note: The terms "exposing" and "viewing" exclude sending or ingesting electronically, which would be considered copying. Exposing and viewing are normally done in the context of in-person working or in the help room. In addition, "Other People" includes internet sources!
Your Buddy | Course Staff | Course Grads | Classmates | Others | |
---|---|---|---|---|---|
Discuss Concepts With | OK | OK | OK | OK | OK |
Acknowledge Collaboration With | OK | OK | OK | OK | OK |
Expose Your Code/Solutions To | OK EXCEPT FOR Assignments |
OK | OK | NO | NO |
View the Code/Solutions Of | OK EXCEPT FOR Assignments |
OK | NO | NO | NO |
Copy Code/Solutions From | NO | NO | NO | NO | NO |
If the work you submit appears to be copied from previous work or the collaboration policy has been violated in any way (including working with more collaborators or "buddies" than the course deliverable specifies) according to the College Academic Honesty policy, regardless of intent, then it may be an academic dishonesty case, and it will be referred to the Associate Dean for Academic Affairs. I am required to make this report in every occurrence, so it is best to speak with me first if there are any questions about the policy or expectations. You should feel free to have these conversations with me anytime prior to making your submission without fear of penalty. Finally, aside from the collaboration policy here, it is expected that your work is your original work. You must cite any collaborations or references that you use. You may have a friend or relative with computing experience, but they should not do your assignments, labs, etc., for you.
Flexible Submission Policy
In the absence of accommodations arranged in advance with the instructor or college, all assignments are due at 10:59PM Eastern Time on the date(s) stated on the schedule. Assignments will be accepted without prior permission following this time with a points deduction of 4% per day if submitted before 10:59 PM Eastern Time on the day submitted. Each student will receive a total of 10 "slack days" for the semester with which to waive these grade reductions; for example, one assignment may be submitted 10 days late, or two assignments may be submitted 5 days late, with no grade reduction. Should an exemption to this policy be requested and granted, a 5% per day reduction will be applied. Extra credit will not be awarded for assignments submitted under the flexible submission policy. Students with accommodations will receive additional "slack days" as specified within the accommodations letter; however, some deliverables cannot be subject to accommodations due to the time-sensitive nature of the assignment (for example, group assignments, presentations, and course surveys). Students who add the class late shall receive additional slack days equal to the number of days between the start of classes and the first date that approval is given or that class is attended (whichever occurs first). Under no circumstances (including accommodations) can late work be accepted after the final class meeting, nor during final exams week, nor after the exam.Grade Posting Policy
Feedback and grades will be provided frequently, generally within one week of the due date of any deliverable. Inquiries seeking a change of grade must be made within 7 days of the posting of the grade in question, including the posting of a reduced grade for a missing submission. Final grades are due within 48 hours of the final exam (or last class scheduled meeting in a class with no final exam); grades are not subject to change (including a change from a posted grade to a grade of incomplete) once submitted to the college.Incomplete Policy
A grade of I may only be granted by permission of the Office of the Dean. A petition to the Office of the Dean will only be made upon written request by the student, including all information requested by the Office of the Dean. Requests for a grade of I will only be made in situations where such a request is warranted. Specifically, the student's grade must be passing at the time the request is made.Title IX
Title IX is a federal law, under which it is prohibited to discriminate, harass, or commit misconduct on the basis of gender or sex. The Title IX Coordinator is available to receive inquiries and to investigate allegations in this regard. As a professor, I am a mandatory reporter under Title IX, and am required to report disclosures made to me related to Title IX.Inclement Weather and Class Cancellation Policy
In the event that the College closes due to inclement weather or other circumstances, our in-person class sessions, student / office hours, labs, or other meetings will not be held. I will contact you regarding our plan with regard to rescheduling the class or the material, any assignments that are outstanding, and how we can move forward with the material (for example, any readings or remote discussions that we can apply). If necessary, I may schedule online virtual sessions in lieu of class sessions, and will contact you with information about how to participate in those. I will communicate this plan to the department so that it can be posted on my office door if it is feasible to do so. This policy and procedure will also apply in the event that the College remains open but travel conditions are hazardous or not otherwise conducive to holding class as normal. Should another exigent circumstance arise (for example, illness), I will follow this policy and procedure as well.Student Perception of Teaching Questionnaire (SPTQ)
I will be soliciting student feedback through the SPTQ and possibly through other forms of commentary. This feedback greatly assists me and the department as we develop our courses and overall curriculum for this program. This course has benefitted from the feedback of those students who took the course before you, and your feedback will help maintain and improve the course for those to follow. I strongly encourage you to participate in this important and valuable process.Syllabus Subject to Change
I will do my best to provide all relevant information about the course on this syllabus. Sometimes, exigent circumstances, the pace of the class, or other circumstances will warrant minor revisions to the syllabus. For example, inclement weather or other campus closure might affect the course schedule and assignment deadlines; in addition, I may find that the class benefits from spending more time on a particular topic, and adjust accordingly. Although I try to avoid rescheduling student / office hours, it may become necessary from time to time to accommodate other events in the College. Should any revisions be necessary, I commit to making any revisions in my estimation of the best interests of the class, and commit to communicating those changes to you as soon as I make them.Course Details
Welcome to CS170Q!