CS65 Intro to CS I

Course materials and notes for Professor Moore's CS65 Intro to CS I

Instructor:

Meredith Moore
Assistant Professor of Computer Science
325 Collier Scripps Hall
meredith.moore@drake.edu
More about Professor Moore

Teaching Assistant

Sigi Brock
sigi.brock@drake.edu

Office Hours

M / W : 11:00am - 12:00pm
T / R : 12:30pm - 2:00pm
Or by appointment
Schedule

Slack Workspace

We're using Slack to communicate this semester.
Go to Slack Workspace

CS Tutors:

Tutors are free and Zoom appointments can be made at the Tutoring Website

CS65: Intro to CS Spring 2022 Syllabus

This syllabus is subject to change throughout the semester. This page will be kept up to date.

Overview:

Welcome to CS65: Introduction to Computer Science! As the title suggests, this course is an introduction to the field of Computer Science (CS). Although most consider the terms “computer scientist” and “computer programmer” perfectly synonymous, the field is significantly broader than simply learning to write code. In reality, CS concerns the study of algorithms, which are step-by-step instructions to be executed by some actor, and of data structures, which are ways of representing information so that it can be efficiently processed by algorithms. Since algorithms and data structures are more general than just writing code, you may find that the skills you acquire in this course will apply in more situations than you expect.

By the end of this course, you will be able to:

  1. Understand the fundamentals of CS,
  2. Design, document, develop, test, and debug algorithms in the Python programming language,
  3. Recognize common data structures and how to use them to efficiently solve problems, and
  4. Solve computational problems by breaking them into manageable parts and synthesizing them into a coherent whole.

Instructor:

Meredith Moore
meredith.moore@drake.edu
325 Collier-Scrips (office)

Class Meeting Time and Place:

Monday and Wednesday:

Section Time Place
Section 0 12:30-1:45pm Collier Scripps 301
Section 1 2:00-3:15 pm Collier Scripps 301

As with all of Drake’s classes this semester, our first two weeks will be online. We will meet on Zoom for those meetings. Once we have completed the first two virtual weeks, we will return to in-person instruction. I record my lectures using Zoom and post the recording after the class. The Zoom link for the first two weeks of the course will be made public, but after that, I will use a different Zoom link (to encourage in-person attendance). If for some reason, you are unable to make the in-person class session, please email me and I will provide you with the zoom link for the day so you can attend class virtually. Please note I will expect you to be in attendance (virtual or in classroom) during the scheduled class times.

Office Hours

This semester, we will be using Calendly to schedule office hours. Feel free to grab more than one slot if you don’t think 15 minutes is enough time.

Monday Tuesday Wednesday Thursday Friday
11:00 - 12:00 12:30 - 2:00 11:00 - 12:00 12:30 - 2:00 email me if needed

If you have a question, please send me an email or a message via Slack. The above hours are times that I guarantee i will be available for a virtual/in-person meeting. I will likely be in my office during the day whenever I am not in class or in a meeting. To guarantee a time we can meet outside of my office hours, contact me via email or Slack and we will set up a time when both of us are avaible.

Text

There is no required textbook for the course. Assigned readings will be based on the free open-source textbook: Think Python (Second Edition)) by Allen B. Downey, 2015. Required readings from the above text will be posted on the blackboard website.

Prerequisites

Four years of high school mathematics or MATH 20.

As much of the study of computer science requires logical thinking, students exposed to four years of high school mathematics or college algebra (MATH 20)should have sufficient problem solving skills to succeed in this course.

Course Content:

The schedule for the course can be found on the course homepage. It will be kept as up to date as possible. Course Content very approximately in temporal order:

Course Communication:

We will be utilizing a combination of Slack, Email, and Blackboard for this course. The assignments will be posted to Blackboard and will be turned in using Blackboard. Should you have questions on an assignment, please either use Slack or Email.

Grading:

The following table shows the categories of graded items and how much weight they each carry towards your final course grade:

Graded Items Percentage
Homework Assignments 40%
Participation 5%
Labs 10%
Final Project 15%
Midterm Exam 15%
Final Exam 15%

Final grades will be awarded based on the following scale:

Percentage Grade
92.0-100 A
90.0-92.0 A-
88.0-90.0 B+
82.0-88.0 B
80.0-82.0 B-
78.0-80.0 C+
72.0-78.0 C
70.0-72.0 C-
68.0-70.0 D+
60.0-68.0 D
0.0-60.0 F

Percentages are not rounded when using this scheme, because this would be tantamount to moving all of the grade boundaries down by 0.5%.

Homework Assignments (40%)

Homework assignments are an important part of the course and constitute a large percentage of the final grade. It is imperative that students work on the material outside of class to solidify understanding and demonstrate mastery of the coursework. Homework assignments will consist of implementing algorithms and may involve traditional paper-and-pencil problems. Students who do not submit reasonable attempts at all of the homework assignments will not pass the course.

Participation (5%):

We will be using a technique called peer-instruction (PI). It goes something like this:

To keep track of your answers in this process, we will be using a tool called PollEverywhere. There is a small fee associated with PollEverywhere–you will be asked to pay the $13.99 and will be able to use PollEverywhere in your other classes for the year. Here is the link to register for PollEverywhere.

Your PollEverywhere answers will not be judged on correctness–we’re here to learn and will certainly make mistakes along the way. Instead, you will be given participation points for submitting your answers each day using PollEverywhere.

want to read more about Peer Instruction?

Labs (10%):

The in-person or class time meetings will involve many hands-on exercises (or “labs”) that will be done either individually or with a partner. The labs will be graded on a submitted (full credit) or not submitted (zero credit) basis. Keeping up with the content of the labs is an important component of the course as the labs will be foundational to the fundamental for the course.

Final Project (15%):

The course includes a substantial project that is due at the end of the semester. More details will be announced later in the semester. The project will also include a final demonstration of the project. These project demos will take place during our assigned final exam period:

Section Time Place
Section 0 Thu, May 12 12:00 – 1:50 pm TBD
Section 1 Thu, May 12 9:30 - 11:20 am TBD

Exams (30%):

There will betwo exams in this course, both worth 15% of your grade. The first exam will be a midterm, and the second will be a final exam. The tentative dates of these exams are:

Extra Credit

To encourage you to actively participate in Drake activities and to support your peers, you will receive 0.25% extra credit to your final grade for each instructor-approved activity that you attend (up to a maximum of 2%).

If you have an upcoming recital or any activity you’d like to invite your peers to, consider announcing it to the class. Your instructor will approve or disapprove posts on a case-by-case basis.

Note: To claim extra credit for attending an activity, send an email to your instructor with “Extra Credit” in the title and a brief description of what happened at the event.

Note: You will only receive extra credit for attending approved activities of your peers or general activities. You will not receive activities for going to your own recitals, for example.

Late Work Policy

Due dates for every assignment are provided on the course webpage as well as the course page in Blackboard. Unless otherwise stated, assignments are due on those days. However, I recognize that sometimes “life happens.” In these instances, you may use your allotted two flex days. These days allow you to submit an assignment up to two days late without penalty. You can use these days for any assignment and for any reason. You do not need to provide me with the reason: simply email me and tell me how many of your flex days you would like to use.

Once you’ve exhausted your flex days, then point deductions will occur for any assignment submitted after the deadline. An assignment submitted 24 hours of the due date will only be eligible for 90% of the maximum number of point allotted. Assignments submitted more than 24 hours after the due date will not be accepted. If you experience extenuating circumstances (e.g., you are hospitalized) that prohibit you from submitting your assignments on time, please let me know. I will evaluate these instances on a case-by-case basis.

Getting Help

There will be times in this class where you feel like you’re stuck–that’s perfectly okay and a big part of doing computer science. If you are stuck for longer than 30 minutes on one thing, please reach out and get help. Here are some things you can do to get unstuck:

Check out this page on how to get unstuck

Use Slack

If you have a question, don’t hesitate to post it on Slack. The #assignments channel is a great place to discuss assignment related questions and the #general channel is great for discussing any topic related to the class.

TIP: On Slack, you can tag me by adding @Meredith Moore to your message. This will notify me immediately of your post. You can also message me privately by sending me a Direct Message.

CS Tutors

Drake University offers free tutoring services for introductory computer science students. If you are interested in scheduling an individual tutoring appointment, visit the Tutoring Services page.

Academic Success Resources

Check out the Academic Success website. It includes a page for Skills for Success with excellent tips for management classwork. You may also find the following resources useful:

Collaboration Policy

The lab exercises are intended to be done in collaboration. The solutions to these in-class exercises should be developed amongst class partners and multiple names should be included in comments in the submitted code.

You are encouraged to work with other students on homework assignments; however, every student must implement program code, perform experiments, and write up the accompanying results separately (unless otherwise specified).

Sharing completed solutions on the homework assignments (verbally, physically, electronically, etc.) is not acceptable. If you work with someone, you must say so somewhere in your assignment, and you must affirm that you in fact worked together and that no completed solutions were shared. For instance, in the comments of a program or at the top of a written page, you must write something like:

“I worked on parts X and Y of this assignment with person Z. No completed solutions were shared.”

Academic Integrity

Students are encouraged to seek out resources for help in understanding concepts when completing coursework. However, there is a big difference between seeking outside resources for help in understanding and searching for solutions. All solutions prepared with the aid of any source, however minor, must specifically cite those sources and explain the relationship of the submitted solution to the source. All citations must include author names, titles, publication information, and links to electronic sources when they exist. For programming code, all such citations and explanations should be included with comments. When in doubt, be open and transparent about the use of sources. This will shift the issue away from a question of academic integrity penalties to a question of how many points to award for your contributions. A violation of the course’s collaboration policy will also be considered an academic integrity violation.

The minimum penalty for a first violation of academic integrity will be a forfeiture of all points on the entire assignment or exam in question. A second violation will result in a grade of ‘F’ for the course. All violations will be reported to the College of Arts and Sciences Dean’s office as explained in the Academic Integrity Policy.

Student Disability Services:

If you have a disability and require academic or physical accommodations in this course, please contact me and Student Disability Services (Michelle Laughlin, Director of Student Disability Services, at 2711835 or michelle.laughlin@drake.edu) in advance of the date the accommodations are needed. All requests for assistance must be received (at least) four full business days prior to the requested need.

CS Tutors

Drake University offers free tutoring services for introductory computer science students. If you are interested in scheduling an individual tutoring appointment, visit the Tutoring Services page on the Cowles Library website. To see what slots are available, scroll down to the Math Tutoring section to see what times are open. (Math and CS are combined into one tutoring schedule since it is one department.)

Covid-19 Course and University Policies:

Masks and Social Distancing

When we do meet in person, we will all wear masks to minimize the likelihood of the spread of the novel coronavirus. Doing so is not only a requirement in our class, but is also a campus-wide policy. I will ask those who choose not to wear a mask to leave the classroom and, following guidance from the Provost’s office, I will alert the dean of students’ office.

Instructions for Students who Test Positive

If you test positive for Covid-19 or have been exposed and need to isolate yourself, please send an email to dos@drake.edu from your Drake email account and include your full name and student ID along with information about your situation. College and schools’ deans’ offices will then contact your professors, who will work with you to provide fully virtual learning opportunities during your quarantine and/or recovery. If possible, however, please also alert me directly that you will begin attending virtually, and I will work with you to help you make the transition to that modality. You do not need to tell me why you need to move to a virtual experience.

Instructions for Students about Self-Monitoring and Experiencing Symptoms:

Please carefully monitor your own health and wellbeing throughout the semester, including frequently taking your own temperature. If you experience Covid-19 symptoms or a fever, even if you do not test positive, please do not come to an in-person class meeting. Fill out your information using the following Drake self-monitoring form.