T-Th 9:05
T-Th 11:15
in Olin 155

CS 1110: Introduction to Computing Using Python

Spring 2018


Prof. Anne Bracy, 452 Gates Hall, cs1110-prof@cornell.edu

Prof. Lillian Lee, 419 Gates Hall, cs1110-prof@cornell.edu


Emergency contact number: to contact "anyone in charge" about a matter affecting more than you (and your group), email cs1110-staff@cornell.edu, which reaches the TAs and supervising consultants as well as the instructors and administrative assistant. For example, use this email if there aren't any staff members at a scheduled office hour.

Latest Announcements

April 19th: A4 map_people_to_positions clarification.

When we say, "The value for a given netid: list of Positions held by that netid, no repeats" this means only for those Positions that are subordinate to the root or (added Thu 1:25pm) are the root Position itself.

April 18th: Prelim 2 complete study guide now posted; A3 grades released.

The complete Prelim 2 study guide has now been posted to the Exams page, with updates marked in orange. A3 grades and grader feedback have been released on CMS.

April 17th: Updates to A4.

  • Clarification to map_people_to_positions: do not include any keys that are not netids in your returned Dictionary; there should be no key entry representing vacant or non-specified.
  • Bug fix to example: Comment out lines 27-28 in example_chart_scraggly.py (should not be appending) if they aren't already commented out.
  • Beautification: if, when you draw org charts, you don't get arrow-heads but skinny black rectangles, you may want to update your networkx version via, at the command line, pip install --upgrade networkx.

April 16th: The solutions version to A3's a3.py has been posted.

See the Assignments page.

April 12th: The optional recursion sessions will be Videonoted.

April 12th: Version 2 of the A4 Phase 2 handout: visualization of example added

The A4 Phase 2 handout has been updated to add an appendix with a visualization of one of the examples we gave you for testing. This version of the handout has "Version 2, April 12, 2018: added appendix" just under the title.

April 12th: We are offering optional recursion-problem solving sessions the week of Sun April 15.

We have scheduled completely optional (and identical) sessions designed to give students more practice with recursion.

Materials will be posted online afterwards and we are hoping that Videonote can be arranged, to accommodate those who would have wanted to attend but couldn't.

Format: short lecture on recursion by one of the course staff, followed by group activities and/or problem solving sessions where we will be giving you questions to solve, and then explain the problems afterwards.

  • Sunday, April 15th, 4:00 pm in Gates 310
  • Wednesday, April 18th, 4:30 pm in Gates 114
  • Friday, April 20th, 3:30 pm in Gates 310

Course Description

CS 1110: Introduction to Computing using Python            Fall, spring, summer. 4 credits.
Assumes basic high school mathematics (no calculus) but no programming experience.

Programming and problem solving using Python. Emphasizes principles of software development, style, and testing. Topics include procedures and functions, iteration, recursion, arrays and vectors, strings, an operational model of procedure and function calls, algorithms, exceptions, object-oriented programming, and GUIs (graphical user interfaces). Weekly labs provide guided practice on the computer, with staff present to help. Assignments may use graphics and GUIs to help develop fluency and understanding.

Permission Note: Students may not enroll in CS 1110 if they have taken or are co-enrolled in CS 2110/ENGRD 2110, or CS 2112, or have taken or are co-enrolled in a course offered or cross-listed with a CS course numbered 3000 or above.. Students who have affiliated with the computer-science major may not enroll.

Forbidden Overlap: Due to a partial overlap in content, students will receive 6 credits instead of 8 if they take CS 1110 and one of the following: CS 1112, CS 1114, CS 1115, BEE 1510, INFO 1100.

Expected Outcomes

  1. Be fluent in the use of procedural statements — assignments, conditional statements, loops, method calls — and arrays. Be able to design, code, and test small Python programs that meet requirements expressed in English. This includes a basic understanding of top-down design.
  2. Understand the concepts of object-oriented programming as used in Python: classes, subclasses, properties, inheritance, and overriding.
  3. Have knowledge of basic searching and sorting algorithms. Have knowledge of the basics of vector computation.

For more information on the course, see the syllabet (ABET syllabus).

Course Material by: E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner, C. Van Loan, W. White