UMUC Europe
SearchSearch Contact UsMyUMUC Site MapWebTycho  
Maryland in Europe

INSS520 - Software Structures


Dates: March 26, 2002 to May 17, 2002

Tuesday & Thursday Evenings:

Credits: 3 Semester Hours

Instructor: Mr. Charles Dekle

  • B.A. Speech and English, University of Montevallo

  • B.S. Engineering,  Electrical and Computer Engineering, University of Alabama in Huntsville

  • M.S. Electrical Engineering, Florida Institute of Technology

  • M.S. Engineering Management, Florida Institute of Technology

E-mail:

Faculty Account - Please use this one first.

Home Account - Use this one if the first fails.

Web Page:

You may find additional information here.

Prerequisites: All undergraduate prerequisite courses or permission of the instructor.

Office information:

  • Phone

    • DSN 373-6986

    • Civilian 06221-17-6986

Please leave a message with the UMUC Field Representative.

Course Description:

This course provides an in-depth look at programming languages, which are used to write application software. The course surveys the broad range of programming languages, and then focuses on those properties of a language which are needed in order to design and specify the processing instructions and data structures of a computer program. Language syntax and semantics will be explored while considering procedural, non-procedural, functional and logic programming languages. The type of language to be used depends on the problem to be solved as well as on the qualities of the language. The effect of language selection on software engineering will be discussed, with a look at current trends and expectations among software developers.

Students will be required to complete programming projects.

Course Goals/Objectives:  Students who complete this course should have the following knowledge:

  • The fundamental nature of programming languages and how they work
  • Major attributes of several programming languages
  • Tradeoffs in programming language design and usage
  • Data types and abstract data types
  • Virtual computer concepts
  • Structured programming concepts
  • Object-oriented programming concepts
  • Criteria for selecting a programming language
  • How a programming language can support good software engineering

Required Textbook:

Concepts of Programming Languages, Robert W. Sebesta, 4th edition, Addison-Wesley, 1999,
ISBN 0-201-38596-1

Textbook web page: http://www.awl.com/cseng/titles/0-201-38596-1/

Suggested Reading:

Engines of the Mind, Joel Shurkin, W. W. Norton & Company,  New York, 1996, ISBN 0-393-31471-5.

The Age of Spiritual Machines, Ray Kurzweil, Viking, New York, 1999, ISBN 0-670-88217-8

Assembly Language Step-by-Step Second Edition, Jeff Duntemann, John Wiley & Sons, Inc., New York, 2000, ISBN 0-471-37523-3

Grading System: The instructor will award grades based on the following:

Course Evaluation:

Mid-Term Exam

25%

 

Final Exam

30%

Note: there will be a 25% deduction for assignments turned in past the due date.  Any assignment that is more than a class meeting late will receive a grade of zero unless there is a reasonable excuse.

The deadlines are set in stone.  If you have a very good reason for applying for a extension, the instructor will consider it.

The instructor retains the right to decide what is reasonable.

Programming Projects (3)

15%

The instructor will distribute requirements and a set of possible topics during the first class meeting

Research Work and Presentation

30%

Grade Ranges:

90 to 100%

A

 

80 to 89

B

 

70 to 79

C

 

Less than 70%

F(a)

Programming Projects:  There will be  three programming projects assigned in this course.  Each project will use a different programming language.  The first project will use the Pascal programming language.  The second project will use the C programming language.  The third will use either C++ or Java and will be and Objected Oriented project.  The following are project requirements:

  1. Programming Projects must be well documented
  2. Programming projects should:
    1. Be modular
    2. Use named constants to enhance modifiability
    3. Use variable identifiers that are meaningful
    4. Use indentation and module (function) headings as appropriate
  3. Programming projects must be complete
  4. Programming projects must be tested
  5. Programming projects must meet design specifications prior to submission

Project Format:  Submit all programming projects in folders and adhere to the following format:

  • The cover page should contain only a heading which must be centered and include these items:
    • University of Maryland University College
    • Your Name
    • Assignment Number
    • Due Date
    • Date Submitted
  • The Assignment Description must have six parts:
    • A brief description of the assignment
    • Programming language used
    • List the advantages and disadvantages of the programming language.
    • How to use the program
    • Problems encountered
    • A statement that the program works or does not work

Source Code:  In addition to a print out of the source code, each project must include a magnetic copy of the program on a 3.5" floppy disc.  The source code should have the following statement at the end of the file.  Make sure that you use the proper format for including comments in the particular programming language:

I certify the above code is of my own development and design.  I have given proper credit to any outside source.  The program compiled and executed as described and produced the stated output.

Important Information:  In order to receive credit you must submit assignments in the proper format.  The instructor may assess a 5% penalty for failure to comply with all of the project requirements.

Research Work and Presentation:  The format and a list of possible topics will be presented during the first weekend class meeting.  You must follow an accepted form with your research paper.  You may use either the MLA (Modern Language Association) style or you may use the APA (American Psychological Association) style.  You may not use your own style.

Tentative Schedule:

Class

Topic

Reading

Comments

1.

 

Course Introduction

Preliminaries

Handouts

Chapter 1

Instructor

Textbook

2.

Evolution of the Major  Languages

Chapter 2

Textbook
3. Syntax and Semantics

Lab

Chapter 3

Handouts

Textbook

Instructor

4.

Names, Bindings, Type Checking, and Scopes

Chapter 4

Textbook

5. Data Types

Project 1 Due

Chapter5

Pascal

Textbook

6.

Expressions and the Assignment Statement

Statement Level Control Structures

 

 

Chapter  6

Chapter 7

 

Textbook

Textbook

 

 

7. Subprograms

Review for the Midterm

Chapter 8 Textbook (8.1-8.6)

8.

Midterm Exam

Chapters 1-7

 

9. Subprograms

Implementing Subprograms

Lab

Chapter 8

Chapter 9

Handouts

Textbook (8.7 - 8.13)

Textbook

Instructor

10.

Project 2 Due

Abstract Data Types

Support for Object-Oriented Programming

C Language

Chapter 10

Chapter 11

 

Textbook

Textbook (11.1 - 11.6)

11.

Support for Object-Oriented Programming

Concurrency

Chapter 11

Chapter 12

Textbook (11.7 - 11.13)

Textbook (12.1 - 12.4)

12.

Concurrency

Exception Handling

 

 

Chapter 12

Chapter 13

Textbook (12.5 - 12.8)

Textbook

13. Functional Programming Languages Chapter 14 Textbook
14. Logic Programming Languages

Review for Final Exam

Lab

Chapter 15

 

Handouts

Textbook

Textbook (1 - 15)

Instructor

15. Project 3 Due

Presentation of Papers

C++ or Java  
16. Final Exam - Comprehensive    

Notes:

1) The schedule is tentative and may change during the term.

2) The instructor will provide a recommended reading list during the first week.

Additional Information:

When you e-mail me please use the UMUC address.  That is my faculty address.  Also begin the subject line with INSS 520: followed by the subject itself.

 

Please do not ask me to debug your programs for you.  It is my intention to provide lab time as part of the class schedule.  No one should learn in a vacuum.  If you submit your project for debugging, I will consider it complete and grade it as submitted.

 

I will cover theory and give examples in the lecture portion of the class.  We will also make use of the lab to illustrate some basic programming concepts.

 

As noted the course schedule is tentative and may change depending on the needs of the class.  We may actually speed things up or, as is more likely the case, slow things down.

 

The following are a couple of very handy text editors.  I use UltraEdit.  All of the projects may be accomplished with a text editor and a command-line compiler.

  • A text editor: On a Windows PC, it can be one of the following
    • UltraEdit. This is a very nice programmer's editor with syntax coloring. One can test it free for 45 days. As shareware it costs only $30. It is a bargain.  This is the text editor that I use.
    • TextPad This is also a nice programmer's editor and also has syntax coloring. It comes with a free trial period and costs $27.
  • Any other ASCII text editor such as the Windows' Notepad.
Accreditation | Contact Us | Catalogs | Worldwide Locations | Press Room | Nondiscrimination |  ©2008