CS305 - Syllabus

Number and Title of Course: COMPUTER SCIENCE 305 - Programming Seminar I (3 cr.) Prerequisite : Computer Science 205.

Instructor: Wayne Summers Office: SC212A Office phone: (505) 454-3230

Department phone: (505) 454-3295

Office Hours: MTWR 11:00-12:00, F 10-12 and by appointment

e-mail address: wsummers@merlin.nmhu.edu

homepage: http://csc.ColumbusState.edu/summers

Description of Course

Required Textbook

General Objectives

Specific Objectives

Major Topics

Format and Teaching Style

Assignments for Course

Instructional Methods and Techniques

Schedule


Description of Course: The study of algorithms important in software development, providing students with experience in designing and building large programs. An Introduction to Visual Programming.


Required Textbooks Delphi Programming Explorer by Jeff Duntemann, Jim Miscel, and Don Taylor, Coriolis Group Books, 1995.

Supplementary Books and Materials

* Pascal and Beyond... Data Abstraction and Data Structures using Turbo Pascal by Steve Fisher and Stuart Reges.

* Oh! Pascal! Learning to program in Turbo Pascal 6.0 by Doug Cooper..

* 2 - 3.5 inch double-sided, high density microfloppy disk.

* Software and manuals found in the lab.


General Course Objectives

* Familiarize students with the processes involved in long computer programs;

* Give students practice testing and debugging programs more like the ones they can expect to be working with after graduation;

* Present algorithms and 'tricks' commonly used in the development of computer programs.

* Introduce the concepts of Visual Programming.


Specific Course Objectives

Upon completion of this course, students should be more comfortable writing, testing and debugging longer, more sophisticated computer programs on their own. This includes being comfortable with the following:

* top-down design and object-oriented design including the use of tools such as structure charts and step-wise refinement;

* the development of comprehensive test data sets;

* the sophisticated use of procedural and data abstraction including Abstract Data Types and Objects;.

* the storage of modules and objects in libraries and later access of those modules and objects.

* the use of symbolic debuggers.


Major Topics

Week 1-4 Review of CS II & Introduction to Object Oriented Programming and Delphi

Delphi Components

Weeks 5-8 Fundamentals of Object Oriented Programming

Encapsulation, Inheritance, and Polymorphism; Type-casting

Forms and Units; Dialogs

Week 9-11 Applications

Files & Tables

Simple Database Applications

Weeks 12-15 "Database Adventure"

Designing and Implementing a Database System

Developing Documentation and Help Screens


Format and Teaching Style

The course consists of two 50 minute lectures with time included for questions and answers. In addition, there is a 2-hour lab, which will cover material not included in the lectures. Each student will be expected to attend all lectures and lab sessions. The lab is NOT a help session. Students and the instructor will share their experiences of designing, coding, testing and debugging of large programs in general and in the context of specific problems using Visual Programming techniques. Algorithms to accomplish complex behaviors will be developed by the class as a whole and students will be asked to present their design and coding work for class critique. Class participation by all is expected. The emphasis will be on visual programming.


Exams and Assignments: There will be one midterm exam and one comprehensive final exam. Exams cover material from the text as well as laboratory activities. The lectures may not cover all the material in the textbooks. There will be several major programming projects as well as a few small lab assignments. These programs will involve sophisticated algorithms and data structures. The projects will be expected to be complete and robust, including good user interfaces and the ability to handle improper input. Industry level internal and external documentation will also be expected. Late assignments will be subject to up to a 25% deduction in points per day. No credit will be given for assignments which are more than one week late. The following guidelines will be followed when grading programming assignments: execution= 20%, correctness of output= 20%, design of output= 15%, design of logic= 20%, standards= 15%, and documentation= 10%. Programming assignments may be turned in early for extra credit if the assignment is near perfect. (1 point will be given for each day the assignment is turned in early, up to a maximum of 5 points per assignment).

Course Evaluation:

small lab assignments = 100-200 pts.

Programming Project = 100 pts.

programming assignments = 150-200 pts.

homework, quizzes & participation = 50-200 pts.

One midterm tests = 100 pts.

1 Comprehensive FINAL EXAM = 200 pts.

Grades may be determined according to this scale :

A 90% - 100% B 80% - 89%

C 70% - 79% D 60% - 69%


Class Attendance: Class attendance is the responsibility of the student, and it is the student's responsibility to independently cover any material s/he may miss. Class attendance and participation may also be used in determining grades. You should attend all lab sessions. Attendance will be taken.

Honor Policy: Cheating will not be tolerated. Any student caught cheating will be given a zero on the assignment or exam. Repeat offenders will be given an F for the course and may suffer expulsion from the university. All work must be your own. You may discuss the material in the course and help one another, however, I expect any work you hand in for a grade to be your own. Plagiarism will result in, at best, an "F" for the assignment. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but don't read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please see me immediately.

Makeup Exams: Makeup exams will be given only if the instructor is notified IN ADVANCE of the exam with a legitimate reason for missing the exam.


COURSE OUTLINE (tentative)

DATE Chapter Description Lab

Week 1: TP - 13 Turbo Pascal UNITs Ch. 1 - Way RAD!

DA - 1 Review of Abstraction

Week 2: DA -2 Data Abstraction Ch. 3- Components & Properties

TP - 14 Objects

DPE - 2 Is This Really Programming?

Week 3: LABOR DAY

DPE - 4 All of your Stuff and Buckets ... Ch. 5- Visual and Non-Visual

Components

Week 4: DPE - 6 Data, Data, Everywhere Ch. 5- Visual and Non-Visual

Components

Week 5: DPE - 8 Units and Objects Ch. 7 - Forms and Units

Week 6: DPE - 8 Units and Objects Ch. 9 - Delphi and the Dialogs

Week 7: NOTES: Encapsulation, Inheritance Ch. 9 - Delphi and the Dialogs

DPE - 10 Our Objects All Sublime

Week 8: NOTES: Polymorphism MIDTERM EXAM

DPE - 10 Our Objects All Sublime (in lab)

Week 9: DPE - 11 Files and File Types Ch. 11 - Files and File Types

DPE - 12 Points of Light, Spots on Paper

Week 10: DPE - 12 Points of Light, Spots on Paper Ch.13-Database Applications

Week 11: DPE - 14 Tables on the Record Database Applications

Week 12: DPE - 14 Tables on the Record Database Applications

DPE - 15 Programming Is My Business

Week 13: DPE - 16 Examining the Body Database Adventure

DPE - 17 It Happened in the Library

DPE - 18 Staking Out Some Hot Properties

Week 14: DPE - 19 A Strange Turn of Events HAPPY THANKSGIVING

DPE - 20 Returning to the Scene

Week 15: DPE - 21 A Matter of Hard Evidence Database Adventure

DPE - 22 Help Arrives in the Nick of Time

FINAL EXAM - Fri. DEC 8. 6 P.M.