UMUC Europe
SearchSearch Contact UsMyUMUC Site MapWebTycho  

INSS 520 Software Structures

Syllabus- Harrogate

Term 1 - 2001/2002

Course Times: Tuesdays & Thursdays --1630 - 1930 hrs

Lecturer: Susan Propst

Phone: 01423-500564

Email: jon@propst.fsnet.co.ukI do not necessarily check email every day if it is time critical, ring me)

Office Hours/ Lab hours: After class/TBD

Text:

Concepts of Programming Languages,

Robert W. Sebesta,

4th edition, Addison-Wesley, 1999,

ISBN 0-201-38596-1

Course Pre-requisites:

All undergraduate prerequisite courses or permission of the instructor.

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 Objectives

Students who successfully complete this course should have a basic understanding of:

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

Course Evaluation: Grades for this course will be based on:

Mid-term exam

25%

Final exam

30%

Research Work (group project)

20%

Research Work - Presentation

10%

Programming Projects

15%

Total:

100%

and will be assigned as follows:

A 90-100%

B 80-89%

C 70-79%

F Less than 70%

Policies:

Please refer to the UMUC Graduate Catalog.

Academic Dishonesty and Plagiarism will not be tolerated. Plagiarized papers, reports, or exams will receive a grade of zero. This would also apply to a student knowingly allowing another student to plagiarize their work.

Attendance:

This is a very fast paced course and failure to attend class will likely result in a significant burden to keep pace with the course. If you miss a class try to study the materials scheduled for the class and get notes from a fellow student.

Make-up Examinations: Need to be arranged prior to absence unless caused by an emergency. In any case, appropriate documentation will be required.

Lab Time:

I will conduct lab time outside of the scheduled class time to assist students. I feel the appropriate use of time in the lab is for the following:

Answering specific questions on the subject matter

E.g. questions on specific language syntax.

Discussing algorithms and code solutions in terms of pseudocode

Generally I do not feel it appropriate to debug a student's program. If you find that after a considerable time and effort you are still unable to resolve a compiling error I will try to give you guidance, time permitting.

Student Responsibilities:

Since this is a graduate level course, students are expected to participate in class. I encourage questions commensurate with the level of the course being taught.

You will get the most out of the class if the assigned chapters have been read prior to class. All assignments are expected to be turned in on time - late work will not receive full credit.

Students are responsible for all material covered in class. If you miss a class, it is your responsibility to get the class notes from another class mate.

This course is designed to teach the basic concepts and theories of programming. Students must expect to invest a significant amount of time practicing these concepts in order to become proficient in programming.

Course Work

One of the main objectives of the course is to provide the necessary tools and concepts to allow students to critically evaluate and compare programming languages. Students will identify the fundamental concepts of programming languages and the design issues in building the various language constructs.

All assignments must be typed, and include the student's name and date of submission.

Projects should include the following statement:

I certify this project is of my own development and design.

Proper credit has been given to any outside source.

Research Project:

The research project will allow students to select and evaluate a programming language of their choice. There should be a minimum of overlap between the topics as to encourage diversity rather than repetition. Format will be specified when the assignment is presented.

Programming Projects:

Programming projects will be designed to allow students to identify steps in selecting appropriate programming languages for different tasks. Programs must be well documented. Programs must be complete, extensively tested, and must meet design specifications prior to submission.

Each programming project will include:

1. Project description- in your own words

2. Programming language used

3. Advantages and disadvantages of the programming language used

4. List of all problems encountered while developing your project. Clearly indicate which problems you were able to solve and which you were not.

5. Any assumptions you had to make during the project development.

6. A statement that the program works. A program is considered to work only when it displays the correct results. You are required to extensively test your program to guarantee that it meets the standards defined in each assignment.

Tentative Schedule: (Note: Schedule may change to accommodate students' needs. The instructor reserves the right to modify the syllabus when needed. )

 Class

Topic

Assignment

1

Introduction to Course Procedures

Intro to Programming Languages

Chapter 1

2

Evolution of the major programming languages

Chapter 2

3

Syntax and Semantics

Chapter 3

4

Names, Bindings, Type Checking, and Scopes

Chapter 4

5

Data Types

Due - Programming Project 1

Chapter 5

6

Expressions and the Assignment Statement

Statement level controls

Chapters 6 & 7

7

Subprograms

Review for the mid term

Chapter 8 (8.1-8.6)

8

Mid Term Exam

material covered through class #6

 

9

Subprograms

Implementing subprograms

Chapters 8 & 9

10

Abstract data types

Support for OO programming

Due - Programming Project 2

Chapter 10

Chapter 11

(11.1-11.6)

11

Support for OO programming

Concurrency

Chapter 11 (11.7-11.13)

Chapter 12 (12.1-12.4)

12

Concurrency

Exception Handling

Due: Research Project - Group Work

Chapter 12 (12.5-12.8)

Chapter 13

13

Functional Programming Languages

Group Work- Presentation session 1

Chapter 14

14

Logic Programming Languages

Due: Programming Project 3

Group Work - Presentation session 2

Chapter 15

15

Final Review

Course Evaluation

Group Work - Presentation session 3

 

16

Final Exam -- Comprehensive

 

Return to: Graduate Programs Syllabi

Accreditation | Contact Us | Catalogs | Worldwide Locations | Press Room | Nondiscrimination |  ©2008