CMU 15-110 Syllabus
Spring 2019

Previous
Version
See 15-110-f18.
Description A course in fundamental computing principles for students with minimal or no computing background. Programming constructs: sequencing, selection, iteration, and recursion. Data organization: arrays and lists. Use of abstraction in computing: data representation, computer organization, computer networks, functional decomposition, and application programming interfaces. Use of computational principles in problem-solving: divide and conquer, randomness, and concurrency. Classification of computational problems based on complexity, non-computable functions, and using heuristics to find reasonable solutions to complex problems. Social, ethical and legal issues associated with the development of new computational artifacts will also be discussed.
Course Goals
  • To achieve a broad understanding of:
    • what Computer Science is and to be conversant in a broad variety of CS topics (that is, to exhibit CS literacy);
    • how CS techniques can positively impact non-CS majors; and
    • what coding is and how it can be broadly used even by non-experts.
  • To achieve sufficient coding skills to:
    • read, understand, and modify existing code; and
    • solve basic problems by writing, testing, and debugging code.
Topic List
and Schedule
See the topic list and schedule here (includes schedule, notes, video mini-lectures, homeworks, quizzes, and tests).
Office Hours:

Instructor Office Hours:
     David Kosbie (koz): GHC 5001

  • Mon 1:30-2:30
  • Wed 4:00-5:00
  • Fri 1:30-2:30
  • Or by appointment
     Mark Stehlik (mjs): GHC 6205
  • Mon 5:30-6:30
  • Wed 1:30-2:30
  • Fri 4:30-5:30
  • Or by appointment
Head TA Office Hours:
    
Amy Shan (cs1): by appointment

Associate Head TA Office Hours:
    
Freda Ding (wenxind): by appointment
     Rebecca Hong (rzh1): by appointment

TA Office Hours
Mon Tue Wed Thu Fri (*) Sat (*) Sun (*)
6pm-8pm 6pm-8pm 6pm-7pm 6pm-7pm 6pm-7pm (*) 6pm-7pm (*) 6pm-8pm (*)
All 110 TA OH are in GHC 5208
(*) Note: unless otherwise posted, TA's will not have OH from Fri-Sun on the weekend after a scheduled quiz or exam.

Piazza Virtual Office Hours:
   * Daily (7 days/wk):  6pm - 10pm (on most days)

Academic Development Walk-in Tutoring:
This is a great resource provided not by 15-110 but rather by Academic Development in support of 15-110. Dates/Times TBD.
Schedule
of Classes:
  Days Lecturer / TA's Time Room
Lecture 1 MWF David Kosbie (koz) 2:30pm - 3:20pm DH 2210
    Section A R Emily (eding), Tate (tmauzy) 9:30am - 10:20am GHC 5207
    Section B R Brittney (bsidwell), Naviya (nsingla) 10:30am - 11:20am GHC 5207
    Section C R Claire (ccheongu), Jessica (jiangxul) 11:30am - 12:20pm GHC 5207
    Section D R Nicole (nnang), Rachel (rachelt1) 12:30pm - 1:20pm GHC 5207
    Section E R Harshini (hmalli), Vaheeshta (vmehrsha) 1:30pm - 2:20pm GHC 5207
    Section F R Ellie (ela), Cheryl (cherylc) 2:30pm - 3:20pm GHC 5207
    Section G R Gayatri (gshandar), Vaishnav (vbalaji1) 3:30pm - 4:20pm GHC 5207
Lecture 2 MWF Mark Stehlik (mjs) 3:30pm - 4:20pm DH 2210
    Section H R Rishab (rtn), Vishal (vbaskar) 9:30am - 10:20am GHC 5210
    Section I R Elyana (erhurst), Daniel (seungwom) 10:30am - 11:20am GHC 5210
    Section K R Alyssa (akbrandt), Jonan (jseeley) 12:30pm - 1:20pm GHC 5210
    Section L R Tina (cchou1), Trevor (tarussel) 1:30pm - 2:20pm GHC 5210
    Section N R Dom (djohnsto), Rishabh (rishabhc) 3:30pm - 4:20pm GHC 5210
Required
Textbooks:
None.
Optional
Textbooks
and
Online
Resources:
Required
Software:
Every required software package we use is available for free on the web. This includes:
  • Python version 3.x (3.6 or later), which can be freely downloaded from python.org.
  • We may also use Brython, which is a version of Python that runs in web browsers.
  • We will use pyzo, a free IDE that is very well-suited for an introductory CS course. Everyone will be expected to install pyzo on their laptops. Also, pyzo is installed on all the computers in the GHC and other campus clusters.
  • We will also use one or more free IDE's (code editors) and other free software packages.
Course
Requirements:
Participation in this course is required and consists of the following activities:
  • Attending and participating in all the lectures, recitations, and any other course-related activities.
  • Reading the printed and online notes and other assigned readings.
  • Carrying out all the homework assignments with earnest effort.
  • Taking all the quizzes, midterms, and final.
Attendance is required (if not always strictly recorded). Repeated failure to attend lectures or recitations may result in a lowered semester grade regardless of your numeric average. You will be responsible for all materials presented in lectures and recitations. You should not expect that all lecture or recitation materials will be given to you in written form (including the online class notes we provide). Note that missed quizzes and tests may not be made up in general (though certain exceptions are permitted -- see the relevant sections below).

Any material covered in lecture, in recitation, in assigned readings, or in homework assignments may be included in any future homework assignment, quiz, or test.
Grading:
 Course Component    Weight 
Homeworks 30%
Quizzes 15%
Midterm Exam 25%
Final Exam 30%

Each homework, quiz, midterm, and final will be graded on a standard scale:
   A: 90 - 100
   B: 80 - 89
   C: 70 - 79
   D: 60 - 69
   R:  0 - 59

Dropping Lowest Grades:
The lowest homework and the lowest quiz will each be dropped and will not count towards semester grades.

Grading Correction Requests:
We generally will not regrade work, but we are happy to fix any outright errors in grading. If you think there is an error in grading, you need to submit your Grading Correction Request via email to one of the Lead TA's (Amy, Freda, or Rebecca) within one week of receiving your graded homework or quiz, or within two weeks of receiving your graded midterm exam. Please include a scanned copy of your graded work (the part that you suspect contains the grading error) as an attachment to that email.
Exams
and
Quizzes:
Final Exam:
There will be a standard 3-hour final exam, weighted as indicated above, during the final exam period at the end of the semester.

Midterm Test:
There will be one midterm exam, weighted as indicated above, given in class as noted in the course schedule.

Quizzes:
Quizzes will be given about once every two weeks, generally in lecture on Friday. Quizzes can be comprehensive, but they will generally cover material from the unit in which they occur.

Extended-Time Policy:
We gladly accommodate students with university-approved extended time (as approved by the Office of Disability Resources (ODR)). We will proctor all extended-time quizzes at the same time as they are given in lecture, however at a different location: in Wean 5316, except for the quiz on Wed 10-Apr (just before Carnival), which will be in GHC 6501.

ODR will proctor all extended-time midterm and final exams. Students should arrange an exam time with ODR starting no sooner than 2:30pm on the date of the midterm or final. Important: to obtain extended-time, you must attend the extended-time quiz or exam and not the normal-duration quiz or exam. You do have the option of attending the normal-duration quiz or exam, but then you will have to complete it in the assigned time (without extended-time). If you are attending lecture or recitation and a quiz is commencing that you have already completed, you may remain in the room and work quietly on other materials or you may leave the room for the duration of the quiz (your choice).

Late Policy:
No late / make-up quizzes or tests will be administered, except in the case of medical or family emergencies or other university-approved absences. For qualifying missed quizzes, students should obtain instructor approval before missing the quiz. Students may then make-up missed quizzes by attending faculty office hours up until 4 days following the quiz. Note that at the instructor's discretion, make-up quizzes may instead simply be marked as "excused" in the gradebook and hence not affect the semester grade.

Homework
Deductions:
Homework Grace Days:
Homework is due at a specified time and date. However, the first 2 times you miss the deadline (by even one minute, according to Autolab's clock), you may use a single "Grace Day" for that assignment, so that week's homework may be submitted up to 24 hours late without any penalty. Note: you do not request grace days -- if you have any grace days left to use, they are applied automatically by Autolab when you submit a hw within 24 hours after the regular deadline.

Late Homework:
Once you have used your 2 Grace Days, no future homeworks can be submitted late, except in the case of extensions (see below).

Homework Extensions:
Students who have medical or family emergencies or other pre-arranged university-approved absences (such as for multi-day athletic or academic trips) may request an extension from the course faculty.

Homework Formatting Errors:
Misformatted homework in general cannot be graded by our autograder, and as such may receive 0 points. Thus, be sure to submit your homework early -- you can submit repeatedly, we only grade the last submission -- to be sure you do not have obvious formatting errors.

Show Your Work:
Some homework assignments, and most quizzes and tests, will include some written work (meaning: work that is not performed with access to Python or an IDE or a calculator (unless otherwise noted), whether or not it involves programming). In order to receive credit for these problems, you must show your work. Correct answers without supporting documentation will not be given full credit. Some questions may not require work to be shown (e.g.: "Name three software companies in Silicon Valley"), but most questions assuredly do. When in doubt, show your work.
Cheating
and
Collaboration:
Solo Homework Policy:

Note: the policies below in no way limit students working with the course staff (TA's) and faculty. Students are always encouraged to attend office hours and to make private (just visible by course staff and faculty, but not other students) piazza posts. This applies equally to solo homeworks -- students can always get help, 7 days a week, from the course staff and faculty on anything course related.

Unless otherwise noted as collaborative, all homework in this course is solo. For all solo homeworks, or solo portions of homeworks, students must do the work entirely on their own. Students may not collaborate in any way with each other or with anyone else in person or online or electronically or or any other way. This explicitly excludes discussing any aspect of the solo homework, sharing any part of solo homework, obtaining or looking at any part of anyone else's solo homework, viewing or copying any part of a solo homework, letting someone view or copy any part of your solo homework, posting questions online about the solo homework, helping each other debug solo homework, etc, etc, etc. 100% of all work on solo homeworks must be done entirely alone.

Of course, you are never really alone, since the course staff and faculty are here for you, with in-person and piazza-based help available 7 days a week. You are strongly encouraged to get help from us on your solo homeworks, or for any other course-related questions you may have.

Also, if you find a reference (say, in an optional textbook or some online source) that contains code or a written solution that is identical or overtly similar to an assigned problem, then you are required to not look at that code or written solution! You may still refer to supporting figures and explanatory text, but you may not look at or copy the solution.

Collaborative Homework Policy:

Note that some assignments (or portions thereof) will be explicitly marked as collaborative. In those (and only those) assignments, you must work with the other students on your team, even writing code together, and certainly debugging each other's code. However, you may only work with your approved team members -- the restrictions for solo homeworks apply here, too, for everyone who is not on your team. Also, even when working on an approved team, you absolutely may not copy solutions from anyone or anywhere. In all cases, you must be intellectually involved in the authoring of everything you submit.

Retaking Course / Reusing Prior Material Policy:

If you are repeating 110, your prior work in this course is treated just as anyone else's work -- that is, you may not consult it. This is to promote the best possible learning, and using your prior answers will only hurt in that regard. So do not refer to your prior work, and solve everything from scratch. This will result in your best learning experience.

Autograder / Decompiling Policy:

Any attempt to decompile solutions, or object code that may help produce solutions, or in any way to extract solutions from the autograder, or to "hack" the autograder in any way, will result in your failing the course.

Plagiarism Detector Policy:

In addition to manual checks on homework and exam submissions, we will also routinely use an automated plagiarism detector. Here is a video demonstrating how it works (AVI or MP4).

Consequences:

Homeworks or portions thereof that are deemed overly similar (as opposed to mostly identical) will face these consequences:
  • 1st event: no penalty (just a warning).
  • 2nd event: will be treated like a cheating violation, which will generally result in letter-grade drop at the semester and a letter to the Dean of Student Affairs.
  • 3nd event: fail the course and another letter to the Dean of Student Affairs.
By contrast, homeworks or portions thereof that are mostly identical (even if they were edited and are somewhat different) are not "overly similar", but are an immediate cheating violation, and will face these consequences:
  • 1st event: letter-grade drop at the semester and a letter to the Dean of Student Affairs
  • 2nd event: fail the course and another letter to the Dean of Student Affairs
Finally, regarding proctored events (quizzes, exams): any copying or collaboration of any kind (no matter how seemingly minor) on any proctored event will face these consequences:
  • 1st event: fail the course and a letter to the Dean of Student Affairs
These are the general rules, and while we do not anticipate exceptions, we respect that they may occur, and so the faculty reserve the right to make appropriate adjustments as the particulars of any case require.

Online "Help" Policy:

There are many online 'help' resources, and while some may be legitimate, many are basically providing a homework outsourcing service, or otherwise violating the spirit (and often also the letter) of our course policies on cheating and collaboration. Importantly, we also cannot control the quality of 'help' students receive from such sources, and experience indicates many 'answers' from such sources are of very low quality (presumably in part as these are not always supplied by CMU Teaching Assistants or other similarly-qualified tutors). Finally, given the truly extensive support this course provides through daily office hours, private and small-group tutoring, email-based help, collaborative assignments, and so forth, not to mention the support of the broader CMU community of learners, there is no compelling reason students should need any external sources (except, presumably, to obtain assistance in violation of course policies). AND SO... Students may not post any course content, nor any questions related to any assigned material, to any online venue. Doing so may result in failing the course on the first offense.
Classroom Recording (audio or video): Students may not record lectures or recitations without explicit permission in writing from the instructor. Violations will result in your failing the course. Exceptions will be granted in accordance with university guidelines for accessibility concerns, but even then such recordings may not be shared publicly or privately and must be deleted at the end of the semester.

Electronics: Students may not use any electronic devices in lecture (no cell phones, laptops, iPads, iPods, iWhatevers, etc) without explicit permission in writing from the instructor. Students are expected to take notes, but to do so manually (pen and paper).
Well-being &
Happiness
We care very much about your well-being and happiness. Yes, CMU students (and faculty) work hard, sometimes very hard. But we must keep our balance and always attend to our well-being and happiness. That comes first, academics follow. So be sure to get enough sleep, eat right, exercise regularly, and attend to your well-being and happiness. Here is a list of ideas that might help.

In any case, know that we DO take your well-being seriously. This course can be stressful, but we regularly take measures (mostly based on very helpful student feedback) to reduce that stress as much as possible. And we always welcome your feedback, if you have ideas on how we can improve on this (or any other) front.

Finally, if you are feeling overly stressed, or anxious, or unhappy about your performance or your general experience in this course, please do come talk to us. We will listen. We are here for you and we will try to help.

Addendum: Here is a great two-page one-stop-shopping summary of many CMU Student Support Services.