CMSC 10600 Fundamentals of Computer Programming II (C++)
E-mail: borja AT cs DOT uchicago DOT edu
Lectures: TuTh 12:00-13:20 in Ryerson 251
Lab: Thu 3:00-4:20 and 4:30-5:50 in JRL A01C (Maclab, A-level of Regenstein Library)
Office hours: Open door policy (see Course Syllabus)
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 a selection of tools, libraries, and additional languages that programmers should be proficient in to become effective software developers, with an emphasis on the Python programming language. Topics in this portion include using build tools, third-party libraries, scripting languages, and data storage.
This course takes a 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 two exams, all of which require solving programming problems on a computer. There will be no "paper and pencil" exercises.
For a more detailed description of this course, please read the Course Syllabus.
The text for this course is Absolute C++, 4th 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).
Homeworks, labs, files, and optional exercises are posted on the course's PhoenixForge site.