Program Design & Software Tools

INFSCI 0020 (CRN 10968)

Spring Term 2005

 

Instructor Information

Instructor: Ming Mao

Office: 2B03 SIS Bldg

Office Phone: 412-624-1178

Email: mingmao@mail.sis.pitt.edu

Office hour: Monday 2-4 pm or by appointment

 

Other Contacts

Name:

Phone#:

Email:

 

Name:

Phone#:

Email:

 

Course Information

Time: Monday, 6-8:30 pm

            Location: IS 501

            Course Website: http://courseweb.pitt.edu

 

Course Description and Goals

“Program design and software tools” is an introduction course to the development of programs using C++. Emphasis is given to the development of program modules that can function independently. The theory of data structures and program design is also included.

At the end of this course you will be able to:

  • distinguish major data types;
  • use elementary data types, arithmetic operators, and logical expressions in order to code suitable solutions to programming problems;
  • program selection using if, if - else, nested if, and switch statements;
  • program iteration using while, for, do - while, and nested loops;
  • work with basic file stream input/output methods such as open, close, fail, and eof;
  • program solutions using arrays to solve problems like finding the maximum, searching, and sorting using selection and bubble sort;
  • use structure to implement user defined data types and functions for manipulating them;
  • apply the basic principles of program design to a correspondingly complex situation; and
  • build a hierarchy architecture based on a system analysis and implement it in C++.

 

Course Prerequisite

Students are expected to have some C programming experience and knowledge of data structures.

Course Books

C++ How to Program -- Fourth Edition,  by H. M. Deitel, P. J. Deitel, Prentice Hall, New Jersey, 2003, ISBN: 0-13-038474

The textbook ($70) can be picked up at the University Book Center.

 

Grading

Components of the Final Grade

5 homework at 6 points each                                                 30 points

2 quizzes at 5 points each                                                      10 points

1 midterm exam                                                                     20 points

1 final project                                                                         30 points

Total                                                                                       100 points

 

Grades

            A = 100 - 90

            B = 89 - 80

            C = 79-70

D = 69-60

F = 59 and below

 

Homework

All assignments have to be submitted electronically -- through digital drop box on CourseWeb. Naming conditions for electronic submissions are strict. When submitting via the drop box, the link to your file should be named as “assignment X_Y_ZZZ”, where X is an assignment number, Y is a problem number in that assignment and ZZZ is your last name. The assignment will not be graded unless it is complete.  A complete assignment will consist of an email which contains:

 

·       A synopsis of your program

·       The complete instructions for anything that needs to be done to run the program.

·       An attached zip file that contains:

o      Any data files that are needed

o      All the source files

 

# of Homework

Description

Points

1

A first C++ program with I/O

6

2

C++ program with relational operator and loop

6

3

C++ program with file operation and array

6

4

C++ program with pointer operation

6

5

C++ program with structure and stack

6

 

Quizzes

Two quizzes will be assigned randomly during the course. The types of the exam question are true/false, multiple choice and small program analysis.

 

Midterm exam

The midterm exam typically consists of true/false, multi choice, and small program analysis.

 

Final Project

The final project is a synthetic program covering most of the topic taught in class. It may be undertaken individually, or in a group (no more than 3 people).  Expectations about project sophistication will be a factor of the number of people working together.  Each additional person should make the project 50% more sophisticated.  A 3 person group should produce a project 200% more sophisticated than an individual project.  A sample of previous final project requirement can be accessed from: http://www.sis.pitt.edu/~jjoshi/IS0020/Summer2004/FinalProject.pdf

 

Course Policies

Academic Integrity

You are expected to be fully aware of your responsibility to maintain a high quality of integrity in all of your work. ). All graded work that you do for this course must be the sole result of your own efforts. Although students are encouraged to study together and extend normal tutoring assistance, you may not do work for another student nor may any student copy or plagiarize someone else’s work. Any unauthorized collaboration or copying will at minimum result in no credit for the affected assignment and may be subject to further action under the University Guidelines for Academic Integrity (http://www.pitt.edu/~provost/ai1.html) and the Student Code of Conduct (http://www.studentaffairs.pitt.edu/usjs/code.pdf). You are expected to have read and understood these documents.

 

Participation

Class attendance, while not mandatory, is required if you want to succeed in this course. Other participation evaluation will be based on asking a good question at class or in the discussion forum on CourseWeb, providing a helpful answer in a discussion forum, finding errors in slides and examples.

 

Late Submissions and Resubmissions

The due date for assignments is strict. Programming assignments will be due before class of the due date.  One point will be deducted for each day a programming assignment is late. No assignment can be submitted or resubmitted after it was analyzed during the lecture.

 


Make-ups

If you miss a quiz and/or assignment, you will receive a zero. There will be no make-up quizzes, no make-up assignments since most of the assignments will be analyzed in the class on or shortly after the due date. Missed exams can be made up in cases of extreme circumstances.

 

Special Considerations

If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Office of Disability Resources and Services (DRS), 216 William Pitt Union, (412) 648-7890 / (412) 383-7355 (TTY) as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.

 

Schedule of Lecture topics and readings

Week

Date

Topics

Readings

Assignment

1

01/10

Introduction to the course.

Introduction to data types, variables and linear programs, printing data, simple expressions and complex expressions.

Chapter 1, Sections 1.1-1.7, 1.14

Chapter 2, Sections 2.1-2.5

 

2

01/17

No Class (Dr. Martin Luther King's birthday observance)

 

 

3

01/24

Program design, type conversion, input, simple countdown while loop; increments and decrements; preprocessor.

Chapter 3, Sections 3.1-3.4, 3.12;
Chapter 13, Sections 13.1-13.3

 

Hwk 1

Due: 01/31

4

01/31

Relational operators and assignment operators. Programming patterns.

Loops.

Chapter 3, Sections 3.7-3.9, 3.11;
Chapter 4, Sections 4.1-4.3, 4.8, 4.11

 

5

02/07

Character data type, character input and output, streams and redirection. File copying and encoding. If-else and if statements. Line, word, and symbol counting.

Chapter 3, Sections 3.5, 3.6, 3.9

Hwk 2

Due: 02/21

6

02/14

Arrays. Array input and output. For loop. Array processing with for.

Arrays: sum, max, min algorithms. Functions. Array processing with functions.

Chapter 4, Section 4.4-4.6
Chapter 5, Section 5.1-5.5

Chapter 6, Section 6.1-6.4

 

7

02/21

Sequential search in non-ordered and ordered list. Binary search.

Sort Classifications. Insertion Sort. Selection Sort. Bubble Sort. Merging Sorted Files.

Chapter 6, Section 6.8, 6.9

Hwk 3

Due: 03/14

8

02/28

Midterm Exam

 

 

9

03/07

Spring Break (No Class)

 

 

10

03/14

Memory and variables. Pointers and functions. Pointers and arrays. Address Arithmetic.

Chapter 7, Sections 7.1-7.8

Hwk 4

Due: 03/28

11

03/21

Structures. Using structures with functions. Pointers to structures.

Chapter 10, Sections 10.1-10.7

 

12

03/28

Implementation of stack with linked lists.

Chapter 12, Section 12.5

Hwk 5

Due: 04/11

13

04/04

Recursive definitions, functions and implementation Working with recursive data structures. Towers of Hanoi.

Chapter 5, Sections 5.13-5.15

 

14

04/11

Basic Tree Concepts. Binary Trees. Binary Tree Traversals.

Chapter 7, Sections 7.1-7.8

 

15

04/18

Catch-up Day and Review

 

 

16

04/25

Final Project Due