UMUC Europe
SearchSearch Contact UsMyUMUC Site MapWebTycho  
Maryland in Europe Graduate Programs

Maryland in Europe Graduate Programs

Bowie State University

Software Structures

INSS 520

Weekends 25/26 January;8/9,22/23 February;8/9 March 2003

Rhein-Main

0900-1600 (Lunch 1200-1300)

Instructor:

Chris Payne PhD

Mailing Address:

Unit 29216 APO AE 09102

Email Address:

chris-payne60@wanadoo.fr

Consultation:

Before or after class or at other times by appointment

Course Description: Prerequisites: Undergraduate programming and college algebra, or permission of the instructor. Recommended prerequisite: INSS 510. Provides an in-depth look at programming languages from a design and implementation perspective. Language semantics and syntax issues are explored. Specification and implementation of data structures are examined. Characteristics of non-procedural, heuristic and object-oriented languages are discussed. Current developments in software engineering methodologies are reviewed as well as research into the improvement of those practices. Software project management concepts and software quality issues are also addressed. Students will be required to complete programming projects.

Course Goals/Objectives:

Goals: Students who complete this course should have knowledge of:

1.

Major attributes of several programming languages

2.

Tradeoffs in programming language design and usage

3.

Data types and abstract data types

4.

Basic data structures

5.

Structured programming

6.

How a programming language can support good software engineering

7.

Computational complexity and its relationship to software quality;

8.

The principal programming paradigms: imperative/procedural, object-oriented, functional/applicative, logic, and concurrent programming

9.

Current issues in programming languages

Objectives: At the conclusion of this course the student will be able to:

1.

Describe and apply the fundamental criteria needed to evaluate and compare computer programming languages

2.

Demonstrate understanding of the underlying concepts of programming languages such as: syntax, semantics, binding, type checking, scope, data types, expressions, control structures, and subprograms

3.

Understand the major programming paradigms; recognize differences between imperative, object-oriented, functional and logic programming languages

4.

Compare and contrast the different capabilities of programming languages and evaluate languages for various programming problems

5.

Characterize a given program or algorithm in terms of its computational complexity and efficiency

6.

Compare and contrast different implementations of standard data structures such as lists, stacks, and queues

7.

Understand concepts of object-oriented programming such as encapsulation, inheritance, dynamic binding, and polymorphism

8.

Apply understanding of software engineering practices to software quality assurance

9.

Apply programming concepts in making software management decisions

10.

Research and discuss current issues in programming languages

Text: Sebesta, Robert W. (2002). Concepts of Programming Languages, (5th ed.). Boston: Addison-Wesley.

Grading Information: Grades for this course will be assigned as follows:

 

A

92% +

C

70 – 79%

 

B

80 – 91%

F

Below 70% F(a) or regular non-attendance F(n)

Course Requirements:

 

Midterm Examination:

35%

 

Final Examination:

35%

 

3 computer programs

10% each

Project Description: Students will be required to complete three computer programs to illustrate the features of different program types. Full details will be given out on the first day of class.

Course Schedule:

Module

Topics

Assigned readings/assignments due

1

Introduction and Overview

Ch. 1

2

The History of Programming Languages

Ch. 2

3

Programming Syntax and Semantics

Ch. 3

4

Binding, Datanames and Scope

Ch. 4

5

Data Types

Ch. 5

6

The Assignment Statement

Ch. 6 Program # 1 Hand-in

7

Control Structures

Ch. 7

8

Subprograms

Chs 8/9 Midterm Exam (Chs. 1-8)

9

Abstract Data Types

Ch. 10

10

Concurrency

Ch. 11

11

Exception Handling

Ch. 12

12

Functional Programming

Ch. 13 Program #2 Hand-in

13

Logic Programming

Ch. 14

14

Object Orientation

 

15

Database and |Internet Languages

 

16

Final Examination

Program #3 Hand-in

About Your Instructor: I am Chris Payne, a Collegiate Professor with the University. I have been involved with the Graduate Program in Management Information Systems since 1994 . In all, I have worked for UMUC-Maryland in Europe since 1986 and I spent a year as a visiting associate professor at the University of Maryland in Baltimore between 1985 and 1986. My degrees include a Bachelor's in Math from the University of London, a Masters in Applied Math and a a PhD in Computer Modeling from the University of Liverpool. I worked for nearly 30 years as a college professor in the UK interspersed with periods of work in the steel and oil industries. For a few years I ran a small company to market my own software which included a successful program for computer-aided garden design.

Dr. Chris Payne

Plésidy, France

December 2002