Syllabus
CSCI 2610/2611
Introduction to Computer Science II
Spring 2000

Instructor: Karl Abrahamson
Office: Austin 233
Office hours: MW 3:30- 5:00
TTh 11:00-12:00
Phone number: 328-1879
e-mail: karl@cs.ecu.edu
Course web page: www.cs.ecu.edu/~karl/2610/spr00
Text: Problem Solving with C++: The object of programming (second edition) by Walter Savitch

My door is usually closed, even when I am in. Feel free to knock.

Course objectives

This course focuses on small scale software development using C++. We will cover the C++ programming language and principles and techniques for writing small scale software. See below for a list of topics.

Grading

You cannot learn computer programming without being able to write programs and get them running. There is necessarily a hands-on programming component to CSCI 2610. Rather than adding more programming work, I will incorporate your lab work for CSCI 2611 into the grade for CSCI 2610.

The grading for CSCI 2610 will be on the basis of five quizzes (10% each), a comprehensive final exam (25%) and approximately twelve programs (25% total). Tentative grade cutoffs are 90% for an A, 80% for a B, 70% for a C and 60% for a D. Those cutoffs will not be raised. For example, if you are sure that you will receive a B according to these cutoffs, then you will receive no worse than a B.

The grading for CSCI 2611 will be on the basis of approximately twelve programs, with the same cutoffs as for CSCI 2610.

Topics

  1. Introduction to C++. Variables and assignment. Producing output. Primitive types. (Read: 1.1, 1.2, 1.3, 2.1.)
  2. Input and output. Expressions. Conditionals and boolean expressions. Loops. (Read: 2.2, 2.3, 2.4.)
  3. Designing and understanding loops. Loop invariants. Data oriented and action oriented loop design.
  4. Functions. Using predefined functions. Defining functions. Local variables. Contracts. (Read: 3.1,3.2,3.3.)
  5. Recursion and problem solving. (Read: 12.1, 12.2, 12.3.)
  6. Procedures and Statements. Call-by-reference. (Read: 4.1, 4.2.)
  7. Object-oriented programming. (Read: 5.1,5.2.)
  8. Working with files. (Read: 5.3.)
  9. More object-oriented programming. (Read: 6.1,6.2.)
  10. Additional C++ statements. (Read: 7.1, 7.2, 7.3.)
  11. Arrays. (Read: 9.1,9.2,9.3.)
  12. String processing. (Read: 10.1.)
  13. Multi-dimensional arrays. (Read: 10.2.)
  14. Algorithms and problem solving with arrays.
  15. Pointers and dynamic memory allocation. (Read: 11.1,11.2.)
  16. Basics of abstract data types.