
|
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