UNIVERSITY OF DELAWARE <br>
 DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES
CISC 181---Intro. to Computer Science Fall 2003
Syllabus

Genius is one per cent inspiration and ninety-nine per cent perspiration.
--- Thomas Alva Edison

Objectives Preqs Texts Topics & Calendar Other Dates Course Home

Instructor B. F. Caviness, 406 Smith Hall, email: caviness@udel.edu
Office Hours -- 1:30-3:30PM Wednesdays and by appointment
Phone: 831-8234

Course Objectives

The primary objective of this course is to begin a study, that will be continued in CISC 220, 280 and 320, of the tools that one needs to be a well-educated and effective software engineer. These ingredients include
  1. The thorough knowledge of several programming languages.
  2. Skill in using various software engineering tools such as editors, debuggers, profilers, etc.
  3. A beginning knowledge of the Unix operating system, the OS that, for example, underlies MAC OS X and Windows XP and is the one OS that all computer scientists must know.
  4. Knowledge of a wide variety of data structures, their associated algorithms, and how to use them appropriately in applications. This is the primary emphasis of CISC 220.
  5. Skill in assuring correctness of programs. This involves testing of programs and proofs of correctness, i.e., program verification. These are important emphases in CISC 220 and 320.
  6. Ability to analyze the resources (computer time and memory) needed by a program, i.e., analysis of algorithms. Also important emphases of CISC 220 and 320.

In CISC 181 we will be primarily concerned with items (1-3) with some attention to items (4-6). Our main emphasis will be on the study of the programming language C++, a fairly recent extension of the widely used C language. C++ contains many features to support modern concepts in software engineering --- concepts that are not a part of C. For this reason and because C++ is (almost) a superset of C, C++ is replacing C as the programming language of choice in a wide variety of real world applications. Our objectives in CISC 181 will be to

Prerequisites

Students are assumed to know at least one computer language like C, Pascal or Basic. This is an important prerequisite. If you do not know such a language, please see me immediately. Also you are assumed to have (or will acquire) a working knowledge of a Unix editor like emacs, vi, or, less desirably, pico.

Texts

Tentative Topics and Calendar

New material will be introduced first through the reading, then discussed in lecture, used in daily homework assignments, and then used in projects. Reading assigned on a given date is to be done before the next lecture. The labs will be devoted to explanations of the mechanics of using the various software used in the course, help with techniques of debugging and testing, on-line exercises to reinforce the above, etc.
Topics
Chap. 1, Intro. to Computers & C++
Chap. 2, Control Structures
Chap. 3, Functions
Chap. 4, Intro to arrays
TEST 1: Thursday, October 9
Chap. 4, Arrays cont., Chap 5, Pointers & Strings
Chap. 6, Classes & Data Abstraction
Chap. 7, Classes: Part II
TEST 2: Thursday, November 6
Chap. 8, Operator Overloading
Chap. 11, Stream I/O
Chap. 15, Data Structures
Chap. 9, Inheritance
Final Exam: Honors Section: 1-3PM, Mon, Dec 15, 218 Smith
Final Exam: Sections 10-15: 8-10AM, Fri, Dec 19, 007 Willard

Other Important Dates

Last day to drop w/o academic penalty October 28
Last CISC 181 class Tuesday, December 9


Back to the
CISC 181 homepage.

This page last updated 9/29/03.
This page has been accessed times since 1 Sept 2003.

Corrections, suggestions and comments to caviness@cis.udel.edu

Copyright 2003 B. F. Caviness. With attribution may be used for any non-commercial purpose.