UMUC-EUROPE GRADUATE PROGRAMS
BOWIE STATE UNIVERSITY

INSS520 Syllabus

Course Title Software Structures
Term TERM 2, 2003/2004
Education Center DIST-ED_EUROPE_GRAD
Faculty Member Susan Propst - spropst@faculty.ed.umuc.edu

Faculty Contact Information:

Susan Propst
PSC 45 Box 1412 APO AE 09468
E-mail: spropst@faculty.ed.umuc.edu

Consultation:

As required

Required Texts and Readings:

Sebesta, Robert W. (2004).  Concepts of Programming Languages, (6th ed.).  Boston:  Pearson.

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%
    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(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:
 
15%  -  Complete weekly homework assignments, including review questions, problems and class participation
30% - Complete programming assignments, one of which will be a group project
20%  -  Write a graduate level paper as a group assignment
35%  -  Midterm and final examinations(s)

Late Examinations or Assignments.
It is expected all examinations and assignments will be turned in on time. I recognize there may be circumstances that prevent you from finishing programs or homework on time. If such circumstances arise, it is YOUR responsibility to coordinate with me PRIOR to missing a deadline. Extensions will only be granted for extreme circumstances, and must be approved by the instructor prior to the due date. Unless you have received an extension from me, grades on the weekly assignments submitted after the due date will be reduced by 25%, and no assignments will be accepted one week after the due date. Grades on a research paper or programming assignment submitted after the due date will be reduced by 50%. Programming assignments and the research paper submitted more than 1 week late will not be accepted for credit.

Description of Course Requirements:

Participate in the class: You are expected to engage in all on-line discussions in a professional and informed manner. Usually this requires approximately ten hours of preparation per week for a DE class.
 
Complete programming assignments, write graduate level papers or case studies:  You are required to conduct professional-level research, including appropriately citing works of others and avoiding plagiarism. Plan on committing approximately 150 hours over the duration of this course to producing professional level deliverables, to include programs, projects, papers, and/or case studies.
 
Visually present prepared material: You are required to present your results in a professional manner. In a DE class, this means creating a visual/textual presentation for your instructor and classmates.
 
Complete one or more written examination(s): 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.

All work submitted for this course must be your own work. Plagiarized papers, programs, reports, or exams will receive a grade of zero. This would also apply to a student knowingly allowing another student to plagiarize their work.

Course Schedule:

This schedule presents 16 units or modules, with each unit corresponding to a regular three-hour weekday meeting, a half-day on weekends, or a full week of DE.
 
Initial week:
      Introductions
      Review of syllabus
      Clarification of goals, objectives and requirements
      Orientation to subject
 
Second week:
Intro to Programming Languages
 
Third week:
Syntax and Semantics, Lexical and Syntax Analysis
 
Fourth week:
Names, Bindings, Type Checking, and Scopes
 
Fifth week:
Data Types
 
Sixth week:
Expressions and Assignment Statements
Programming Assignment 1 Due
 
Seventh week:
  Statement-level Control Structures
Mid-term Exam

Eighth and ninth week:
BREAK

Tenth week:
Subprograms, Implementing Subprograms
 
Eleventh week:
Abstract Data Types
Programming Assignment 2 Due
 
Twelfth week:
Support for OO Programming
 
Thirteenth week:
Concurrency
 
Fourteenth week:
Exception Handling
Group Research Paper Due
 
Fifteenth week:
Functional & Logic Programming Languages
 
Sixteenth meeting:
      Final examination
Group Programming Assignment Due
      Course evaluations

Academic Policies:

Please refer to the UMUC - Europe Graduate Catalog, available online at http://www.ed.umuc.edu/general_info/publications/catalogs/index.html or from your local Education Center, for information on the following:
        Academic Integrity
        Course Load
        Exception to Policy
        Grade Appeal Process
        Make-up Examinations
        Nondiscrimination
        Students with Disabilities

Faculty Bio:

BS in Computer Science, 1982 Duke University, and MS in Computer Science, 1995 University of Colorado/Colorado Springs. Susan has over 15 years experience in the computer industry, working in system design, software development and maintenance. She has been teaching for Maryland in Europe since May 2000.


Last updated by Susan Propst: September 19, 2003, 6:27 pm
Find this syllabus linked from the schedule at: http://www.ed.umuc.edu/schedule