Faculty Contact Information:
Please feel free to contact me at my email address as shown above.
|
|
Consultation:
On class weekends I will be available at lunchtime and immediately after class (weekends). Also, I'm always available at the email address above.
|
|
Required Texts and Readings:
|
Sebesta, Robert W. (2004). Concepts of Programming Languages, (6th ed.). Boston: Pearson.
|
|
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.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. 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 92%
B 80 – 91%
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 complete the following:
Test #1: 20%
Test #2: 20%
Test #3: 20%
Programming Project: 20%
Language Research Project: 20%
|
|
Description of Course Requirements:
Project Description:
Two projects are required:
- a programming project, and
- a language research project.
The programming project is required of each student. It must be implemented in a suitable language. The actual assignment and problem specifications will be announced and distributed in class during our first session.
Each student will be assigned to a study group consisting of three to five members.
Each study group will be assigned a language to research. On the Sunday morning of our last meeting, each group will present their research to the class in the form of a slide presentation and a compiler or interpreter demonstration with an actual program written by the group. Some items to consider in the slide presentation: history of the language, author(s), notable characteristics of the language, syntax examples, and so on.
Participate in classroom discussions: You are expected to come to class prepared to engage in all discussions in a professional and informed manner. Usually this requires two to three hours for every hour of a face-to-face class.
Complete graduate level projects or programming assignments, write graduate level papers or case studies: You are required to conduct professional-level research, including appropriately citing works of others and avoiding plagiarism. Plan on committing approximately 150 hours over the duration of this course to producing professional level deliverables, to include one major program project, a paper and presentation, and short assignments as assigned in class.
Orally/visually present prepared material: You are required to present your results in a professional manner. In a face-to-face course, this typically means an oral presentation accompanied by appropriate visual material.
Complete three written examination(s): The examination process in this class will assist you in developing the writing and critical thinking skills necessary for successfully passing the comprehensive exam required of all graduate students. The examination questions used for this course will either be taken directly from past comprehensive exams or written as though to be included on a comprehensive exam.
|
|
Course Schedule:
This schedule presents 16 units or modules, with each unit corresponding to a regular three-hour weekday meeting or a half-day on weekends (our case).
Initial meeting: Saturday morning - 5 June 2004
Introductions
Review of syllabus
Clarification of goals, objectives and requirements
Second meeting: Saturday afternoon - 5 June 2004
Introduction to Programming Languages - Chapter 1
Third meeting: Sunday morning - 6 June 2004
Evolution of the Major Programming Languages - Chapter 2
Fourth meeting: Sunday afternoon - 6 June 2004
Syntax and Semantics - Chapter 3
Fifth meeting: Saturday morning - 19 June 2004
Test #1: Chapters 1 - 3(1st Hour)
Lexical and Syntax Analysis - Chapter 4
Sixth meeting: Saturday afternoon - 19 June 2004
Names, Bindings, Type Checking, and Scopes - Chapter 5
Due: algorithm for programming project; progress report
Seventh meeting: Sunday morning - 20 June 2004
Data Types - Chapter 6
Eighth meeting: Sunday afternoon - 20 June 2004
Expressions and the Assignment Statements - Chapter 7
Ninth meeting: Saturday morning - 10 July 2004
Test #2: Chapters 4 - 7 (1st Hour)
Statement Level Control Structures - Chapter 8
Tenth meeting: Saturday afternoon - 10 July 2004
Subprograms - Chapter 9
Due: programming project samples, language research project samples
Eleventh meeting: Sunday morning - 11 July 2004
Implementing Subprograms - Chapter 10
Twelfth meeting: Sunday afternoon - 11 July 2004
Abstract Data Types, Encapsulation Constructs - Chapter 11
Thirteenth meeting: Saturday morning - 24 July 2004
Support for Object-Oriented Programming - Chapter 12
Fourteenth meeting: Saturday afternoon - 24 July 2004
Exception Handling, Event Handling - Chapter 14
Functional Programming Languages - Chapter 15
Logic Programming Languages - Chapter 16
Fifteenth meeting: Sunday morning - 25 July 2004
Student presentations - language research
Sixteenth meeting: Sunday morning - 25 July 2004
Course evaluations
Test #3 - Chapters 8 - 12, 14 - 16
Due: programming project, study group language research project
|
|
Academic Policies:
Please refer to the UMUC - Europe Graduate Catalog, available online at http://www.ed.umuc.edu/general_info/publications/catalogs/index.html or from your local Education Center, for information on the following: Academic Integrity Course Load Exception to Policy Grade Appeal Process Make-up Examinations Nondiscrimination Students with Disabilities
|
|
Faculty Bio:
Kerry Painter earned his BA degree in Chinese-Vietnamese Language Studies from the University of Hawaii in Honolulu. Before attending the University of Hawaii, he studied electrical engineering at Clemson University, attended the 47-week North Vietnamese language course at the Defense Language Institute in Monterey, California, and worked as a linguist for the Army Security Agency in both Vietnam and Korea.
For six years after college graduation he worked in radio news as a reporter, writer, announcer, news director, and manager in Hawaii, Texas, and Delaware. He earned an MS degree in Technical and Science Communication and an MS in Computer Science from Drexel University in Philadelphia.
Kerry did doctoral studies at Drexel and has taught a variety of computer science and mathematics courses at Drexel University, Penn State University, Elizabethtown College, and Swarthmore College, all in Pennsylvania. He joined The University of Maryland European Division in January 1989 and has taught at SHAPE in Belgium, Soesterberg Air Base and AFNORTH in Holland, Aviano Air Base in Italy, and at several German locations: Augsburg, Bad Kreuznach, Bamberg, Baumholder, Berlin, Beuchel, Geilenkirchen, Giebelstadt, Hahn, Hanau, Heidelberg, Kapaun, Kitzingen, Mannheim, Ramstein, Schweinfurt, Spangdahlem, Wiesbaden, and Wuerzburg.
|
|