UMUC Europe
SearchSearch Contact UsMyUMUC Site MapWebTycho  
INSS 520 Software Structures

INSS 520 Software Structures

Syllabus - Harrogate

Term 1 – 2002/2003

 

 

Course Times:     Tuesdays & Thursdays

  1930 – 2230 hrs

 

Lecturer:    Susan Propst          01423-500564

                                Email:  jon@propst.fsnet.co.uk  (I 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,

5th edition, Addison-Wesley, 2002,

ISBN 0-201-75295-6

 

 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

25%

Research Work (group project)

15%

Research Work - Presentation 

10%

Programming Projects

25%

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 classmate.

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.

 

Programming projects must 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.  These are not group projects and must be completed by each student independently.  Students who receive excessive help will receive a reduction in grade commensurate with the amount of help.

 

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.

8

 

Tentative Schedule:        (Note: Schedule may change to accommodate students’ needs.

The instructor reserves the right to modify the syllabus when needed. )

 

 

Class

Topic

Reading Assignment

1

Introduction to Course Procedures

Intro to Programming Languages

 

Chapters 1 & 2

2

Syntax and Semantics

Chapters 3 & 4

3

Names, Bindings, Type Checking, and Scopes

Chapter 5

4

Data Types 

Chapter 6

5

Expressions and the Assignment Statement

Chapter 7

6

Statement level controls

Due – Programming Project 1

Chapter 8

7

Subprograms

Review for the mid term

 

Chapter 9 (9.1-9.6)

8

Mid Term Exam

material covered through class #6

 

 

9

Subprograms

Implementing subprograms

 

Chapters 9 & 10

10

Abstract data types

Support for OO programming

Due – Programming Project 2

Chapter 11

Chapter 12  (12.1-12.6)

11

Support for OO programming

Concurrency

Chapter 12 (12.7-12.13)

Chapter 13 (13.1-13.4)

12

Concurrency 

Exception Handling

Due: Research Project - Group Work

Chapter 13 (13.5-13.8)

Chapter 14

13

Functional Programming Languages

Group Work- Presentation session 1

Chapter 15

 

14

Logic Programming Languages

Group Work - Presentation session 2

Chapter 16

 

15

Final Review

Due: Programming Project 3

Course Evaluation

Group Work - Presentation session 3

 

16

Final Exam -- Comprehensive

 

 

Accreditation | Contact Us DSN 314-370-6762, +49-(0)6221-3780 | Nondiscrimination Statement | ©2008