UMUC-EUROPE GRADUATE PROGRAMS
BOWIE STATE UNIVERSITY

INSS620 Syllabus

Course Title Software Structures
Term TERM 4, 2006/2007
Education Center KAISERSLAUTERN-KAP-GRAD
Faculty Member Kerry Painter - kpainter@faculty.ed.umuc.edu

Faculty Contact Information:

I can be contacted at the email address given above. Please always address me by my first name. (By the way, I am a guy (male).)
If you have any questions about the course feel free to contact me via email.

Each email message subject line must begin with "MSIT 610:", otherwise, your message may wind up in my junk email folder. Thanks.

Consultation:

Since our class will be held on the weekends, you may call on my services at lunchtime on the Saturdays and Sundays that we meet. I will also be available immediately after class on Saturdays. And, of course, I'm always available by email and encourage you to stay in touch.

We will meet at Kapaun in Kaiserslautern from 9am - 4pm each Saturday and Sunday on the following weekends:

24/25 March 2007
14/15 April 2007
28/29 April 2007
12/13 May 2007

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:

There will be other articles to read. I will send you those readings by email.

I urge you to make use of the many resources on the Internet to help you with the more difficult topics discussed in our textbook.

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.  (Formerly INSS 520.)  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 - Below 70%

Please note that Bowie State University does not use "D" for graduate students. The grade F 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/.

Your grade will be calculated and based on the following components:

Short Programming Projects - 15%
Language Research Project - 15%
Language Research Project Presentation - 20%
Participation/Discussions - 10%
Midterm - 20%
Final Exam - 20%

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% - Participate in classroom discussions


30% - Complete graduate level projects or programming assignments, write graduate level papers or case studies


20% - Orally/visually present prepared material


40% - Complete one or more written examination(s)

Description of Course Requirements:

Project Descriptions:

Students are required to complete two types of projects:

- four or five short programming projects, and
- a language research project.

The programming projects will consist of installing necessary compilers and compiling and executing short, sample programs. We will experiment with a number of different languages. The actual assignments and problem specifications will be announced and distributed in class during our first week. Students are encouraged to work in pairs.

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. During the last week of class each study group will present their research findings 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
- etc....

More details about the projects' specifications will be given in class.

Participation/Discussions:

Students are expected to have read the relevant chapters before coming to class so as to be prepared to discuss the material and ask questions.

Exams:

There will be two exams, a midterm and a final exam. The tests will consist of a variety of questions: objective type questions, problem solving questions, essays, etc. Many of the questions will be similar to what you can expect on the comprehensive exams given at the completion of your degree program.

Course Schedule:

Our tentative schedule is as follows:

Weekend 1: 24/25 March 2007

Saturday AM Session:

Introductions
Review of syllabus
Clarification of goals, objectives and requirements
Introduction to Programming Languages - Chapter 1

Saturday PM Session:

Evolution of the Major Programming Languages - Chapter 2

Sunday AM Session:

Syntax and Semantics - Chapter 3
Lexical and Syntax Analysis - Chapter 4

Sunday PM Session:

Names, Bindings, Type Checking, and Scopes - Chapter 5

Weekend 2: 14/15 April 2007

Saturday AM Session:

Data Types - Chapter 6

Due: language research project progress report
Due: assigned compiled programs

Saturday PM Session:

Expressions and the Assignment Statements - Chapter 7

Sunday AM Session:

Statement Level Control Structures - Chapter 8

Sunday PM Session:

Subprograms - Chapter 9
Implementing Subprograms - Chapter 10


Weekend 3: 28/29 April 2007

Saturday AM Session:

Midterm: Chapters 1 - 10

Due: language research project samples
Due: assigned compiled programs

Saturday PM Session:

Abstract Data Types, Encapsulation Constructs - Chapter 11

Sunday AM Session:

Support for Object-Oriented Programming - Chapter 12

Sunday PM Session:

Concurrency - Chapter 13


Weekend 4: 12/13 May 2007

Saturday AM Session:

Exception Handling, Event Handling - Chapter 14

Saturday PM Session:

Functional Programming Languages - Chapter 15

Sunday AM Session:

Logic Programming Languages - Chapter 16

Due: Student presentations (language research projects)

Course Evaluations
Sunday PM Session:

Final Exam

Due: study group language research project
Due: assigned compiled programs

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.

Students with disabilities should contact the appropriate support office at UMUC-Europe. 

Jan Keller, Director of Student Services

UMUC-Europe, Heidelberg

Phone:  +49-6221-378299

Email:  edstudent_svc@ed.umuc.edu

Mailing Address:  Unit 29216, APO AE 09102 OR Im Bosseldorn 30, D-69126 Heidelberg, Germany

Please refer 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
Code of Civility

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

Faculty Bio:

Kerry Painter earned his BA degree in Chinese-Vietnamese Language Studies from the University of Hawaii in Honolulu. Before attending the University of Hawaii, he studied electrical engineering at Clemson University, attended the 47-week North Vietnamese language course at the Defense Language Institute in Monterey, California, and worked as a linguist for the Army Security Agency in both Vietnam and Korea.

For six years after college graduation he worked in radio news as a reporter, writer, announcer, news director, and manager in Hawaii, Texas, and Delaware. He earned an MS degree in Technical and Science Communication and an MS in Computer Science from Drexel University in Philadelphia.

Kerry did doctoral studies at Drexel and has taught a variety of computer science and mathematics courses at Drexel University, Penn State University, Elizabethtown College, and Swarthmore College, all in Pennsylvania. He joined The University of Maryland European Division in January 1989 and has taught at SHAPE in Belgium, Soesterberg Air Base, AFNORTH, and Vokel in Holland, Aviano Air Base in Italy, and at several German locations: Augsburg, Bad Kreuznach, Bamberg, Baumholder, Berlin, Beuchel, Dexheim, Geilenkirchen, Giebelstadt, Hahn, Hanau, Heidelberg, Kapaun, Kitzingen, Mannheim, Ramstein, Rhein Main, Schweinfurt, Spangdahlem, Wiesbaden, and Wuerzburg.


Last updated by Kerry Painter: February 12, 2007, 10:10 am
Find this syllabus linked from the schedule at: http://www.ed.umuc.edu/schedule