CMSC 15200 - Summer 2016

Welcome

The Summer Session for "Introduction to Computer Science-2" (CMSC 15200) will take place July 25 - August 26, 2016. This course will provide a practical introduction to computer programming using the C language with emphasis on developing general programming skills and familiarity with advanced data structures.


Instructor : Connor Imes

Email : ckimes AT cs DOT uchicago DOT edu

Graders : Yuxiao "Oliver" Zou, Andoni Garcia, and Aidan Sadowski (available via Piazza).

Lectures : MWF 1:30-3:30 in Ryerson 251

Lab : W 4:00-6:00 in CSIL 3-4 (CSIL Labs, first floor inside the Crerar Library)

Office Hours : Connor: Tuesdays 1-3p in CSIL 3; Oliver: Thursdays 2-4p in CSIL 3. (Also see Piazza)

Syllabus : PDF syllabus

Piazza : As the course gets going, the flow of questions and answers becomes steady. We will use the piazza system to help manage the traffic. You will need a piazza account to participate.

Lecture Schedule

We have five weeks to cover a number of challenging subjects. The following schedule is subject to change.

  • Week 1: Beginning C: Variables (int, double, char), Boolean expressions, Control (if, while, for), Functions.
  • Week 2: Moderate C: Functions, Testing, Arrays, Strings, Dynamic Memory
  • Week 3: Advanced C: Dynamic Memory, Structs, Data structures
  • Week 4: Advanced C: Data structures, File I/O
  • Week 5: Advanced Topics: Bitwise Operations, Graphs, etc… Dependent on class interests. (Final Exam: Friday, August 26)

Evaluation

Your grade in this course will be computed according to the following formula:

  • 10% Labs
  • 40% Homework
  • 20% Quizzes
  • 30% Final Exam

Homework

There will be regular homework assignments that must be submitted in subversion by midnight on the due date, unless otherwise noted on the homework page. In the homework assignments, you will be required to solve a programming problem(s) related to the topics covered in class so far.

Late work will not be accepted. Our time frame is compressed and you must keep up. Exceptions to this policy will be granted only in the case of extraordinary circumstances.

NOTE: Homework assigned and due dates are subject to change with notice.

Labs

There will be five lab sessions to complement the class lectures. Attendance to the lab sessions is mandatory. Labs should not take you longer than the lab period to complete but labs will always be due by midnight on Thursdays.

Quizzes and Exams

There will be weekly quizzes held every Monday (with the exception of the first Monday of the class), unless stated otherwise. You will be given between 20-30 minutes to complete the quiz. Quizzes are closed-book. Of course, you will not be allowed to talk with your classmates during the quizzes.

The final exam will be Friday, August 26th, 2016. And, again, you will not be allowed to talk with your classmates during the exam.

The quizzes and final exams are not intended to test your ability to memorize C syntax, learn algorithms by heart, or remembering exactly how a certain data structure is crafted. Rather, the goal of the exam is to test that you understand all the material seen in class and that you know how to apply all that knowledge to construct a working program.

Textbooks

There are two recommended texts for C. They are both useful but not required.

These books are available for purchase from the Seminary Co-op Bookstore

Your are not strictly required to purchase the books, as the lecture notes should be enough to get you past the homework and the exam. However, we strongly recommend that you buy the books if you intend to continue working with C, as it can be an invaluable reference (plus the source of many interesting exercises during the course itself).

Academic Honesty

As the world of computer programming becomes ever vaster and the Internet becomes ever more populated with ripe fruits to copy and paste, your personal ethics are absolutely essential in maintaining the worth and integrity of your education. Remember that an honest failure is of infinitely greater value than a dishonest success. I can't amplify this enough.

College-wide honesty guidelines are here. The college's policies are always the last word, if there is any uncertainty.

The following rules of thumb summarize honesty as it pertains to this course:

  1. Do not copy anyone's work.
  2. Do not allow your work to be copied by anyone.
  3. Do not submit work identical to another student's.
  4. Document all collaboration.
  5. Credit your sources.

To expand on the second rule, sharing completed or partially completed work in advance of its deadline in any way, including posting to the Internet, is expressly forbidden.

When it is time to do the actual coding, writing, etc., do your own work. Your work.

Dishonest behavior will result in serious consequences.