CMSC 15200 - Introduction to Computer Science-2 (Summer 2007)
Welcome!
Welcome to the website for Introduction to Computer Science-2 (CMSC 15200), a course that will take place from July 23th to August 24th 2007 as part of the University of Chicago's Summer Session.
E-mail: borja AT cs DOT uchicago DOT edu [More contact info]
Lectures: MWF 1:30-3:30 in Ryerson 251
Lab: W 4:00-6:00 in JRL A01C (Maclab, A-level of Regenstein Library)
Office hours: Open door policy (see Course Syllabus)
- Homework
- Labs
- Files
- Optional exercises
- Course Description
- Prerequisites
- Registration
- Course Contents
- Book
Course Description
This course provides an introduction to computer programming and to software development. The first portion of the course introduces students to computer programming, using the C/C++ language, and covers fundamental topics such as flow of control, function definition, data structures, and object-oriented design and programming. The second portion of the course provides a more holistic view of software development and introduces students to tools, libraries, and additional languages that programmers should be proficient in to become effective software developers. Topics in this portion include using build tools, third-party libraries, scripting languages, data representation formats, and a brief introduction to other programming languages.
This course takes a highly practical approach to teaching computer programming. Learning a programming language is similar, in some respects, to learning how to speak a new language. To become a fluent speaker, it is rarely enough to learn the syntax, grammar, and vocabulary of the language, even if we can memorize them letter by letter. It is generally necessary to converse and interact frequently with native speakers to pick up all the nuances of the language. Similarly, the best way to learn computer programming is by writing programs. This course will involve homework assignments, labs, and a small final project where the students will be able to practice programming and receive frequent feedback about their programming aptitude and style from the instructor.
For a more detailed description of this course, please read the Course Syllabus. The remainder of this page is a summarized version of that document.
Prerequisites
In the Summer Session, CMSC 15100 is not a strict prerequisite of CMSC 15200. The course is designed as a standalone introduction to computer programming, and can be taken by students from any background who need to develop programming skills for their work (projects, thesis, etc.). In this case, CMSC 15100 or some programming experience will be helpful but is not strictly required. Students who do take CMSC 15100 will not see any duplicate material (except some introductory material the first day).
However, if you are a UChicago student taking CMSC 15200 to meet your core/major/minor requirements, you will still have to take CMSC 15100. According to the college catalog:
Prerequisites: CMSC 15100. Nonconcentrators may use this course to meet the general education requirement in the mathematical sciences. Concentrators must use CMSC 15200 or 16200 to meet concentration requirements.
Registration
- UChicago students: Summer registration for current University of Chicago students is available through cMore through June 15, 2007. College students may add/drop via cMore through June 16; after June 16, please email your request (including your full name, student ID number, course codes and titles) to Val Huston, Secretary in the Summer Session Office, at vhuston@uchicago.edu. Graduate students should register through their area Dean of Students Office.
- Visiting students: Summer registration for visiting students is available through the Summer Session website until May 30, 2006.
- High school students: High school students must first apply, before May 15, for admission into the Summer Session. After May 15, applications may still be submitted, but a rush processing fee will be assessed. See the Summer Session website for more details.
- Unregistered students: Students from all backgrounds are allowed to attend the lectures and labs on an unregistered basis, on the understanding that they cannot have any coursework (homework, labs, project) graded and that they will receive no credit for the class, nor will be able to claim any credit (partial or total) if they do register for this course in the future. This option is available mainly for those students who want to take advantage of the Summer quarter to learn computer programming but who don't actually need any formal credit. Students planning to attend the lectures on an unregistered basis should contact the instructor in advance.
Course Contents
The course will cover C/C++, build tools, data structures and algorithms, object-oriented programming, Python, data representation (flat text files, XML, and databases), and a brief introduction to other programming languages. A detailed description of the course contents can be found in the Course Syllabus
Book
The text for this course is Absolute C++, 3rd edition, by Walter Savitch, published by Addison-Wesley. The book will be available for purchase from the Seminary Co-op Bookstore (5757 South University Avenue).