Fall 2021 Syllabus
- It is an exciting time to be in computing. Class personnel look forward to introducing you to it, so that you can help make the world a better place.
Course Mottos
- We learn best, when we must invent. — Jean Piaget
Incredibly important — course goals
- To develop computational thinking reasoning abilities and digital problem-solving skills so that you can better accomplish your life goals. Digital reasoning will be expressed using the Python programming language.
Amusingly important
- Watch the movie What about Bob?. CS 1112 pedagogical strategy is based on the movie.
Utter importance
- The mantra of our time is that change abounds — information and digital technologies are continually transforming our society. All fields of endeavor rely upon these technological advances for their own progress.
- The concepts, materials, and skills that you you learn in this class will give you the ability to take problem in your chosen area and design an algorithmic solution, and if appropriate a program to help you work and think more quickly, easily, and reliably.
Most important — We are UVA!
- Our University is built on the richness of our differences and recognizes that everyone is created equal and entitled to equal rights, dignity, and respect. We must repudiate all that violate these principles through hate and violence. Power-based personal violence can not be tolerated.
- I and all course personnel are deeply committed to our university principles, and seek to make our class welcoming and safe to all.
- In fact, everyone has a responsibility to do their part to maintain a safe community on Grounds. If you or someone you know has been affected by power-based personal violence or has their civil rights impeded, reporting options and resources available at the Office for Equal Opportunity and Rights.
- As such, everyone is to treat everyone with respect at all times. Violations can result in withdrawal from the course.
Prerequisites
- No prior programming experience
- Committed to be daily, active participants
Formal objectives
- Exercise and improve problem solving skills
- Introduce computing fundamentals and an appreciation for computational thinking
- Develop a mental model of a computer and network behavior
- Impart understanding of the basic principles and concepts of object-oriented design and programming
- Introduce important computing ideas and principles
Course acquisition (learning outcome)
- Can use, develop and test interesting software that interacts with users, file systems, and the world-wide-web
Principles
- To participate fully in every class meeting
- When possible to do with honor, help others learn and improve
- When there is doubt about honorability, ask before doing
- All assignments and exams are pledged
- If something is awry, let us know
- Get help before succumbing to frustration
Reading material
- Our definition of computational thinking comes from Jan Cuny, William Snyder, and Jeannette Wing (see paper).
- Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent.
- For people who can handle an ebook consider The Coder's Apprenctice by Pieter Spronck. This resource considers many of the topics we will explore in this course, and often in the order we will explore them.
- For people who require a physical book, consider Starting Out with Python 3rd Edition by Tony Gaddis (ISBN: 9780133582734). The book is not required, and no homework will be assigned from it. What the book provides is a good reference to the planned course topics. The book is no substitute to being an active note-taking, question-asking class participant.
- There are also many freely available Python resources that we will make use of this semester.
- One such resource is my Python Chrestomathhics. It is a work in progress.
- Another such resource is the Hands-on Python Tutorial by Andrew N. Harrington. This resource considers many of the topics we will explore in this course, and often in the order we will explore them.
- Another resource is Automate the Boring Stuff with Python by Al Sweigart. This resource also considers many of the topics we will explore in this course. Something the instructors particularly like are the case studies Sweigart presents.
- The University makes available through its Virgo library portal are Python ebooks containing more info on Python than we will ever need. One such book is Learning Python by Mark Lutz.
Special circumstances — one-time, occassional, and ongoing
- Course personnel would like to see everybody succeeed. Students with medical issues or learning needs that might require support or accommodations please see me the first week of the semester so that the right arrangements can be made. You should also contact SDAC. This University resource has helped many students in the past to be more effective. Your tuition and fees are helping to support the center, so make use of it as appropriate. If SDAC has already approved a plan for you, I would appreciate you filling out a course form for me to give me details.
- Students with a priori constraints (e.g., athletics, performances, conferences) please communicate them with me at the start of the semester.
- Students who wish to request academic accommodation for a religious observance should first see me and then submit their request. Students with questions or concerns about accommodations for religious observance or religious beliefs should contact the EOCR office.
- Students with emergencies must indicate them as soon as possible to the instructor and to their undergraduate dean’s office. The instructor will react appropriately.
Attendance
- Everyone is expected to attend all classes and give each class their full attention.
- Serious illness or death within your family, religious holidays and participation in field trips and athletic contests are all understandable reasons for missing class.
Outside materials
- Code or answers taken or adapted from sources outside the class is not allowed.
Participation
- Some assignments will be group efforts. There will be a component of the grading that measures participation. Failure to be an active, meeting-attending, contributing group member will result in a zero for the assignment.
Tentative assessment
- Assignments: 16%
- Testing: 84%
- Test 1: 33% (TBD)
- Test 2: 33% (TBD)
- Test 3: 18% (December 10 @ 7:00 PM)
Grades
- The Computer Science Department has set grading guidelines. They are as follows:
- “A” is used for students who demonstrate mastery of all learning objectives. An “A” should be seen as a recommendation that the student would likely do well in areas that depend on these objectives in the future.
- “B” is used for students who demonstrate competence in all significant learning objectives. A “B” should be seen as an acknowledgement that the student would be able to do well in areas that depend on these objectives in the future, but that their learning was incomplete; they are encouraged to review and improve in this topical area if it is a significant part of their future plans.
- “C” is used for students who demonstrate sufficient competence in enough of the learning objectives that subsequent work can be contemplated. A “C” should be seen as a caution that some aspects of the course seem to be missing or misunderstood and that future efforts in areas that depend on these objectives are likely to be challenging unless those gaps are first filled.
- “D” is used for students who demonstrate minimal competence in learning objectives, but not enough to recommend further studies or activities in related areas. A “D” should be seen as a prediction that future efforts in areas that depend on these objectives are unlikely to be successful unless the course that gave the “D” is first retaken.
- “F” is used for students who failed to demonstrate minimal competence in learning objectives. An “F” should be seen as indicating that future efforts in areas that depend on these objectives should not be undertaken without first retaking the course that gave the “F”.
- Misconduct or lack of professionalism may result in a lower grade than demonstrated competence would otherwise indicate. The scope and nature of such reductions, if any, may be determined independently for each course offering.
- The historic CS 1112 grading scale is below. Rounding will be limited to students with frequent class participation
A+ 100 A 95 - 99 A- 90 - 94 B+ 87 - 89 B 83 - 86 B- 80 - 82 C+ 77 - 79 C 73 - 76 C- 70 - 72 D+ 67 - 69 D 63 - 66 D- 60 - 62 F 0 - 59
- Grades that are C- or better correspond to CR
- Grades that are some of D correspond to GR
- Failing grades correspond to NC
Honor
- This class is built around all of us actively and honorably participating throughout the course. The course is dependent upon our community of trust and relies upon all class members to be faithful to it. Therefore, all assignments and exams are to be pledged.
- That said we do encourage the discussion of ideas. Collaboration in the form of common discussion is an effective learning practice. One person sharing an assignment or test solution with another would not be collaboration and is not permitted.
- That students follow class principles is what I truly expect will occur. Because there have been past exceptions to this expectation, the following notifications are necessary.
- Using solutions or others work in whole or in part from current or previous semesters or outside repositories is a violation of course principles. In particular, code or answers taken or adapted from sources outside our class is a violation of course principles.
- For individual-designated problems or exercises copying, sharing, or using improper resources is a violation of course principles.
- For multi-person-designated problems or exercises, copying, sharing, or using improper resources outside of one's group is a violation of course principles.
- Please be aware that there are sophisticated digital tools that the Computer Science department uses for analyzing solutions to ensure honorable efforts. These tools can compare solutions to those of current or prior semesters, as well as, external repositories.
- A violation of course pledge or principles can result in course dismissal, failing, and referral to the Honor Committee.
- Consider that homework is only worth 18% of your grade and there will be approximately thirty assignments. Strategic thinking here indicates that the downside penalties makes violations not worthwhile. Because test violations will result in maximum penalty, strategic thinking indicates again that the downside penalties makes violations not worthwhile.
Recording class sessions
- All classes will be recorded and made available to class members.
- Students are not allowed to record class meetings unless there is a specific SDAC accommodation.
Living document
- This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.