CPSC 103 Syllabus 2019W1
When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem.
You will learn how to break down a large problem into wellstructured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites.
Classes are held Tuesdays and Thursdays; check the student service centre for your section’s time/location . Attendance is expected and is necessary for success .
We typically use
Tuesday for working together through sample problems and
Thursday for facilitated worksheet progress. Show respect for your fellow learners and course staff, including arriving on time and leaving after dismissed. You may choose to bring a computer; we encourage you to bring a computer to work on in-class exercises, but discourage its use for other tasks because of its tendency to side-track attention – yours and others (Fried, 2008; Sana, Weston, & Cepeda, 2013). You are also required to attend your registered tutorial section.
Course Goals
Materials: What do you need?
Learning Assessments (Overview, Details)
Tips for Success
Expectations
Ethical Conduct: Practices & Polices
References
Acknowledgements & Copyright
Our Course Schedule
1-2
2
2-3
4
5
6
7
7
8-9
Office : ICCS 239
Office hours : TBA (see Canvas)
Email : wolf@cs.ubc.ca
Email : cpsc103-admin@cs.ubc.ca
Please email cpsc103-admin@cs.ubc.ca
if your question is administrative in nature. Please use the course discussion forum on Piazza if you have a question about course content. That allows your fellow students to learn from your question and from our response.
If you have a question that is personal in nature and you wish to email your instructor directly, please include “CPSC 103” in the Subject line , use professional tone and style, and use your
UBC email account . Before emailing, please check with your class notes, syllabus, and classmates for an answer to your question.
Although we try to respond as quickly as possible, expect approximately 48 hours for a reply (excluding evenings and weekends).
TAs are here to help you learn and to help us evaluate your learning. They will teach tutorial sections, grade assignments and exams, hold office hours for you, and respond to questions on the course discussion board.
CPSC 103 employs a systematic approach to programming and is intended for non-computer-science-majors who want or need to learn how to program well. It is heavily based on
How to Design Programs (HtDP) by Felleisen, Findler, Flatt, and Krishnamurthi (htdp.org). The skills you learn in this course will directly translate to other programming languages and other domains. For example, past students of the systematic approach to programming have told us that it greatly increased their problem solving abilities.
1
CPSC 103 Syllabus 2019W1
This course was designed with specific goals in mind. If you are willing and able to meet the requirements, by the end of this course, you will be able to...
1.
write small programs that solve a problem in an academic discipline of your choice and are readable, well-organized, well-documented, and well-tested.
2.
write small programs for a reasonably complex task, where the ability to use the "one task - one function" rule can be demonstrated.
3.
design the data representation for a reasonably complex problem.
4.
describe the information encoded in given data.
5.
identify correspondences between a data definition and a program that operates on that data and be able to identify how potential changes to a data definition would affect a program.
6.
complete an appropriately-sized course project using the systematic approach from the course.
2
7.
effectively communicate the design of your course project using appropriate technical language via an academic poster and poster presentation.
Considering Withdrawing? If you wish to withdraw, you should check UBC’s Academic Year calendar that shows the latest dates for dropping the course with no mark on your transcript and withdrawing with a ‘W’ on your transcript.
1.
Required Readings/Videos
All are available as links on Canvas.
2.
Access to a computer
You may use your own computer or a lab computer in the tutorial rooms.
You must pass the project and one or both of Midterm #2 and the final exam to pass the course. (Students who fail Midterm #2 and the final or fail project receive as course grade the lower of their computed grade and 45%.)
Learning Appraisal
Midterm exams
Final exam
Pre-lecture assignments
Tutorial problems
Worksheets (Participation)
Code review assignments
Project
Project proposal
Project milestone
Project final submission
Poster presentation
Peer/TA evals of posters
Total
Points Typical Due Dates (see Canvas for exact dates)
15% Tue, Oct 15 (6:00-7:30pm)
Mon, Nov 18 (6:00-8:00pm)
30% TBA
7% Mondays at 10:00pm
14% Wednesdays at 10:00pm
7% Tuesdays at 9:00am (both sections)
7% Wednesdays at 10:00pm
1%
7%
6%
Tue, Oct 22 at 10:00pm
Tue, Nov 12 at 10:00pm
Wed, Nov 27 at 10:00pm
4%
2%
100%
During tutorials and scheduled sessions week of Nov 25-29
During poster presentations, due Mon, Dec 2, 10:00pm
CPSC 103 Syllabus 2019W1 3
The tests (7.5% each) and the final exam (30%) will require thorough understanding of course material, including the ability to solve problems that integrate skills and concepts learned across modules.
The final exam will be scheduled during the exam period
(Dec 3-18); do not book any trips for these dates. If you have 3 or more exams scheduled to start and finish within a 24 hour period, you may request to write the second exam on a different day. You must give the instructor of the second exam one month notice.
Each week you will be assigned pre-class work, generally on Canvas. It may include readings, solving problems, assessing peers’ problems, or other activities. You will need to complete the pre-lecture activities by the deadline listed on Canvas . Late pre-lecture assignments will not be graded.
The weekly tutorials will give you a hands-on opportunity to practice solving problems systematically. You will work on problems individually (but see the section on CPSC 103’s
Policy on Academic Misconduct below for how you can work with other students), assisted by the course staff.
Tutorial assignments will be collected on Canvas and graded by TAs. We will drop the lowest tutorial grade. In the case of unexcused and uncompleted tutorials, students will be assigned a 0.
In each class period, you will be assigned worksheets. You will convert your responses to a PDF and submit it on
Canvas. Worksheets are graded for participation: 2 marks for a thoughtful, complete response; 1 mark for a response that is not complete or does not demonstrate sufficient effort; and 0 marks for frivolous or missing responses. To earn the full 7% toward your course grade, earn at least
90% of the participation marks available during the term.
In each module you will complete a code review assignment on Canvas. This will allow you to learn from evaluating others’ work. Code reviews are commonly conducted in professional software development teams.
Code reviews will involve many judgment calls. To account for some subjectivity in code reviews, we add 10% points on top of any non-zero grade you earn. (You must earn
above 0% to get the extra points, and we go up to a maximum of 100%.) For example, if you earn 93% on the code review, you end up with 100% after we add 10% points. If you earn 1% on the code review, you end up with
11%. (Only the original grades will show on Canvas; we add points when computing final course grades.)
The purpose of this project is to give you an opportunity to apply what you are learning in class to a real project. You will write a program to read information from a file, represent it as data in your program , and design functions that allow you to answer interesting questions about the data. Your project must produce a graph or chart. You will report on your project in a professional poster format using
Jupyter notebook. A Teaching Assistant will grade your project proposal (1%), project milestone (7%), and completed project (6%). You will complete the milestone individually but may complete the remainder of your project with a partner who can present in the same poster session as you.
Submitting on-time is by far the best policy for your project, but see Canvas for the late policy for the milestone and final project submissions. (Other project elements are not accepted late.)
Tutorial Structure
Problem-Solving tutorials: Most of your tutorial meetings will focus on solving problems on your own or in small groups. You will each be required to submit a copy of your work and must clearly indicate any and all collaborators.
Project : You will present your project in the last tutorial.
(We may have other, optional venues to present projects.)
Communicating your Results
After completing a project, computer scientists, like all professionals, need to communicate their methods and findings to their colleagues. You will be asked to communicate your findings in poster form to be presented in the last two weeks of class.
POSTER SESSION (6%): presented in your tutorial . You will prepare a poster that summarizes your project. This kind of presentation is common at professional scientific conferences. During the poster session, you will be asked to evaluate your peers’ posters. Your own poster will be evaluated by roughly three peers as well as your Teaching
Assistant. More details about how to prepare for the
CPSC 103 poster and presentation, as well as how to evaluate others’ posters will be provided later in the term.
Syllabus 2019W1
Learning Tools to Investigate
We encourage you to take responsibility for your learning and check out what these resources might have to offer you.
TIME MANAGEMENT Search online for productivity and project management tools and apps (e.g., https://trello.com
, https://www.rescuetime.com/ , https://todoist.com
). Give yourself enough time for papers with http://assignmentcalculator.library.ubc.ca
, and master many other aspects of academic life http://learningcommons.ubc.ca/student-toolkits/
LEARNING COMMONS is UBC’s online hub for study and research support. This interactive website provides you with a wealth of academic resources, from tutoring and workshops to study groups and online technology tools. It also offers plenty of information on a variety of academic topics, and links to nearly all of the academic resources offered at UBC. Make the Learning Commons
(http://learningcommons.ubc.ca) your first stop for all things academic!
WRITING SKILLS The UBC Learning Commons also offers writing services .
PHYSICAL OR LEARNING DISABILITIES Our teaching team and UBC generally is committed to equal opportunity in education for all students. If you have a disability that affects your learning in the classroom or your performance on tests or exams, please contact the Centre for
Accessibility in Brock Hall, 1874 East Mall, Contact:
604.822.5844, https://students.ubc.ca/about-studentservices/centre-for-accessibility .
4
A Note About Reading
Reading the provided material outside of class and engaging in deliberate practice of systematic program design is essential for success in this course. This class will involve some lectures along with demonstrations, exercises, and discussions. Not all the material presented in the readings will be discussed in class, and vice versa.
Thus, both a careful attention to course material and consistent class attendance are highly recommended. My strong suggestion is to read each assigned reading before we discuss it in class so that you know what questions you want to ask and are best able to participate.
A Note About Studying
A recent literature review classified study techniques as having high, moderate, or low utility for remembering and using information (Dunlosky, Rawson, Marsh, Nathan, &
Willingham, 2013). If you don’t already, consider using some of these research-based strategies to study for this and other courses:
Practice tests , including self- tests
Distributed practice to spread out study over time
(rather than cramming)
Elaborative interrogation (explain why a concept is true)
Self-explanation (explain how new information relates to what you already know)
Interleaved practice that mixes around different material (rather than studying all of unit 1, then all of unit 2, sequentially, for example)
This literature review also revealed low utility for the following techniques. Researchers suggested avoiding them in favour of spending time more effectively on the strategies listed above. Read the article for more tips. x Summarizing x Highlighting/underlining x Keyword mnemonics and mental imagery to link with verbal material x Re-reading the text after having read it once
CPSC 103 Syllabus 2019W1 5
ATTEND CLASS Please come to every class, prepared to participate. Bring a pen and paper (in addition to a laptop, if you choose to bring one), and an open mind. If you miss class, you are responsible for obtaining notes and announcements. In your first tutorial, find a learning buddy you can go to for help catching up should you miss a class and exchange contact information.
PARTICIPATE Success in this class depends on your active participation. Class time is designed to mix lecture-based explanations of course material with demonstrations, problem-solving activities, pair and small group discussions, large group discussions, writing, and feedback
(see Michael, 2006 for a review of active learning’s effectiveness). We will ask you to do only those activities that we believe will help you learn. Come ready.
TREAT OTHERS RESPECTFULLY You are expected to treat all classmates, instructors, and Teaching Assistants, with respect both in and out of the classroom, face-to-face and in writing (e.g., on email). This includes arriving to class on time and minimizing distractions for other students.
ACT ETHICALLY You are responsible for your own learning.
Cheating of any kind will not be tolerated. See the Ethical
Conduct section for more information about plagiarism, exams, and ethical conduct.
COMPLETE ASSIGNMENTS ON TIME Late tutorial and code review submissions will not be accepted. Late project milestone and final submissions will lose 10% per day.
WRITE THE MIDTERM AND THE FINAL EXAM If you must miss the midterm due to an extenuating circumstance like severe illness, you must email cpsc103-admin@cs.ubc.ca
as soon as you are able and no later than 24 hours after the exam. If you miss the final exam due to an extenuating circumstance, you must contact your contact your Faculty's advising office (e.g., Arts or Science Advising) as soon as possible to request a deferred exam. We are not able to grant deferred standing.
SHARE CONSTRUCTIVE FEEDBACK We invite you to share your thoughts and suggestions with us, particularly about things we are able to change, and to be open to working together to make this course a positive experience for all of us.
RESPONSIBLY USE ELECTRONICS IN THE CLASSROOM We welcome and encourage use of laptops and other electronics to work along with lecture in class. However, we ask that you not use electronic devices for non-courserelated activities in the classroom. (Step out quietly if you urgently need to handle something on your device.)
BE AVAILABLE We are here to help you and your classmates in your choice to succeed. Visiting us in person or using the Piazza discussion board is typically more effective than email for clearing up questions. If our office hours absolutely cannot work for you, respectfully email us a few time and day options to make an appointment.
POST MATERIALS AND GRADES ONLINE Course materials and learning objectives will be available on our course
Canvas site. Your grades will also be available on canvas.ubc.ca.
CONSIDER RE-GRADE REQUESTS If you feel very strongly that a question on any exam or assignment was graded unfairly, you may email cpsc103-admin@cs.ubc.ca
. To qualify, you must send this email within one week of the grades being posted to students on Canvas. You must state exactly why you think you lost marks incorrectly. We will consider your request carefully and will respond via email within approximately one week of receiving it. Re-grading may result in an increase or decrease. That re-grade is final.
TAKE PHOTOGRAPHS To help document active learning, we may take some photographs throughout the term.
Please see one of us within the first two weeks if you have serious concerns about this.
ARRANGE FOR AND PROVIDE FEEDBACK Your peers will be an important source of feedback throughout this course. In addition, we will attempt to provide you with feedback on learning assessment as promptly and with as much detail as possible, given the size of our class. See us for additional feedback in person.
ACT RESPECTFULLY & ETHICALLY At all times, we aim to treat each of you with respect, and to make all course decisions with the highest ethical standards in mind. If you feel you are being treated unfairly or disrespected by us or a classmate, we invite you to talk to us so we can sort out the issue together. To be clear: such a discussion would not impact your grade.
CPSC 103 Syllabus 2019W1
The consequences for unethical conduct are more severe than you may think: you may fail the assignment or exam, you may fail the course, you may be expelled from
University, and unable to attend any other post-secondary institution in the future. Think about the long-term implications of that outcome in your life.
As Faculty and Teaching Assistants in the Department of
Computer Science, our primary instructional responsibility is the creation of an environment which enables our students to learn. Any such environment must be free from impediments to the exchange of thoughts and ideas among students. At the same time, we want to encourage students to explore their own abilities through critical thinking and by experimenting individually.
A secondary, though still important, responsibility is the accurate evaluation of each student in relation to their peers. This is only possible if all the students are working according to the same set of known guidelines regarding academic conduct.
Full policy available here: https://my.cs.ubc.ca/docs/collaboration-plagiarism
Each course activity must be completed individually by the student who submitted the work unless it is clearly labeled as a partner, or group activity. You may discuss general strategies for solving individual assignments but may not share any written solutions (including code). Similarly, you may discuss general strategies for solving partner or group activities with non-group-members but you may not share any written solutions. If you discuss general strategies with classmates who are not in your group, you must write a note at the top of your assignment clearly indicating who you collaborated with.
The midterms and final exam must be completed individually. No verbal or written communication is permitted.
In all cases of suspected academic misconduct, the parties involved will be pursued to the fullest extent dictated by the guidelines of the University. Strong evidence of
6 cheating or plagiarism may result in a zero credit for the work in question. According to the University Act (section
61), the President of UBC has the right to impose harsher penalties including (but not limited to) a failing grade for the course, suspension from the University, cancellation of scholarships, or a notation added to a student’s transcript.
For details on pertinent University policies and procedures, please see Chapter 5 in the UBC Calendar
(http://students.ubc.ca/calendar).
Some people don’t feel like cheating on a test or copying someone else’s assignment is a big deal. In the academic community—a community of which you are now a part— we deal in ideas . That’s our currency, our way of advancing knowledge. By representing others’ ideas in an honest way, we are (1) respecting the rules of this academic community, and (2) showcasing how our own novel ideas are distinct from but relate to their ideas. Welcome to the academic community. You are expected to act honestly and ethically, just like the rest of us.
What can you do to ensure you are acting ethically?
Recognize that all graded work in this course, unless otherwise specified, is to be original work done independently by the student(s) who submit the work.
VISIT LEARNING COMMONS’ GUIDE TO ACADEMIC
INTEGRITY UBC offers an online guide to preventing unintentional plagiarism. http://learningcommons.ubc.ca/resource-
Visit guides/avoiding-plagiarism/
CPSC 103
Throughout this syllabus we have cited many peer-reviewed academic journal articles and other works. Below is the complete reference list. We included them here for two reasons:
(1) to model responsible citation and (2) to show you some of the many ways we use research to guide the decisions we make in our teaching practice and course design. To be clear, these are not required reading, but you may find some of them interesting
(e.g., Dunlosky et al., 2013).
Babb, K. A., & Ross, C. (2009). The timing of online lecture slide availability and its effect on attendance, participation, and exam performance. Computers & Education, 52 ,
868-881. doi: 10.1016/j.compedu.2008.12.009
Ceynar Rosell, M., Beck, D. M., Luther, K. E., Goedert, K. M.,
Shore, W. L., & Anderson, D. D. (2006). The pedagogical value of experimental participation paired with course content. Teaching of Psychology, 32 , 95-99. doi:
10.1207/s15328023top3202_3
Dunlosky, J., Rawson, K. A., Marsh, E. J., Nathan, M. J., &
Willingham, D. T. (2013). Improving students’ learning with effective learning techniques: Promising directions from cognitive and educational psychology.
Psychological Science in the Public Interest, 14 , 4-58. doi:
10.1177/1529100612453266
Fink, L. D. (2003). Creating significant learning experiences: An integrated approach to designing college courses . San
Francisco, CA: Jossey-Bass.
Fried, C. B. (2008). In-class laptop use and its effects on student learning. Computers & Education, 50 , 906-914. doi:
10.1016/j.compedu.2006.09.006
Syllabus 2019W1 7
Kliegal, R., & Bates, D. (2011). International collaboration in psychology is on the rise. Scientometrics, 87 , 149-158. doi: 10.1007/s11192-010-0299-0
Michael, J. (2006). Where’s the evidence that active learning works? Advances in Physiology Education, 30 , 159-167. doi: 10.1152/advan.00053.2006
Rawn, C. D. (2014).
Psyc 217 Sections 001 and 002 Research
Methods in Psychology Course Syllabus. University of
British Columbia, Vancouver Canada. Retrieved from http://blogs.ubc.ca/catherinerawn
Roediger, H. L., III, & Karpicke, J. D. (2006). Test-enhanced learning: Taking memory tests improves long-term retention. Psychological Science, 17 , 249-255. doi:
10.1111/j.1467-9280.2006.01693.x
Sana, F., Weston, T., & Cepeda, N. J. (2013). Laptop multitasking hinders classroom learning for both users and nearby peers. Computers & Education, 62 , 24-31. doi:
10.1016/j.compedu.2012.10.003
The template for this syllabus, and much of the non-discipline-specific content in this syllabus was created by Dr. Catherine Rawn (Rawn, 2014).
CPSC 103 Introduction to Systematic Program Design
Course Syllabus 2018 by Meghan Allen is licensed under the Creative
Commons Attribution-NonCommercial-ShareAlike 4.0 International
License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/ .
Recommended APA-style citation:
Allen, Meghan. (2017). CPSC 103 Introduction to Systematic
Programming Design Course Syllabus . University of British Columbia,
Vancouver Canada .
CPSC 103 Syllabus 2019W1
8
The schedule may be modified during the semester. Any changes will be announced in class and posted on the Piazza discussion forum.
Students are responsible for being aware of these changes, whether or not they attended the class in which any changes were announced.
We describe the schedule in three ways: the typical flow of a module, the typical flow of a week, and the dates of our first lecture on a module plus other deadlines and dates of interest over the term.
A typical module begins with pre-class reading on Canvas—accompanied by code practice in Jupyter—culminating in a pre-class quiz due before your lecture section. In lecture, we discuss the pre-class quiz and interleave facilitated hands-on time on the module’s worksheet with whole class problem-solving. You then finish pretutorial work in preparation for facilitated hands-on problem-solving in your tutorial later that week. You work on your own time to complete remaining worksheet and tutorial problems. You also complete a code review assessing the quality of provided solutions to another problem on your own time. Worksheets are due shortly before the next lecture; tutorial problems and code reviews before the next tutorial. (Tutorial resubmissions are due about two weeks later.)
Here’s a compact view of a typical week’s work and deadlines:
Thu Mon
Pre-class quiz due
10pm
Tue
Previous worksheet due 9:00am
Lecture (usually: start a module with a new worksheet)
Wed
Tutorial/Code Review due 10pm
Lecture (usually: continue a module)
Thu tutorials (pretutorial work to be completed before your tutorial)
Fri
Fri tutorials (pretutorial work to be completed before your tutorial)
Here is a high-level, term-long schedule. Note that after Module 8, we will focus on project work.
Wk Date
1 Sep 2-6
2 Sep 9-13
3 Sep 16-20
4 Sep 23-27
Activities
Setup and introduction
Module 1 (Intro)
Module 2 (HtDF)
Module 3 (HtDD)
5 Sep 30-Oct 4 Module 4 (Compound)
6 Oct 7-11
7 Oct 14-18
8 Oct 21-25 Module 6 (One Task Per Function)
9 Oct 28-Nov 1 Module 7 (HtDAP)
10 Nov 4-8
11 Nov 11-15
Module 5 (Arbitrary-Sized)
Module 5 (Arbitrary-Sized, cont’d)
Module 7 (HtDAP, cont'd)
Module 8 (Visualization)
12 Nov 18-22 Project Work
13 Nov 25-29 Course Review and Project Presentations
Special Notes
Tue lecture cancelled for Imagine
Midterm #1: Tue, Oct 15
Project Proposal: Tue, Oct 22
Project Milestone: Tue, Nov 12
Midterm #2: Mon, Nov 18
Project Final Submission: Wed, Nov 27
Last Day of Classes: Fri, Nov 29