UMUC-EUROPE GRADUATE PROGRAMS
BOWIE STATE UNIVERSITY

INSS520 Syllabus

Course Title Software Structures
Term TERM 2, 2003/2004
Education Center STUTTGART-VAIHINGEN-GRAD
Faculty Member Susan Dean - sdean@faculty.ed.umuc.edu

Faculty Contact Information:

Mailing Address: UMUC - Unit 29216, APO AE 09102

Phone: 06224/929773

Consultation:

In the classroom, during the lunch break. Other times by appointment.

CLASS MEETINGS:
0900-1600
25/26 Oct; 8/9 Nov; 22/23 Nov; 13/14 Dec

Between class meetings, we will communicate via the webboard:
http://webboard.ed.umuc.edu/~mis
Students should check frequently for postings of interest.
This will also be a place to post questions.
Students may also communicate privately with Dr. Dean via email.

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     92%
    B     80 – 91%
    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, your course grade comes from:
 
20%    Midterm Exam
25%    Final Exam
15%    In-class work, participation
10%    Takehome exam (comps-type question)
15%    Language research paper and presentation
15%    Programming Assignments (2)

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.
 
Complete programming assignments, write a graduate level paper:  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.
 
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 in-class 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 the takehome exam for this course will either be taken directly from past comprehensive exams or written as though to be included on a comprehensive exam.

Course Schedule:

Projected course schedule:

Sat AM 25 Oct:
Introductions, Review of Syllabus
Clarification of goals, objectives, and requirements
Preliminaries (Ch. 1)
Evolution of the Major Programming Languages (Ch. 2)

Sat PM 25 Oct:
Describing Syntax and Semantics (Ch. 3)
Lexical and Syntax Analysis (Ch. 4)

Sun AM 26 Oct:
Names, Bindings, Type Checking, and Scopes (Ch. 5)

Sun PM 26 Oct:
Data Types (Ch. 6)

Sat AM 8 Nov:
Expressions and Assignment Statements (Ch. 7)
Statement-Level Control Structures (Ch. 8)

Sat PM 8 Nov:
Statement-Level Control Structures (Ch. 8)
Supplementary Material on Computational Complexity (will be posted to the Webboard by noon Thursday, 6 Nov, so that you can read it before class)

Sun AM 9 Nov:
Time for questions ("review" is based entirely on questions asked by students)
Midterm Exam - Chapters 1-8 and Supplementary Material

Sun PM 9 Nov:
Subprograms (Ch. 9)
Implementing Subprograms (Ch. 10)

Program 1 is due Monday 17 Nov, via email

Sat AM 22 Nov:
Abstract Data Types and Encapsulation Constructs (Ch. 11)

Sat PM 22 Nov:
Support for Object-Oriented Programming (Ch. 12)

TakeHome is due Saturday 22 Nov

Sun AM 23 Nov:
Functional Programming Languages (Ch. 15)

Sun PM 23 Nov:
Logic Programming Languages (Ch. 16)

Program 2 is due Monday 8 Dec, via email

Project Paper is due Wednesday 10 Dec, via email

Sat AM 13 Dec:
Supplementary Information regarding software engineering and software management (will be posted to the webboard by noon Thursday, 11 Dec, so that you can read it before coming to class)

Sat PM 13 Dec:
Project Presentations

Sun AM 14 Dec:
Concurrency (Ch. 13)
Exception Handling and Event Handling (Ch. 14)

Sun PM 14 Dec:
Time for questions ("review" is based entirely on questions asked by students)
Final Exam - Cumulative, with heavier emphasis on material covered since the midterm exam.

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:

Dr. Dean earned the BA in Mathematics from Vanderbilt University, and the MS and PhD in Computer Science from the University of Alabama in Birmingham. She has worked at various times as a programmer, programmer/analyst, systems analyst, and project manager in the areas of medical information systems, small business support, and life insurance. Since 1975, she has been involved in teaching and curriculum development in computing, most recently at Samford University in Birmingham, AL. She has served on the Board of Directors and as President of the Consortium for Computing Sciences in Colleges. She serves on the Regional Board of the CCSC Southeastern Conference. Her areas of interest include curriculum development, database management systems, programming languages, security, and operating systems.


Last updated by Susan Dean: September 24, 2003, 11:37 am
Find this syllabus linked from the schedule at: http://www.ed.umuc.edu/schedule