Course Outline: IN, Purdue University

By: Higher Education

Abstract: CPT 150/155C: Introduction to Visual Programming

Purdue University
150/155C Introduction to Visual Programming

Course Description

This course is an introductory programming course for computer programmers and systems analysts. Event-driven, visual and structured programming concepts will be presented. Course emphasis will be on the total program development process -- problem analysis, design, coding, testing, debugging and maintenance. Programming projects will involve common business problems that require data entry, display of calculated results, report requests, conditional testing, arithmetic operations, control breaks, array processing, data validation, searching, sorting, reading and writing files. Programs will be implemented using Borland's Delphi for Windows and its underlying Pascal language.

Organization and Schedule        Lecture 2, Lab 2, Credit 3

Semester Meeting Type Days Time Location
Spring '96 lecture 1 M, F 7:30-8:20am KNOY B035
lecture 2 M, F 10:30-11:20am KNOY B035
lecture 3 M, F 3:30-4:20pm KNOY B035
lab 1 T 7:30-9:20am KNOY 228 - IBM Lab
lab 2 T 9:30-11:20am KNOY 228 - IBM Lab
lab 3 T 1:30-3:20pm KNOY 228 - IBM Lab
lab 4 W 9:30-11:20am KNOY 228 - IBM Lab
lab 5 W 1:30-3:20pm KNOY 228 - IBM Lab
lab 5 Th 11:30-1:20pm KNOY 228 - IBM Lab
lab 5 Th 3:30-5:20pm KNOY 228 - IBM Lab
evening exam 2/28/96 7:00-8:00pm PHYS 112

Prerequisites             recommended           CPT 135 or familiarity with Windows

Keywords Applicable to Career Development and Job Hunting

    Structured Programming                               Program Maintenance
    Event-driven Programming                            Sequential File Processing
    GUI, Windows or Visual Programming           Program Flowcharts
    Program Development Life Cycle                  Structured Walkthroughs
    Program Testing                                          Program Documentation

Course Audience
    This is a required course for CPT majors and is their first programming course. It may also be taken as an elective course for non-majors who have an interest in Windows programming.

Course Manager and Lead Instructor
Name Office Phone Email Address Office Hours
Susan Lisack KNOY 217 49-42568 sklisack@tech.purdue.edu M, F 8:30-9:20am

Other Course Instructors
Name Office Phone Email Address Office Hours
Michael Payne KNOY 219 49-42566 mjpayne@tech.purdue.edu (as posted)

Required Textbooks, Lab Manuals, and Supplies
    Watson, B. (1995). Delphi By Example. Que Corporation.
    Four 3.5" diskettes
    3-ring folder (not 1" notebook) with side pockets, labels, tabs
    Flowchart template

Student Objectives

After successfully completing this course, you should be able to:
    1.Analyze a set of programming specifications in terms of inputs, processing and outputs
    2.Develop a logic design for solving the problem
    3.Translate the logic design into source code that exhibits good style and readability
    4.Generate test data and a test procedure for a program; compile and debug the program
    5.Prepare good program documentation.

How Final Grades will be Determined (subject to change with notice)
    Points
      Assessment Mechanism                           Total Points
      EXAMS
        Mid-term                                              100
        Lab Practical                                        75
        Final exam                                           125
      Exercises/Quizzes/Homework/
          Attendance (estimate only)                          350
      Projects (estimate only)                                  250
      design / walkthrough / completed project


    Grading Scale
      Grade               Scale
          A            90% and above
          B            80% - 89.9%
          C            70% - 79.9%
          D            60% - 69.9%
          F            below 60%

    Notes and Comments
    1. Grades are determined according to the percentage of total possible points you have earned. (However, the instructor reserves the right to use a percentage of high student's score instead). Grade sheets will be posted periodically for your review.
    2. PROJECT MASTERY: Scores for completed projects will not be recorded if the program produces incorrect output, severely violates structured programming principles, has more than 5 style violations, or does not contain the student's name in the program's header block. The project will need to be resubmitted until it is correct, with additional loss of points for each resubmission, in order to receive a score for that project.
    3. EXTRA CREDIT (Bonus points): Extra credit points will be offered for attending help sessions (maximum of 30 points), for turning completed projects in early, and for completing extra work on projects. If a project must be resubmitted, you will not receive any extra credit for submitting it early.
    4. INCOMPLETES: Incompletes will be granted only under extenuating circumstances (e.g. serious illness) documented through the Dean of Students' office. Do not expect to receive an incomplete to cover up failure in this course. Incompletes will not be given for non-mastery of programming assignments or poor attendance, without prior instructor approval. Programming assignments must be mastered or no score will be recorded for that assignment.


Course Policies
    Attendance, Preparation, and Courtesy Expectations and Policies
    1. It is assumed that you will read the assigned chapters and that you will attend ALL lecture and lab sessions. Attendance will be taken in every lab. You will be responsible for reading the assigned chapters before each lab period, and should plan to work through the examples in each chapter on the computer. Be prepared to ask questions in class. Exercises and quizzes over assigned material will be given.
    2. If you must miss a class for illness, or an appointment, contact the instructor in advance about the possibility of rescheduling a quiz or assignment. You should also have the phone number of 2-3 other students in the class that you can call to get class notes, announcements or assignments if you must miss class.
    3. Be in class on time. Late students disrupt the class. Getting up and leaving in the middle of class is rude. Talking to other students in the classroom distracts both the instructor and your fellow students. Finally, if you prefer to sleep or read newspapers, do not come to class.

    Add/Drop Expectations and Policies
    1. According to CPT educational policy, this course may not be added to any student's academic schedule after the third week of a Fall or Spring semester (or equivalent for a Summer semester) except under very extenuating circumstances to be approved by the Assistant Department Head of Computer Technology.
    2. According to CPT educational policy, no independent study course can be substituted for this course.
    3. It is common for students with no programming background to feel lost during the first 4-5 weeks of the course, even if they are receiving passing scores. Since the last day to drop is March 18, try to stick with the course for 8 weeks to get a good feel for programming before making a decision to drop. All students who are making a reasonable effort will receive a W (withdraw passing) if they decide to drop the course.

    Quiz and Exam Policies
    1. Make-ups for missed quizzes or exams will only be allowed if the instructor authorizes the excuse PRIOR to the quiz or exam and the circumstances warrant the makeup, or there was an illness or accident requiring doctor's care at the time of the exam. Written documentation of the doctor's care may be requested. Extenuating circumstances are handled individually and must be reported immediately. Every CPT faculty member has voice mail, so you can call the office at all hours of the night and leave a message.
    2. According to CPT policy, graded final examinations for 100- and 200-level courses will not be returned. They are being retained by the department for possible modification and use in course test-outs.

    Homework Policies and Quality Expectations
    1. Exercises and lab assignments are to be handed in at the beginning of the class period on the specified due date unless otherwise stated by the instructor. Jagged-edged pages torn out of a spiral notebook will not be accepted. Staple multiple pages.
    2. Save your programs on a diskette until your graded labs are returned.
    3. LATE ASSIGNMENTS: All late assignments must be clearly labelled with the name of the assignment, the course, and your name, and turned in at the CPT main office (KNOY 242). Late exercises and lab assignments will be penalized 1 point per week day unless the answer has been given to the class, in which case the assignment will be penalized 50%.
    4. Homework may be submitted for grading to the CPT Main Office in Knoy 242. All submissions will be dated and time-stamped. The office closes promptly at 5:00 PM; therefore all materials must be submitted by 4:30 PM for the instructor to receive it that day.
    5. To protect your privacy, graded materials will never be passed around the classroom or placed outside of an instructor's office door. Every student in this course has a "pickup file" in Knoy 242. You can pick up graded materials (and announcements) in Knoy 242 during normal business operating hours).

    Programming Policies and Quality Expectations
    1. Projects will be completed in 2 phases - written design, then the completed code. Each part is to be turned in inside a 3-ring folder.
    2. Project design materials are to be completed by the beginning of the class period on the specified due date for design walkthroughs. Failure to meet this deadline means a loss of 10 points for the current project walkthrough.
    3. Projects that do not produce correct output will not be accepted! If your project output does not meet the requirements of the program specifications, it is incorrect and you will be required to resubmit it, incurring any late penalties. Correct output means that screen messages and answers, reports and files are accurate, and the user can perform all the actions as stated in the project specifications.
    4. ANY OF THE FOLLOWING CONDITIONS WILL RESULT IN AN AUTOMATIC GRADE REDUCTION OF 10 POINTS FOR THE CURRENT PROJECT AND YOU WILL BE REQUIRED TO CORRECT THE ERROR(S) AND RESUBMIT YOUR PROJECT WITHIN 5 DAYS:
      • Failure to submit all your program listings to your instructor by the due date and time.
      • On your diskette, submitting a file which is improperly designated or not including all files needed.
      • Submitting a program which does not have a header block specifying your name.
      • Submitting a program which does not successfully compile.
      • Submitting a program which does not produce correct output. Note: You will not receive any credit for the program until the output is correct.
    5. Completed projects may be submitted for grading to the CPT Main Office in Knoy 242. All submissions will be dated and time-stamped. The office closes promptly at 5:00 PM; therefore all materials must be submitted by 4:30 PM to be considered "on time."

    Re-Grading Policies
    1. Any student who thinks a paper has been scored incorrectly should return the paper with a written statement explaining the problem. The instructor reserves the right to review the ENTIRE assignment (grade may DECREASE, as well as INCREASE). A re-grade request must be submitted no later than one week after the original grade is received. This policy will preserve objectivity and save time for both student and instructor.
    2. According to University regulations, only final course grades can be "appealed." There is a formal School of Technology and University timetable and process for grade appeals. It must be followed exactly! Questions about grade appeals should be directed to the Assistant Department Head of Computer Technology or the Chair of the School of Technology Grade Appeals Committee.

    Lab Policies and Expectations
    1. The scheduled laboratory periods will generally be used to discuss lab assignments, explain/try a new feature of Delphi, demonstrate your completed lab assignments, take quizzes, and work on the next lab assignment. Do not expect to finish all lab assignments in your scheduled lab time.
    2. The CPT labs are usually open evenings and Sundays for student use in completing class assignments. The labs are also available during the day when no scheduled labs are in session. Your CPT accounts will work in both KNOY 208 and KNOY 228. Check the lab doors for the current schedule.
    3. The Purdue Computing Center is installing 40 copies of Delphi in their labs (e.g. Mathews, AGAD, LAEB) to provide increased access outside of class.
    4. If you use the CPT laboratories, you are responsible for any and all laboratory policies - including the security policies that govern your account. Policies do change from time to time; therefore, you should review the CPTnet and Laboratory Policies at the beginning of each semester. Accounts can be temporarily or permanently suspended for policy violations.
    5. In the event that your account is suspended for any laboratory or network policy violation, this course will not extend deadlines or eliminate late penalties for assignments that could not be completed because of the suspension.

    Academic Dishonesty ("Cheating") Policies
    1. Students involved in a case of academic dishonesty may receive a failing grade in the course and the case will be referred to the Dean of Students for possible further disciplinary action. This action may range from academic probation to expulsion from Purdue with encumbered records (meaning that your credit at Purdue is not transferable to any other institution, ever).
    2. Students supplying materials in a dishonesty case are as guilty as those receiving the materials.
    3. The following cheating policy discussion is presented from the programming development life cycle perspective. Under each step in the cycle, activities will be listed that are encouraged versus those considered academically dishonest.

      Analyze the specifications (understand the problem) Students are encouraged to discuss the assignment specifications and exercises with other students in the class prior to developing the design.
      Design the Logic
      All elements produced by the design phase (i.e. narratives, logic descriptions, flowcharts, test plan, etc.) must be produced by EACH individual student. Variations may be allowed by the course instructor, but must be specified for each program.
      Submitting work which was not a DIRECT effort or product of the student is academically dishonest.
      Following completion of the individual design effort, students will meet in lab and be assigned to a walkthrough team. The team members will discuss and walkthrough their designs. After discussing the design with other class members, students MUST retain possession of their work.
      Allowing another student to copy work is academically dishonest. Any students participating in a walkthrough of a program that he must also design, including merely being present, is considered academic dishonesty if he/she has not previously completed the flowcharts for the project.

      Program Construction (Coding)
      In general each student must develop the code in isolation from other class individuals and enter his/her own programs.
      Copying or transferring of files through utility programs or mail, except as specifically authorized by the course instructor is forbidden.
      Using program documentation, code, notes or other materials from garbage cans or other means of disposal is forbidden.
      Submitting output that could not have been produced by the source program submitted is academically dishonest (i.e. edited output, output from another student's program, etc.)
      Contract programming (the purchase of a program from another person) is forbidden and both parties will be considered equally culpable.


Course Outline (subject to change)

I. Introduction to the Computer System Environment

II. Preliminary Programming Concepts
        A. Constants, variables and assignment statements
       B. Data types and conversion

III. Program Development Process
       A. Problem Definition
       B. Solution Planning with Structured Flowcharts and Design Walkthroughs
       C. Coding, Code Walkthroughs and Documentation
       D. Testing and Debugging
       E. Documentation and Maintenance

IV. Structured Programming
       A. Control Structures
       B. Modularization


V. Conditional Structures, IF Statements and Logical Operations, CASE statements
       A. Simple and Nested IF Statements
       B. OR and AND Logical Operations
       C. CASE Statements

VI. Repetitive Structures, WHILE, REPEAT and FOR loops
       A. Comparison of looping structures
       B. Control Break Processing

VII. Performing Calculations
       A. Operators and Operator Precedence
       B. Integer vs. Real

VIII. Coding Modules
       A. Procedures
       B. Functions

IX. Sequential Files
       A. Declaring, Opening and Closing Files
       B. Reading From and Writing to Files

X. Array Processing
       A. Defining and Loading Arrays
       B. Searching and Sorting Arrays
       C. Using and updating values in Arrays

XI. Random Access Files (CPT 155C only)


Course Calendar of meetings and/or Assignments (subject to change)
Week or Date
Monday
Lab (Tues, Wed, Thurs)
Friday
1/08
Course Intro., Syllabus, Windows review (Ch. 1, 2) Lab Policies, Accounts, Familiarization with Delphi Environment (Ch. 3, 4) Intro. to Pascal, variables, numbers, assignment statements, comments (Ch. 5-7)
1/15
Martin Luther King Holiday Simple Pascal Programs (Ch. 5-7) Intro. to Pascal (continued), simple math
1/22
Data Conversion (Ch. 9), Steps in Program Development Use Data Conversion subroutines, debugging tools and techniques Intro. to Structured Programming, Flowcharts, Conditional Structures (Ch. 10)
1/29
Conditional Structures (cont.) Code IF statements, radio buttons, check boxes CASE Structure (Ch. 11)
2/05
Repetitive Structures (Ch. 12) Code nested IFs, CASE statements Repetitive Structures (continued)
2/12
Procedures (Ch. 8) Code loops, procedures Functions (Ch. 8)
2/19
Testing programs, Coding style Discuss Project 1, code nested loops, procedures, MsgDialog box Integer vs. Real, Arithmetic Operators, Operator Precedence (Ch. 13)
2/26
Review for MID-TERM EXAM Feb. 28, 7-8PM, PHYS 112 Project 1 Design Walkthrough, multiple forms, tab order, Set Focus, perform calculations, functions No Lecture to makeup for night exam
S P R I N G B R E A K S P R I N G B R E A K S P R I N G B R E A K
3/11
Arrays (Ch. 17) Debugging, more subroutines Arrays (continued)
3/18
** PROJECT 1 DUE ** Arrays (continued) Coding arrays Sequential Files (Ch. 18)
3/25
Sequential Files (continued) Discuss Project 2, centering, borders, top-down coding and testing, files Data validation
4/01
Control breaks Project 2 Design Walkthrough, Sequential Files, formatting numbers Review for lab practical, discuss project 2 logic
4/08
Discuss project logic LAB PRACTICAL Reports, Menus
4/15
Updating sequential files Work on project 2 2-dimensional arrays
4/22
** PROJECT 2 DUE ** Demonstrate Project 2 Course Evaluation
FINAL EXAM
DATE: TIME: LOCATION:

Server Response from: ETNASC04