[NYU Logo]Fundamentals of Computer Science in C

V22.0380 Section 1

Have a great break! And Keep in Touch.

To help you study for the final exam, please see the Final Exam Study Guide

* Instructor: Ethan Cerami

Home Page Quick Index:


* Course Description

This is a course in computer programming concepts for students with little or no programming experience. The intent is to teach students to write both clear and efficient C programs by emphasizing structured programming principles. This course is intended as a first course for information systems majors, for students of other scientific disciplines, and for a functional introduction to programming.

* Syllabus

Click here to view the course syllabus.

Text Books

  • The primary (required) textbook is: Deitel & Deitel, C How To Program, 2nd Edition (New York: Prentice Hall, 1994.) Available at the NYU bookstore.
  • The supplementary text is: Kernighan and Ritchie, The C Programming Language, 2nd Edition (New York: Prentice Hall, 1988.) Also available at the NYU Bookstore.

* Computer Software

For the entire course, we will be using the Borland C++ Version 5.0 Compiler for Windows. Borland C++ is available at the Tisch LC-11 Stern lab and all Academic Computer Facility (ACF) computer labs. Other students wishing to work at home can purchase Borland Builder 3.0 (which includes Borland C++ Version 5.0) from the NYU Computer Book Store for approximately $50.

In order to save your computer programs, please purchase a few high-density floppy disks. (also available at the NYU Computer Book Store.)

* Email/Unix Accounts

If you do not already have one, you will also need to obtain a Stern or ACF Email/Unix account. These accounts will be necessary for subscribing to the electronic mailing list and for corresponding with the class E-tutor.

* Grader/E-Tutor

Our class will have both a grader and an E-tutor. The grader will be responsible for grading all homeworks. The E-tutor will be available throughout the week should you have any questions regarding course topics or homework assignments.

* Exams and Grading

The course will include a number of programming assignments, one midterm, one final and one final project. Your grade will be calculated as follows: homework (40%), midterm exam (20%), final exam (25%), final project (15%).

* Class Handouts

* Programs Discussed in Class

Input/Output
  • 1.0: Hello, World! [Source]
  • 1.1: Formatted Output [Source]
  • 1.2: Input with scanf() [Source]
Data Types and Mathematical Operators
  • 2.0: Integer Variables [Source]
  • 2.1: Integer/Modulus Division [Source]
  • 2.2: Float Data Type [Source]
  • 2.3: Increment Operators [Source]
Structured Programming
  • 3.0: Amazon.com Version 1.0 [Source]
  • 3.1: Amazon.com Version 2.0 [Source]
  • 3.2: Amazon.com Version 3.0 [Source]
  • 3.3: Amazon.com Version 4.0 [Source]
  • 3.4: Switch [Source]
Week #4: Program Control/Data Types
Functions
  • Storage classes: auto v. static [Source]
  • Scope: Global v. Local [Source]
  • Random Numbers: Coin Tossing [Source]
  • Recursion: The World's Simplest Recursion Program [Source]
  • Recursion: Factorials [Source]
Arrays
  • 5.0: Array Basics [Source]
  • 5.1: Random Dice [Source]
  • 5.2: Call by Reference [Source]
  • 5.3: Encryption Program [Source]
  • 5.4: Bubble Sort [Source] If you would like to view an interactive Java applet that demonstrates the principles of Bubble sort, click here.
  • 5.5: Using Multidimensional Arrays Source]
  • 5.6: Hunt the Wumpus [Source]
Pointers
  • 6.0: Basic Pointer Operators [Source]
File I/O
  • 7.1: Basic File Output [Source]
  • 7.2: Basic File Input [Source]

* Homework Assignments:

Late Policy: In general, homework assignments will be due on the Wednesday of each week. You must submit your homework via email. In order to be considered on time, your homework must be received by Wednesday at 11:59 pm. If you do not hand in your homework by that time, you must submit your homework by the following Wednesday at 11:59 pm. Homework that is one week late will receive an automatic 10 point penalty. Homework that is more than a week late will not be accepted.

To view your grades, visit the grader's home page.

HomeworkGeneral TopicDue Date
Homework #1
[Solution]
  • Basic Input/Output
  • Operator Precedence
September 30
Homework #2
[Solution]
  • If/Else
  • While Loops
October 7
Homework #3
[Solution]
  • Switch Statements
  • While/For Loops
  • Functions
  • Logical Operators
October 21
Homework #4
[Solution]
  • Functions
  • Random Numbers
  • Arrays
November 11, 1998  
Final Project December 7, 1998
Homework #5
[Solution]
  • Multidimensional Arrays
  • Pointers and Arrays
December 2  
Homework #6
[Solution]
  • File I/O
  • Structures, Arrays, Pointers
December 14, 1998  

* Internet Resources:

  • Getting Started with Pine: A complete introductory guide for users of the mail program available on the NYU-Internet system and on most UNIX systems at NYU. Both the guide and the software are from the University of Washington.
  • History of the Internet Time Line: The release of Ken Starr's report on the Internet marks an important milestone in the evolution of the web. This interactive time line traces the historical evolution of ARPANET, the Internet, and the World Wide Web.
  • Nasa Satellite Tracking Applets: Track up to 500 NASA Satellites in real-time.
  • The Technology of Fast Food: Computer Programming in the real world!