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:
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
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 |
|
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 |
Chapter 3, Sections 3.1-3.4, 3.12; |
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; |
|
|
5 |
02/07 |
Character data type, character input and output, streams
and redirection. File copying and encoding. |
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 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 |
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 |
|
|