Computer Science CSCI/CMPE 2380-01/2388.01, Spring 2009
Computer Science II: An Introduction to Data Structures
Instructor:
Zhixiang Chen, Office: ENGR 3.293,
Phone: 3520, Email: chen@cs.panam.edu,
WWW Home Page: http://www.cs.panam.edu/~chen/.
Office Hours:
| Monday | 10:45 AM -- 11:45 AM |
| Tuesday | 10:45 AM -- 11:45 AM |
| Wednesday | 10:45 AM -- 11:45 AM |
| Thursday | 10:45 AM -- 11:45 AM |
| Friday | 10:45 AM -- 11:45 AM |
Lectures:
| CSCI/CMPE 2380.01/2388.01 |
MWF | 11:45 AM -- 12:35 PM | ENG 1.268 |
Text and Materials:
You should have a copy of the following text:
``Data Structures Using C++",
by D.S. Malik, Thomson Course Technology, 2003, ISBN 0-619-15907-3.
You should have completed either CSCI 2330 (C++ Programming) or
CSCI/CMPE 1370 plus CSCI/CMPE 1170, or CSCI 1380 (Computer Science I in C++). You should have learned
procedure-oriented programming, and the basic concepts of
object-oriented C++ programming. In the first one or two days, I will
give a quick introduction to Object-Oriented Programming in C++.
Please be advised that there are six programming projects. All projects
must be coded in C++ classes unless stated otherwise. Our main programming
environment is Microsoft Visual Studio.Net (2003, 2005 or 2008). I have arranged lab hours at
our computer labs on the second floor of the Academic Services Building.
You can also use the Advanced Computer Lab ENGR. 2.228 on the second floor of the Engineering
Building to work on your programming assignments.
Please check with our system administrator Mr. David Kirtley
to open an account to access machines at the Advanced Computer Lab ENGR 2.228.
Lab consultants are available for help on the environment, coding and debugging.
If you are not very familiar with Microsoft Visual Studio.Net,
you should spend a lot of time to play with it. Although I am always ready to help you and so are the lab consultants,
yet without your own time investment to the environment you will have difficulties to complete
the course. Remember that we do programming homework assignments and a lot of lab programming
assignments.
For your convenience, this link gives you a copy of the user menu about how to getting started with
Microsoft Visual Studio.Net ==>
Click Here!
Prerequisites:
You are expected to have
completed
CSCI/CMPE 1370 plus CSCI/CMPE 1170
or CSCI1380.
Catalog description:
CSCI/CMPE 1370
An introduction to computer science and computer engineering.
The fundamentals of a high-level programming language will be introduced.
Methods of problem solving, techniques of algorithmic development and concepts
of procedural and object-oriented programming will be emphasized...
Societal and Social Issues related to Computer Engineering will be introduced.
Prerequisites: CSCI 1300 or equivalent experience and grade of C or better in MATH 1340 or
placement in a higher level Math course. Co requisite: CMPE 1170.
Cannot receive credit for both CSCI1380 and CMPE1370.
Will replace a grade received in CSCI 1380. Equivalent course:
CMPE 1370 a student may receive credit in only one course.
CSCI/CMPE 1170
The course includes hands-on instruction and laboratory exercises in developing programs
written in a high-level object oriented programming language applying the principles
taught in the CMPE 1370 lecture course. Co-requisite:
CMPE 1370 . Equivalent course: CSCI 1170 A student may receive credit in only one course.
CSCI 1380
An introduction to computer science and computer programming is given,
in which the fundamentals of a high-level programming language will be introduced.
Methods of problem-solving, techniques of algorithmic development and concepts of
structured object oriented programming will be emphasized.
Prerequisite: Concurrent Enrollment in MATH 1340.
Course Topics:
Catalog Description:
A second programming course includes problem solving by structured design;
provides an introduction to elementary data structures, including linked lists,
stacks, queues, trees and graphs, and advanced programming techniques,
including recursion, sorting and searching.
Prerequisite: CSCI 1381 or CSCI 1388 or CMPE 1370 or consent of instructor.
Equivalent course: CMPE 2380. A student may receive credit in only one course.
Course Objectives:
After completing this course, the students should be able to:
- To continue the development of problem solving skills in a context
that emphasizes a structured, top-down approach.
- To demonstrate the application of software engineering principles in designing,
coding and testing large programs.
- To introduce students to essential data structures such as linked lists,
stacks, queues, and trees. This introduction emphasizes the specification of
each structure as an abstract data type (ADT).
- To provide a systematic approach to the study of algorithms that focuses
first on the understanding of the algorithm and then on analyzing the algorithm
from a time/space perspective. In particular searching, sorting, and recursive algorithms are covered.
- To evaluate the time and space tradeoffs in the design and implementation of ADT's.
- To make students aware of the importance of object-oriented methods in developing software,
particularly in the design and implementation of ADT's.
Learning Outcomes:
Upon successful completion of this course, students will be able to
- Design, implement, test, and debug simple programs in an object-oriented
programming language.
- Write programs that use each of the following data structures:
arrays, records, strings, linked lists, stacks, queues, and hash tables.
- Choose the appropriate data structure for modeling a given problem.
- Identify the base case and the general case of a recursively defined problem.
- Implement, test, and debug simple recursive functions and procedures.
- Compare iterative and recursive solutions for simple problems.
- Demonstrate different traversal methods for trees and graphs.
- Model problems in computer science using graphs and trees.
Exam, Assignment and Grading:
| Midterm One | 15% |
| Midterm Two | 15% |
| Final Test | 20% |
| 6 Programming Assignments | 20% |
| 25 Lab Programming Exercises | 25% |
| Attendance | 5% |
| Total | 100% |
The letter grade will be determined as follows:
| A: 90-110% | B: 80-89% | C: 70-79%,
| D: 60-69% | F: 0-59% |
Assignment Policies:
- All assignments must be in the
hands of the
instructor before class on the due date which will be specified on
each assignment.
Late assignments will be accepted up to one week with a one
time 20% late penalty.
-
Assignments will be graded on the
basis of correctness, quality of design,
documentation, and style.
- Any assignment submitted
without documentation or proper format will automatically receive a
20% deduction. Documentation, design, and style guidelines will
be discussed as the semester progresses. No assignment will be
graded which contains syntax errors.
Computer Project Documentation And Grading Guidelines:
Internal Documentation
- Program description:
- Your name
- Course and section for which your program was required
- Date completed
- Brief description of the problem solved
- Brief description of the global algorithms and data structures and files
- Assumptions or limitations of the solution
- Computer and Compiler used to complete the solution
- Class and Function description:
- An explanation of what each method accomplishes.
A statement of preconditions and post conditions for imported and exported parameters.
A list of any side effects (Global variables changed or accessed).
- Variable explanations:
- Each major variable (with the exception of loop control variables)
should have a brief explanation of what is being stored in the variable if not obvious from the variable name.
- Internal comments:
- Any major block of code within a procedure or the main program should have
a comment identifying that task. These comments should be the major steps you developed for
the algorithm in the problem-solving phase. Any algorithm, which is not obvious from the code,
should have a natural language explanation of how it works.
- Demonstration of correctness:
- It is the student's responsibility to identify test data to demonstrate
that the program runs correctly for the specification of the assignment.
The student may also schedule a demonstration appointment with the instructor.
Grading Breakdown (May vary with different projects)
- Documentation. -- 15%
- Program design. -- 65% (breakdown may vary)
- Correctness of solution
- Modularity (proper use of classes and functions)
- Choice of Algorithm (Efficiency, Data design)
- User Interface
- Error Checking
- Demonstration of correctness (tests runs). -- 20%
Important Note on Academic Dishonesty:
Students are expected to be familiar with the Department of Computer Science (UTPA)
policies on computer usage. All assignments and exams must be the student's own work.
Students are encouraged to help one another and work in groups to understand the materials
presented in class and the books, but both giving and receiving major sections of programming
code and exam solutions are considered cheating. Cheating will be punished severely.
For those who don't want others' cheating to cheapen your own hard work and hurt your
grade -- send an anonymous cheating reporting to the instructor via email.
When a cheating is caught, zero marks will be given the cheated work, and the case will
be forwarded to the Department chair and beyond if necessary. Students are also encouraged
to seek help with identifying syntax and run-time errors from the instructor during office hours.
Students are strongly encouraged to cite their sources
if they received extraordinary help from any person or text such as published
papers and Web documents.
Office Hours.
The instructor will normally be available in his office during posted office
hours. Outside of those hours, or times arranged on an appointment basis,
he cannot assumed to be available for course related matters, even if in his
office.
Attendance
You are expected to attend each class.
You are responsible for all materials covered
in class, the text book, and homework assignments.
Attendance will not taken every
class, but absence may be noted because of occasional counting.
Make-up exams and quizzes will not be given except by prior consent of the instructor.
You must notify the instructor within 24 hours after the exam/quiz when it is missed for
determination of excuse. Examples of acceptable excuses would be death of an immediate
family member, or illness, requiring physician's attention. Depending on the excuse,
make-up exams/quizzes will result in a loss of points.
Note to Students with Disabilities.
If you have a disability which will make it difficult
for you to carry out the
work as required by this class, or you need special accommodation/assistance
due to a disability, please contact the Coordinator at the Office of Services
for Students with Disabilities, Emilia Hall, Rm 100, immediately.
Appropriate arrangements/accommodations can be arranged.