CSC 150  Programming Methodology
Syllabus  Spring 200
8


Dr. Gail Miles
Office  226 Mauney
Phone  7268

e-mail  milesg@lrc.edu

Syllabus
TEXTBOOK: Ada 95 - Problem Solving and Program Design Third Edition by Michael Feldman and Elliott Koffman


GENERAL DESCRIPTION: This course offers an in depth study of Programming using Ada as an example of programming concepts. It provides a rigorous introduction to a disciplined approach to fundamental programming constructs, fundamental data structures, algorithm and problem-solving development
using Ada 95. It lays the foundation of the discipline of computer science. Classes will meet in two lecture periods and one laboratory period per week. The course stresses algorithmic development and problem-solving techniques. It will be fast-paced, but no previous programming experience is assumed. A course in problem-solving or its equivalent is a prerequisite. The course requires a large amount of time outside the classroom. You must be committed to this requirement or you will be unsuccessful in its completion.

EVALUATION: Your performance will be determined by:

Four Exams (8 % @);
Programs (28 %) ;
Final Exam(20 %)
LABs, weekly quizzes (?)  and homework 20 %


NOTE: You will not be able to pass this course unless you can complete the homework and the assigned programs. Again, I want to stress that this is a very time-consuming course. If you do not have the time to devote to this homework, you may want to drop the course now. However, if you keep up with the programming, you can be very successful. You will be expected to read the textbook on your own. I will not be covering all that is in there. A portion on the class will be used to go over problems. YOU ARE EXPECTED TO READ THE BOOK – I DO NOT REHASH WHAT IS IN THERE IN CLASS.  Quizzes may be given on any day. These quizzes will cover recent previous material.

GRADING SCALE: A 93-100, A- 90-92, B+ 87-89, B 83-86 B- 80-82, C+ 77-79, C 73-76, C- 70-72 D+ 65-69, D 60-64, D- 55-59, F Below 55

EXAMS: All exams will be objective, with a combination of short answers, traces, and programs.  All will be on paper, not the computer.

OBJECTIVES/COMPETENCIES:
1. The course introduces a disciplined approach to problem-solving methods and algorithm development.
     a. Students will learn to use Pseudocode to develop appropriate  algorithms.
b. Students will develop program code that is logical and efficient

2. The course introduces procedural and data abstraction.
     a. Students will develop simple data structures that model the real world.
     b. Students will produce programs with some abstraction.

3. The course will teach program design, coding, debugging. testing,
 and documentation using good programming style.
     a. Students will create and debug 8 to 10 programs that follow good style.


POLICIES

MAKE-UPS OF EXAMS: No exams can be arbitrarily made-up. With exceptional circumstances (i.e. illness, college-related absences, or previous approval by the professor) exams may be made up if they are taken before the next class period after the test has been administered.

CLASS ATTENDANCE: You are expected to attend class. You cannot expect to do well unless you are here. The class will meet Monday, Wednesday and Friday from 10:20-11:30 in Lecture (Mauney 120) or Lab format (Mauney 118). YOU ARE REQUIRED TO ATTEND THE LAB PERIOD.
PROGRAMS.  You will fail the class if you miss more than 6 class periods – This is the policy of the School of Computing Sciences and Math –IT is not negotiable!
There is a separate handout that explains the requirements and mechanics of programs. For this course, programs will be used so you can practice the different data structures and concepts found in most powerful structured programming languages. They will be assigned as individual assignments. There will be 9 programs assigned with the first 3 approximately 200-250 lines of code, 4 and 5 will be approximately 300+ lines of code, and the remaining will be over 500 lines of code. These are separate from the lab assignments and weekly homework.

TOPICAL OUTLINE
I. General Programming Concepts
   a. Algorithm Development
       1. What is an Algorithm
       2. Pseudocode
   b. What is DATA
       1. Classification of data
       2. Use of identifiers
   c. Control Structures
       1. Abstraction?
   d. Boolean Expressions
II. Ada Concepts
   a. Ada Key Words
   b. Parts of an Ada Program
   c. Ada Arithmetic
      1. Real and Integer
   d. Input and Output concepts
   e. Using Subprograms
      1. User-Defined Procedures
          a. With and without parameters
             1. value and variable parameters
             2. Built-in Procedures and functions
             3. User-Defined Functions
   f. Control Structures
      1. If-Then and CASE statements
      2. While and repeat-until Loops
   g. Logic Programming
   h. Advanced Topics
       a. Files
       b. Enumberated types and subranges
       c. Arrays, Records, and Sets