Introduction to C
Introduction
Designed to teach C in an unhurried manner, yet structured in such a way to provide a thorough study of the introductory concepts of C, Introduction to C aims to lay a solid foundation of programming concepts that applies to C as well as other programming languages.
We'll cover programming basics, such as primitives, selection structures, and looping constructs, to name a few, in exhaustive detail. By the end of the semester, students will possess a considerable understanding of programming logic complexity. And thus will be sufficiently prepared to move on to a course in programming of a more sophisticated and rigorous nature.
Other than handling basic computer tasks, such as navigating the Internet, using email, and installing/uninstalling software on a computer, no prior programming experience is required.
Topics Covered
- Basic types
- Decision making
- Equality, relational, and logical operators
- Storage classes
- Arithmetic operations
- Escape sequences
- Good programming practices and clear and proper documentation style/techniques
- Strings
- Control structures
- Functions, structures, unions, and typedefines
- References, scope, and variable lifetime
- Error handling
- Testing and debugging
- The preprocessor
- Arrays and pointers
Readings
The required textbook, from which the semester's readings
(listed below) are assigned:

Title: C How To Program
Edition: Fourth Edition
Author: Deitel & Deitel
ISBN: 0–13–142644–3
- Chapter 1: Introduction to Computers, the Internet and the World Wide Web
- pages 8 — 10 (§ 1.8, 1.9)
- pages 13 — 15 (§ 1.14)
- Chapter 2: Introduction to C Programming
- pages 26 — 44 (§ 2.1 — 2.6)
- Chapter 3: Structured Program Development in C
- pages 57 — 82 (§ 3.1 — 3.12)
- Chapter 4: Program Control
- pages 100 — 126 (§ 4.1 — 4.12)
- Chapter 6: Arrays
- pages 199 — 240 (§ 6.1 — 6.9)
- Chapter 10: C Structures, Unions, Bit Manipulations and Enumerations
- pages 393 — 418 (§ 10.1 — 10.11)
- Chapter 7: Pointers
- pages 258 — 297 (§ 7.1 — 7.12)
Assignments
In addition to lectures, there will be four homework assignments and an open–book midterm exam. You are encouraged to discuss the homework assignments with others, but not to share source code.
Compiling Environment
To an experienced programmer, the Integrated Development
Environment, or IDE, can be helpful in writing and building
programs. However, in the hands of an inexperienced
programmer, an IDE typically displays a high learning
curve, proves to be confusing, and distracts from learning
how to program. Thus, GCC, a C compiler whose
primary variant runs in a command–line interface and is
available for Windows, Mac, and Linux, will be the compiler
used for in–class examples and assignments. No
IDE will be supported.
In terms of editors, you're welcome to use any program that renders basic text. Emacs under Linux, any other UNIX variant, and Mac OS X is fine, and I can lend support if you have questions. In Windows, you're encouraged to use Dev C++.
Announcements
- 16 December 2007:
- Welcome to the class!
Schedule
- Day: Saturdays
- Time: 12:45 pm — 2:45 pm (with a 15–min break at about 1:45 pm)
- Place: C114, Hunter North, Hunter College (map)
Homework
- Homework 1: due Saturday, 1 March 2008
- Homework 2: due Saturday, 22 March 2008
- Homework 3: due Saturday, 5 April 2008
- Homework 4: due Saturday, 19 April 2008
Resources
Tutorial
-
How to modify your Windows path to work with the GNU C
Compiler (
gcc). - How to compile your C programs from the command prompt
Books
The following is a list of texts for those of you looking for a deeper understanding of C.
Video
The 1986
SICP video lectures by MIT's
Hal Abelson and Gerald Jay Sussman are fantastic resources
in helping to understand logic in programming languages.
Although Professors Abelson and Sussman teach LISP in these
lectures, the themes are universal. The lectures'
accompanying book, The Structure and Interpretation of
Computer Programs, AKA The Wizard Book,
is available in HTML format for
free.
SICP
videos: http://www.swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/
SICP online book: http://mitpress.mit.edu/sicp/full-text/book/book.html
Contact
rvanegas at hunter dot cuny dot edu
( html 4.01 )
( css )
Roy Vanegas
Last modified: Fri Mar 21 13:03:00 EST 2008