UMUC-EUROPE GRADUATE PROGRAMS
BOWIE STATE UNIVERSITY

INSS620 Syllabus

Course Title Software Structures
Term TERM 4, 2006/2007
Education Center DIST-ED_EUROPE_GRAD
Faculty Member Jim Helton - jhelton@faculty.ed.umuc.edu

Faculty Contact Information:

I can be contacted using the e-mail address at the top of this syllabus or via your personal study group conference.

Consultation:

I am always available for private consultation via e-mail, online chat (in Web Tycho) or via the personal study group in class. Telephone consultations can be arranged by appointment. Please schedule telephone appointments via e-mail or your personal study group conference in the classroom.

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.ed.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% +
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:

10% - Participate in online conferences and discussions

40% - Complete two small programs (see description of course requirements)

25% - Complete an online open book/notes midterm examination

25% - Complete an online open book/notes final examination


Important note: 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.

Description of Course Requirements:

Participate in classroom discussions: You are expected to engage in the online conferences. Usually this requires the student to log into the classroom five to six times per week for about a half an hour per session. Each week's conferences will have numerous informational topics as well as one "mini" assignment. In the mini assignment, students will be asked questions on various real-world, textbook, and case-study topics, which they are required to answer to receive participation points. Note that the weekly reading assignmetns are expected to be completed prior to the start of class for the indicated week in the course schedule.

In addition, each student will be required to complete two short programming assignments. Programs may be written any any high-level (3rd generation) language the student chooses (i.e. C, C++, Java, Visual Basic, etc.). Scripting languages (i.e. Perl, Python, or C-shell) will not be accepted.

Assignment descriptions:
1. Program 1 - develop a basic "stack-based" calculator to perform basic addition, subtraction, multiplication, or division of numbers. Students may use built-in types, such as C++'s std::stack or the Java equivalent, rather than developing their own stack container.

2. Program 2 - The student will develop a "Set", which is a data structure that contains any number of a single data type (i.e. integers). None of the items can be duplicated in the set. A user must be able to create a set of any data type, add items to the set, remove items from the set, and search for items in the set.

Course Schedule:

This schedule presents 13 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.

All chapter references are to the course text.

The following is a breakdown of what we will cover, as well as the weekly reading assignments (and assignment due dates) on a week-by-week basis:

Week 1 (2 - 8 April 07):

Introductions, orientation, programming assignment 1 and Week 1 conferences

Reading assignment: Chapter 1 Preliminaries

Week 2 (9 - 15 April 07):

Week 2 conferences, more discussion on programming assignment 1, students continue working on program 1.

Reading Assignment: Chapter 3 Describing Syntax and Semantics

Week 3 (16 - 22 April 07):

Week 3 conferences, students continue working on program 1
Reading Assignment: Chapter 4 (Lexical and Syntax Analysis)

Week 4 (23 - 29 April 07):

Week 4 conferences, students continue working on program 1
Reading Assignment: Chapter 5 (Names, Bindings, Type Checking, and Scopes) AND Chapter 6 (Data Types)

Week 5 (30 April - 6 May 07):

Week 5 conferences, students continue working on program 1
Reading Assignment: Chapter 7 (Expression and Assignment Statements) AND Chapter 8 (Statement Level Control Structures).

Week 6 (7 - 13 May 07):

Week 6 conferences, STUDENTS TURN IN PROGRAM 1 (NLT 23:59 EST 13 May 07). Students receive programming assignment 2.

Reading Assignment: Chapter 9 (Subprograms) AND Chapter 10 (Implementing Subprograms)

Week 7 (14 - 20 May 07):

Online, Open Book/Notes Midterm Examination (students will have access to the midterm from 00:01 EST on 11 May). Exam is due by 23:59 EST on 20 May 07.

Week 8 (21 - 27 May 07):

Break. Students should continue working on program 2. No class conferences this week. Instructor will still check in classroom to see if students are having problems with the program.

Week 9 (28 May - 3 June 07):

Week 9 Conference.

Reading Assignment: Chapter 11 (Abstract Data Types and Encapsulation Constructs)

Week 10 (4 - 10 June 07):

Week 10 Conferences, students continue working on program 2
Reading Assignment: Chapter 12 (Support for Object Oriented Programming) AND Chapter 13 (Concurrency)

Week 11 (11 - 17 June 07):

Week 11 Conferences, students continue working on program 2
Reading Assignment: Chapter 14 (Exception and Event Handling)

Week 12 (18 - 24 June 07):

Week 12 conferences, students continue working on program 2
Reading Assignment: Chapter 15 (Functional Programming Languages) AND Chapter 16 (Logic Programming Languages)

Week 13 (25 - 30 June 07):

Online open book/notes comprehensive final examination. Students will have access to the final examination from 00:01 EST on 22 June 07). Exams must be submitted by 23:59 EST on 30 June 07.

Programming Assignment 2 is also due at 23:59 EST on 30 June 07.

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:

James Helton is a Senior software developer and analyst working for Zeta Associates Incorporated. He has been the software project lead or architect for several medium to large size information systems projects. He is well-versed in multiple programming languages and operating systems and has experience with a multitude of hardware platforms.

He has taught undergraduate computer science and information systems management courses for the University of Maryland since 2001, graduate courses for Bowie State University since 2002, and graduate MSIT courses for UMUC since 2006. He has an undergraduate degree in Computer Information Systems and a Master's degree in M.I.S.


Last updated by Jim Helton: February 18, 2007, 3:23 pm
Find this syllabus linked from the schedule at: http://www.ed.umuc.edu/schedule