Você está na página 1de 7

CMSC 12100

Computer Science with Applications 1


Autumn 2014

Department of Computer Science


University of Chicago

Section 1 : MWF 9:30-10:20am (Eckhart 133)


Section 2 : MWF 10:30-11:20am (Ryerson 251)
Section 3 : MWF 1:30-2:20pm (Ryerson 251)
Section 4 : MWF 9:30-10:20am (Stuart 104)

Instructors

Anne Rogers Borja Sotomayor


Section 3,4 Section 1
amr@cs.uchicago.edu borja@cs.uchicago.edu
Matthew Wachs
Section 2
mwachs@cs.uchicago.edu

Teaching Assistants
Gustav Larsson Hannah Morgan
Lab #10: 9:00-10:20am, CAPP Lab: 1:30-2:50pm Lab #1: 9:00-10:20am, Lab #2: 10:30-11:50am,
Lab #9: 12:00-1:20pm

Jiajun Shen Qinqing Zheng


Lab #3: 10:30-11:50am, Lab #6: 3:00-4:20pm, Lab #4: 12:00-1:20pm, Lab #5: 1:30-2:50pm, Lab
Lab #8: 4:30-5:50pm #7: 3:00-4:20pm

Rida Assaf Pramod Mudrakarta


Lab #11: 4:30-5:50pm

Contents of this Document

Course description. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Course organization. . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Grading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Policy on academic honesty . . . . . . . . . . . . . . . . . . . . . 4
Asking questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Link round-up. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Website:
http://www.classes.cs.uchicago.edu/archive/2014/fall/12100-1/
Course description

This course is the first in a three-quarter sequence that teaches computational thinking and skills to
students in the sciences, mathematics, economics, etc. Lectures cover topics in (1) Programming,
such as recursion, abstract data types, and processing data, (2) Computer Science, such as clustering
methods, event-driven simulation, and theory of computation, and to a lesser extent (3) Numerical
Computation, such as approximating functions and their derivatives and integrals. Applications
and datasets from a wide variety of fields serve both as examples in lectures and as the basis for
programming assignments. In recent offerings, students have written programs to evaluate betting
strategies, determine the number of voting machines needed at a polling place, and predict the size
of extinct marsupials. Students will learn Java and Python in this course.
Placement into MATH 15200 or higher, or instructor’s consent, is a prerequisite for taking this
course.

Course organization

All sections of the course meet three times a week for lectures, and once a week for labs. Labs are
not graded, but attendance is strongly encouraged. Most of the course work revolves around seven
programming assignments, although written assignments are also given in the first few weeks of the
course and again when Python is introduced. There will be two exams, in fifth week and in tenth
week.
The course calendar, including the contents of each lecture and programming assignment due
dates, is shown in the table at the end of this document.

Written assignments
During the first few weeks of the course and then again during weeks six and eight, we will assign
simple written problems at the end of each lecture that will be due either at the next lecture or
within a few days. These assignments are intended to reinforce the lecture material and should
take roughly one hour, if you have attended class and done the reading. Faithfully doing these
assignments will make it easier to do the programming assignments. The written assignments will
constitute 6% of the course grade.

Programming assignments
We will assign seven programming assignments over the course of the term. These assignments will
typically be due on Thursdays at 5pm. One assignment, the fourth, will be a two week assignment
and will be weighted accordingly. The programming assignments will constitute 54% of the course
grade.

Labs
Weekly labs are intended to give you a chance to practice the material we have covered in class.
The code you write during the labs will not be graded. All labs will be held in the Computer
Science Instructional Lab (CSIL), which is on the first floor of Crerar. This facility has four labs.
Our’s will be held in CSIL #3 & #4.
Here is a link to the section and lab swap request form: http://people.cs.uchicago.edu/~amr/
cmsc12100-section-lab-change-request-form.html. We will only accept swap requests until 5pm on
Monday, Sept 29th.

2
Exams
We will be giving two exams, one during fifth week (Tuesday, Oct 28th) and another during tenth week
(Tuesday, Dec 2nd). The exams will be held from 7-9pm in the evening in Kent 107. Please mark
your calendars now and plan to be available on those evenings. The exams will each be worth 20% of the
grade.
You must inform us well in advance, if you have a conflict with one or both of the exam times.

Books
The required text for this course is Java: An Introduction to Problem Solving and Programming, by Walter
Savitch 6th edition (ISBN-13: 978-0132162708) or 7th edition (ISBN-13: 978-0133766264). We also recom-
mend, as an optional text, Introduction to Programming in Java: An Interdisciplinary Approach, Robert
Sedgewick and Kevin Wayne. Both are available for purchase from the Seminary Co-op Bookstore. An
abridged version of Sedgwick and Wayne is available at: http://introcs.cs.princeton.edu/java/home.
We will use the Python Tutorial (http://docs.python.org/2/tutorial) for Python.

Grading
The final grade will be divided as follows:

• Written assignments: 6%
• Programming assignments 1 : 54%
• Midterm: 20%
• Final Exam: 20%

Students may take this course for a quality grade (a “letter” grade) or a pass/fail grade. Students taking
this course to meet general education requirements must take the course for a letter grade.

Late submissions
All students may use up to two 24-hour extensions for the programming assignments during the quarter.
These extensions are all-or-nothing: you cannot use a portion of an extension and have the rest “carry over”
to another extension. If extraordinary circumstances (illness, family emergency, etc.) prevent a student from
meeting a deadline, the student must inform their instructor before the deadline.

1
All assignments will be worth 6.75%, except one which will be worth 13.50%.

3
Policy on academic honesty
The University of Chicago has a formal policy on academic honesty that you are expected to adhere to:

https://studentmanual.sites.uchicago.edu/Policies#Honesty

In brief, academic dishonesty (handing in someone else’s work as your own, taking existing code and not
citing its origin, etc.) will not be tolerated in this course. Depending on the severity of the offense, you risk
getting a hefty point penalty or being dismissed altogether from the course. All cases will be referred to the
Dean of Students office, which may impose further penalties, including suspension and expulsion.
Even so, discussing the concepts necessary to complete assignments is certainly allowed (and encouraged).
Under no circumstances should you show (or email) another student your code or post your solution to a
web-page or social media site. If you have discussed parts of an assignment with someone else, then make
sure to say so in your homework submission (e.g., in a README file or as a comment at the top of your
source code file). If you consulted other sources, please make sure you cite these sources.
If you have any questions regarding what would or would not be considered academic dishonesty in this
course, please don’t hesitate to ask any of the course’s instructors.

Asking questions
We will provide support for this course using an on-line system named Piazza and with office hours.

Piazza
The preferred form of on-line support for this course is through Piazza (http://www.piazza.com/), an on-
line discussion service that can be used to ask questions and share useful information with your classmates.
Students will be enrolled in Piazza at the start of the quarter.
All questions regarding assignments or material covered in class must be sent to Piazza, and not directly
to the course instructors or the TAs, as this allows your classmates to join in the discussion and benefit from
the replies to your question. If you send a message directly to an instructor or the TAs, you will get a gentle
reply asking you to send your question to Piazza.
Piazza has a mechanism that allows you to ask a private question, which will be seen only by the
instructors and teaching assistants. This mechanism should be used only for questions that require revealing
part of your solution to the assignment.
Additionally, all course announcements will be made through Piazza. It is your responsibility to check
Piazza often to see if there are any announcements. Please note that you can configure your Piazza account
to send you e-mail notifications every time there is a new post on Piazza. Just go to your Account Settings,
then to Class Settings, click on “Edit Notifications” under CMSC 12100. We encourage you to select either
the “Real Time” option (get a notification as soon as there are new posts) or the “Smart Digest” option (get
a summary of all the posts sent over the last 1-6 hours – you can select the frequency).

Office hours
For more substantial help, we recommend attending office hours.

Name Day&Time Location


Rogers MWF 10:30-11:30am, MW 2:30-3:30pm Ryerson 257-H
Sotomayor MWF 10:30-11:30am Ry 165-A
Wachs T 2:00-3:00pm, W 3:00-5:00pm Ry 175-A
Undergraduate CS tutors Sun-Thurs 7-11pm Harper

TA office hours will be announced soon.

4
While all of the Harper tutors should all be able to help with conceptual questions, not all of them know the
details of Java. At least one tutor who knows Java will be available on Monday, Tuesday, and Wednesday
evenings.

Link round-up
Class webpage: http://www.classes.cs.uchicago.edu/archive/2014/fall/12100-1/
Piazza: http://www.piazza.com/
Python tutorial: http://docs.python.org/2/tutorial/
Sedgewick & Wayne: http://introcs.cs.princeton.edu/java/home
University Academic Honesty Policy:
https://studentmanual.sites.uchicago.edu/Policies#Honesty
Waiting list:
http://people.cs.uchicago.edu/~amr/a14-waiting-lists/cmsc12100-waiting-list-form.html
Section and lab swap request form:
http://people.cs.uchicago.edu/~amr/cmsc12100-section-lab-change-request-form.html

5
Table 1: CMSC 12100 Autumn 2014 Schedule

Week Date Lecture Lab Readings Due


M Sept 29 1 Course Introduction Papers listed on
webpage
1 Tu Sept 30 Linux
W Oct 01 2 Introduction to Programming S. 1.1-1.2, 2.1,
2.4
F Oct 03 3 Casting, conditionals, and loops S. 3.1, 4.1-4.2
M Oct 06 4 Arrays S. 7.1, 7.5 HW #1
Tu Oct 07 Java loops & arrays
2 W Oct 08 5 Functions S&W 2.1, 2.2 HW #2
Th Oct 09 PA #1
F Oct 10 6 More functions S&W 2.4, 2.2,
1.6
M Oct 13 7 Odds & ends HW #3

6
Tu Oct 14 Functions
3 W Oct 15 8 Objects and data types S. 5.1-5.3,6.1
Th Oct 16 PA #2
F Oct 17 9 Objects continued S. 6.3-6.4
M Oct 20 10 Variables of all flavors and more on ob- 6.2, 7.2
jects
4 Tu Oct 21 Objects
W Oct 22 11 Interfaces S. 8.4 HW #4
Th Oct 23 PA #3
F Oct 24 12 More on interfaces
M Oct 27 13 Array Lists + Stacks S. 12
Tu Oct 28 EXAM (7-9pm)
5 W Oct 29 14 Queues + M/D/1 queues S. 12, S&W 4.3
F Oct 31 15 Stock exchange assignment + Java wrap-
up
M Nov 03 16 Introduce Python PT 3,4.1-4.6,5.1
Tu Nov 04 Basic Python
6 W Nov 05 17 More python plus extended example PT 5.1-5.4
Th Nov 06 PA #4
F Nov 07 18 Python dictionaries PT 5.5-5.6
M Nov 10 19 Python objects HW #5
Tu Nov 11 Dictionaries and File I/O
7 File I/O in Python
W Nov 12 20 Numpy
Th Nov 13 PA #5
F Nov 14 21 Recursion S. 11
M Nov 17 22 More recursion S. 11
Tu Nov 18 Recursion
8 W Nov 19 23 HW #6
Th Nov 20 PA #6

7
F Nov 21 24 Linked lists S. 12.3
M Nov 24 25 More linked lists Ch 12.3
Tu Nov 25 Recursive data structures
9 W Nov 26 26 Trees S&W 4.4
Th Nov 27 HOLIDAY
F Nov 28 HOLIDAY
M Dec 01 27 Review
Tu Dec 02 EXAM (7-9pm)
10 W Dec 03 28 Exam review + wrap-up
F Dec 05 (12pm) PA #7 (convo)
11 W Dec 10 PA #7

HW: Short Written Homework


PA: Programming Assignment
Reading are from Savitch (S), Sedgewick and Wayne (S&W), and the Python Tutorial (PT).

Você também pode gostar