Uploaded by Sophia Huang

CPSC 103 Syllabus 2019W1

advertisement

CPSC 103 Syllabus 2019W1

Introduction to Systematic Program Design

What is this Course About?

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.

Quick Facts About Class

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.

Inside This Syllabus

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

Meet your Course Staff

INSTRUCTORS

Steve Wolfman (Sections 101 and 102)

Office : ICCS 239

Office hours : TBA (see Canvas)

Email : wolf@cs.ubc.ca

COURSE COORDINATOR

Jessica Bosch

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).

TEACHING ASSISTANTS

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.

Course Goals

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.

Materials: What Do You Need?

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.

Learning Assessments (Overview)

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

Tests and Final Exam – 45%

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.

Pre-lecture assignments – 7%

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.

Tutorials – 14%

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.

Participation – 7%

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.

Code Review Assignments – 7%

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

Learning Assessments (Details)

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.)

Project – 20%

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

Tips for Success

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

Expectations and Policies

What We Expect From You

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.)

What You Can Expect From Us

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

Ethical Conduct: Practices and Policies

Don’t Cheat. Don’t Plagiarize. It’s Not Worth It.

Read on for Key Definitions, Potential Consequences, and How to Act Ethically

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.

Excerpt from the Computer Science

Department’s Official Statement on Academic

Misconduct

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

CPSC 103’s Policy on Academic Misconduct

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).

Why is Academic Misconduct Treated So

Harshly?

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.

Participating in the Academic Community

Ethically

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/

If you ever have any questions about whether you are allowed to use something in your assignments or project please see your

Instructor or Teaching Assistant before handing in your assignment. We are happy to help you learn how to participate ethically in our academic community.

CPSC 103

References

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

Acknowledgements and Copyright

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

Our Class Schedule

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

Download