UMUC-EUROPE GRADUATE PROGRAMS
BOWIE STATE UNIVERSITY

INSS520 Syllabus

Course Title Software Structures
Term TERM 5, 2004/2005
Education Center HEIDELBERG-GRAD
Faculty Member Edmund Deaton - edeaton@faculty.ed.umuc.edu

Faculty Contact Information:

Class meeting times: June 4,5; June 18,19; July 9,10; July 23,24 from 0900 until 1600.
The term begins June 4 and ends July 24, 2005.
INSTRUCTOR: Edmund I. Deaton
e-mail: edeaton@faculty.ed.umuc.edu
phone: +34 956 81 38 51 (Spain) German phone will be announced when available.

Consultation:

Dr. Deaton will be available 30 minutes before each class meeting and after each class meeting. He is available by appointment, e-mail and telephone. We will also use the WebBoard for consultation.

Required Texts and Readings:

Sebesta, Robert W. (2006).  Concepts of Programming Languages, (7th ed.).  Boston:  Pearson/Addison Wesley. (ISBN 0-321-33025-0)

Supplementary Readings:

The standard for papers in the graduate program is the APA style. All participants in this course and all graduate INSS, MGMT, PUAD, and ECON courses should have a copy of the style guide:


American Psychological Association. (2001). Publication Manual of the American Psychological Association, 5th Edition. Washington DC: Author.

All graduate students should be prepared to utilize the UMUC online library at http://www.umuc.edu/library/.  The library contains a large number of full text academic journals that are free of charge and immediately available.  The library homepage also contains a number of links related to improving students' research and writing skills.

Recommended Journals:

Publications of the various professional societies (such as ACM -- the Association for Computing Machinery, the IEEE Computing Society, and the various management professional societies) are strongly recommended.  In addition, there are many trade journals (such as eWEEK) that MIS professionals should become familiar with, many of these being published both weekly and on-line.

Course Description:

3 semester hours credit.  Prerequisites: Undergraduate programming and college algebra, or permission of the Program Director. Recommended prerequisite: INSS 510. Provides an in-depth look at software 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:

Upon completion of the course, participants should be conversant in:
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

Course 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. Describe 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. Describe 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

Grading Information:

Grades for this course will be assigned as follows:


A 90% - 100%
B 80% - 89%
C 70% - 79%
F(a) less than 70%

Please note that Bowie State University does not use "D" for graduate students. The grade F(a) is used to designate academic failure. F(n) is used to designate failure for non-completion.  Grades of Incomplete or Withdrawal are governed by UMUC-Europe policies. For further details, please refer to the UMUC-Europe Graduate Catalog, available in your local Education Center or online at http://www.ed.umuc.edu/general_info/publications/catalogs.

Course Requirements:

Graduate school at the masters level focuses on helping students obtain the education needed for success as professionals in their chosen fields. Thus, UMUC-Europe Graduate Programs and Bowie State University share the common goals of promoting excellence in academic scholarship through thoughtful inquiry and the skillful application of knowledge and theory for the betterment of society.


In order to maximize your graduate educational experience in general and this course in particular, you are required to:



10% - Minor Assignments, Exercises, Participation in classroom discussions
30% - Programming Assignments
20% - Mid Term Examination
25% - Final Examination
15% - Group Research Project

Description of Course Requirements:

Participate in classroom discussions: You are expected to come to class prepared to engage in all discussions in a professional and informed manner. Usually this requires two to three hours for every hour of a face-to-face class and approximately ten hours of preparation per week for a DE class.


Complete graduate level projects, write graduate level papers:  You are required to conduct professional-level research, including appropriately citing works of others and avoiding plagiarism. Resubmission of course work from previous classes (whether or not taken at UMUC, UMUC-Europe or BSU), partially or in its entirety, is not acceptable in this course and will result in an automatic failure on the assignment.



Orally/visually present prepared material: You are required to present your results in a professional manner. In a face-to-face course, this typically means an oral presentation accompanied by appropriate visual material.


Complete two written examinations: The examination process in this class will assist you in developing the writing and critical thinking skills necessary for successfully passing the comprehensive exam required of all graduate students. The examination questions used for this course will either be taken directly from past comprehensive exams or written as though to be included on a comprehensive exam.



Project Description:

Two projects are required:

- a programming project, and
- a language research project.

The programming project is required of each student. The actual assignment and problem specifications will be announced and distributed in class during our first session.

Each student will be assigned to a study group consisting of three to five members.

Each study group will be assigned a language to research. On the Sunday morning of our last meeting, each group will present their research to the class in the form of a slide presentation and a compiler or interpreter demonstration with an actual program written by the group. Some items to consider in the slide presentation: history of the language, author(s), notable characteristics of the language, syntax examples, and so on.

Course Schedule:

This schedule presents 16 units or modules, with each unit corresponding to a regular three-hour weekday meeting or a half-day on weekends (our case).

We will meet from 0900 - 1600 on the following weekends:

* June 4, 5, 2005
* June 18, 19, 2005
* July 9, 10, 2005
* July 23, 24, 2005

Our tentative schedule follows:


Initial meeting: Saturday morning - 4 June 2005
Introductions
Review of syllabus
Clarification of goals, objectives and requirements
Introduction to Programming Languages - Chapter 1

Second meeting: Saturday afternoon - 4 June 2005
Evolution of the Major Programming Languages - Chapter 2

Third meeting: Sunday morning - 5 June 2005
Syntax and Semantics - Chapter 3

Fourth meeting: Sunday afternoon - 5 June 2005
Lexical and Syntax Analysis - Chapter 4

Fifth meeting: Saturday morning - 18 June 2005
Names, Bindings, Type Checking, and Scopes - Chapter 5

Sixth meeting: Saturday afternoon - 18 June 2005
Data Types - Chapter 6
Due: Progress report on programming project including first working section.

Seventh meeting: Sunday morning - 19 June 2005
Expressions and the Assignment Statements - Chapter 7

Eighth meeting: Sunday afternoon - 19 June 2005
Mid term examination

Ninth meeting: Saturday morning - 9 July 2005
Statement Level Control Structures - Chapter 8

Tenth meeting: Saturday afternoon - 9 July 2005
Subprograms - Chapter 9
Due: programming project progress, language research progress report.

Eleventh meeting: Sunday morning - 10 July 2005
Implementing Subprograms - Chapter 10

Twelfth meeting: Sunday afternoon - 10 July 2005
Abstract Data Types, Encapsulation Constructs - Chapter 11

Thirteenth meeting: Saturday morning - 23 July 2005
Support for Object-Oriented Programming - Chapter 12

Fourteenth meeting: Saturday afternoon - 24 July 2005
Exception Handling, Event Handling - Chapter 14
Functional Programming Languages - Chapter 15
Logic Programming Languages - Chapter 16

Fifteenth meeting: Sunday morning - 24 July 2005
Student presentations - language research

Sixteenth meeting: Sunday afternoon - 24 July 2005
Course evaluations
Final Examination
Due: programming project, study group language research project

Academic Policies:

The University has a license agreement with Turnitin.com, a service that helps prevent plagiarism from internet resources. I may be using this service in this class by either requiring students to submit their papers electronically to Turnitin.com or by submitting questionable text on behalf of a student. If you or I submit part or all of your paper, it will be stored by Turnitin.com in their database throughout the term of the University's contract with Turnitin.com. If you object to this temporary storage of your paper, you must let me know no later than two weeks after the start of this class. Please Note: If you object to the storage of your paper on Turnitin.com, I may utilize other services to check your work for plagiarism

The official university policy on Plagiarism and Academic Dishonesty can be found at http://www.umuc.edu/policy/aa15025.shtml. Section I.C. states: "Faculty may determine if the resubmission of course work from previous classes (whether or not taken at UMUC), partially or in its entirety, is acceptable when assigning a grade on that piece of course work. Faculty must provide this information in their written syllabi. If the resubmission of course work is deemed to be unacceptable, a charge may not be brought under this Policy and will be handled as indicated in the written syllabi."

Please refer to Description of Course Requirements for specific information on how resubmissions will be treated in this course and to the UMUC-Europe Graduate Catalog for information on the following:

Academic Integrity
Course Load
Exception to Policy
Grade Appeal Process
Make-up Examinations
Nondiscrimination
Students with Disabilities
Code of Civility

Hard copies of the catalog are available at your local Education Center.

Faculty Bio:

INSTRUCTOR: Edmund I. Deaton
Dr. Deaton received his Ph.D. in Mathematics from The University of Texas. He has been teaching and doing research in Computer Science since 1980. After many years at San Diego State University he retired in 1992. He was a visiting professor at Hope College, Holland, Michigan during 1993-1995. He spent two years at Oklahoma State University from 1980 to 1982 as a visiting professor and visited there again in 1992. He worked as a management consultant with a Southern California consulting firm for several years in the 1980's. He specialized in database design for governmental entities. He has been with the University of Maryland, European Division since 1995. He teaches in the graduate MIS program and also teaches undergraduate computer science courses. His academic specialty is data base design. His primary hobbies are hiking and Alpine climbing. Although based in Heidelberg, he calls Rota, Spain home and hopes to be assigned there for some time each year. He is currently living in Rota, Spain and will be there until June 2005 2004. Phone (Rota, Spain) +34 956 81 38 51 (h)+34 639 55 02 64 (c).


Last updated by Edmund Deaton: April 24, 2005, 12:12 pm
Find this syllabus linked from the schedule at: http://www.ed.umuc.edu/schedule