[NYU Logo]Fundamentals of Computer Science in C

V22.0380 Section 2

Final Exam:
Date: Wednesday December 16, 1998
Time: 8:00 - 9:50 am
Location: Main 703

Makeup Final Exam:
Date: Thursday December 17, 1998
Time: 8:00 - 9:50 am
Location: Warren Weaver Hall 102

* Instructor: Dilshad Shahid

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. The E-tutor will be announced in the second week of the semester.

* 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

  • Submitting Homeworks via Email: This handout includes specific instructions on submitting homeworks via email, including specific instructions on how to use FTP and Pine attachments.

* Programs Discussed in Class

Week #3: Functions
  • Extensive functions example [Source]
  • Another function example [Source]
Week #4: Nested for loops, switch statements
Week #7: Header files, static variables, recursion, random numbers
Week #9: Arrays
  • Initialization w/ for loop[Source]
  • Initialization by declaration[Source]
  • Array w/ #define[Source]
  • Array basic operations[Source]
  • Total and average of elements[Source]
  • Total and average of elements in a float array[Source]
  • Simplified histogram[Source]
  • Character arrays - initialization[Source]
  • Character arrays - passing them to functions[Source]
  • Character arrays - const[Source]
  • Arrays - address in memory[Source]
  • Static arrays[Source]
  • Bubble sort[Source] If you want to see an interactive Java applet that demonstrates the principles of Bubble Sort, click here Check out the Quick Sort as well to see how much faster it is than the Bubble Sort.
  • Multidimensional arrays[Source]
Week#11: Pointers
  • Pointer example[Source]
  • Simple function demonstrating call by value[Source]
  • Same as above but with a little twist[Source]
  • Same function as above but using call by reference[Source]
  • Bubble sort function - call by value[Source]
  • Bubble sort function (with separate swap function) - call by reference[Source]
  • Sizeof[Source]
  • Using arrays and pointers (with int array and pointer to int)[Source]
  • Using arrays and pointers (with char array and pointer to char)[Source]
Week #13: File Processing

* Homework Assignments:

Late Policy: In general, homework assignments will be due on the Thursday of each week. You must submit your homework via email. In order to be considered on time, your homework must be received by the due date at 11:59 pm. If you do not hand in your homework by that time, you must submit your homework by one week later at 11:59 pm. Homework that is up to 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
October 1
Homework #2
[Solution]
  • If/Else
  • While Loops
October 8
Homework #3
[Solution]
  • Switch Statements
  • While/For Loops
  • Functions
  • Logical Operators
October 22
Homework #4
[Solution]
  • Functions
  • Random Numbers
  • Arrays
November 12
Final Project
December 8
Homework #5
[Solution]
  • Pointers
  • Arrays - single scripted and multidimensional
December 1
Homework #6
[Solution]
  • Structures
  • File Processing
December 14

* 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.