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


Readings

The required textbook, from which the semester's readings (listed below) are assigned:
Cover of C How To Program by Deitel & Deitel
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


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

Books

The following is a list of texts for those of you looking for a deeper understanding of C.

Title The C Programming Language C In A Nutshell C Pocket Reference
Author Brian W Kernighan, Dennis M Ritchie Peter Prinz & Tony Crawford Peter Prinz & Ulla Kirch–Prinz
Edition Second First First
ISBN 0131103628 0596006977 0596004362
Cover Cover of The C Programming Language Cover of C In A Nutshell Cover of C Pocket Reference

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

Email

rvanegas at hunter dot cuny dot edu


( html 4.01 )
( css )

Roy Vanegas
Last modified: Fri Mar 21 13:03:00 EST 2008