CSC 150 Programming
Methodology
Syllabus Spring 2008
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