About Computer Science 5021

This page provides general information about the Spring 2008 offering of Computer Science 5021 at the University of Central Florida. The course's home page is http://www.eecs.ucf.edu/~leavens/COP5021/.

This page is organized as follows:

  1. Meetings
  2. Course Textbooks
  3. Accommodations for Disabilities
  4. Course Description and Credit Hours
  5. Course Learning Objectives
  6. Course Learning Outcomes
  7. Prerequisites
  8. Acknowledgments

The course grading policy and syllabus are on separate web pages.

I also maintain Information about previous offerings of this course.

Meetings

Lectures

Attendance is required. These meetings are on Mondays and Wednesdays, from 12:00-1:15pm in ENGR 0227.

Return to top

Course Textbooks

There is one required text for the course.

Note that there is a second, corrected printing of this text published in 2005. It would be better to get the second printing. However, you can also get a list of corrections if you have the 1999 printing.

We will supplement the text with other material as described in the syllabus.

Return to top

Accommodations for Disabilities

We are happy to help with reasonable accommodations for disabilities. The procedure is outlined in the following statement (quoted from the faculty center for teaching and learning's web site):

"The University of Central Florida is committed to providing reasonable accommodations for all persons with disabilities. This syllabus is available in alternate formats upon request. Students with disabilities who need accommodations in this course must contact the professor at the beginning of the semester to discuss needed accommodations. No accommodations will be provided until the student has met with the professor to request accommodations. Students who need accommodations must be registered with Student Disability Services, Student Resource Center Room 132, phone (407) 823-2371, TTY/TDD only phone (407) 823-2116, before requesting accommodations from the professor."

Return to top

Course Description and Credit Hours

This 3 credit course is titled "Program Analysis."

From the University of Central Florida Catalog: "PR: COP 4020 and COT 4210. Static analysis of programs. Theoretical and practical limitations, data flow analysis, abstract interpretation, type and effect systems. Tools to automate program analysis. "

Program analysis is an exciting area in programming language semantics that intersects with formal methods and software engineering. The textbook we will be using emphasizes the commonality between the different kinds of analysis, which include: data flow analysis, constraint-based analysis, abstract interpretation, and type and effect systems.

Time permitting, we will also try to extend the ideas discussed in the class to object-oriented programming. In particular we may look at how program analysis could be applied to JML, a behavioral interface specification language for Java. We will also try to explore counter-example guided abstraction refinement. You will also be encouraged to extend the techniques in other directions, for example, to component-based systems or to making computer systems more secure.

Return to top

Course Learning Objectives

The objectives for this course are divided into two parts: a set of essential objectives, and a set of enrichment objectives. The essential objectives will be helpful for your career as a computer scientist or software engineer; hence they lead to the course's essential outcomes that we want to help you master. The enrichment objectives are less important, but lead to enrichment outcomes that you are encouraged to explore both for their own sake and because learning more about those will help deepen your understanding of the essential objectives.

This course's objectives are linked to the (undergraduate) computer science program's learning objectives (in references that look like this: [CSObj2]).

Essential Objectives

In one sentence, this course's main objective is that you will be able to use and apply the principles of program analysis in the construction of software tools [CSObj2] [CSObj3]. In more detail the essential objectives for this course are that you will be able to:

Enrichment Objectives

Enrichment objectives could be multiplied without limit, but the following seem most important, especially in relation to the computer science program's learning objectives.

The course's enrichment objectives are that you will be able to:

Return to top

Course Learning Outcomes

This course's learning outcomes are divided into two parts: a set of essential outcomes, and a set of enrichment outcomes. The essential outcomes are designed to support this course's essential learning objectives, and thus to be helpful for your career as a computer scientist or software engineer; hence we want to help you to master them. They also form the basis for grading and assessment of your learning. The enrichment outcomes are not used directly for assessment. However, you are encouraged to explore topics related to the enrichment outcomes both for their own sake and because learning more about those will help your performance relative to the essential outcomes.

The course's outcomes are linked to the course's objectives and to the computer science program's outcomes. The links to this course's objectives are shown in references that look like this: [Terminology]. The links to the computer science program's learning outcomes are shown in references that look like this: [CSOut3]).

Essential Outcomes

In one sentence, the main outcome is that you will be able to correctly explain the terms and concepts of program analysis [Terminology] [CSOut1] and usefully apply them to improving software tools [ImproveTools] [CSOut1]. In more detail the essential outcomes for this course are that you will be able to:

You will be permitted to use the textbook and course notes for both homework and tests.

Enrichment Outcomes

Enrichment outcomes could be multiplied without limit, but the following seem most important or most easily taught using the course text.

Return to top

Prerequisites

The formal prerequisites in the UCF catalog are COP 4020 and COT 4210. See Gary if you have questions about the prerequisites.

Return to top

Acknowledgments

Thanks to Samik Basu and John Hatcliff who suggested the textbook we are using this semester.

Many thanks to Curtis Clifton (now at Rose-Hulman) for his initial work on the HTML for these web pages, which I have adapted from another course.

Return to top

Last modified Friday, May 23, 2008.

This web page is for the Spring 2008 offering of COP 5021 at the University of Central Florida. The details of this course are subject to change as experience dictates. You will be informed of any changes. Please direct any comments or questions to Gary T. Leavens at leavens@eecs.ucf.edu. Some of the policies and web pages for this course are quoted or adapted from other courses I have taught, in particular, COP 4020 and Com S 641.