CSE 496/896 Fall 2014
AI and Heuristic Techniques in Software Engineering


For Course Web Page/Up to Date Information -- Blackboard

Description:

During the past several decades, software systems have increased in size and complexity. So too, have the tasks of requirements elicitation, design, coding, software testing and maintenance. Each of these phases of the software lifecycle, contain problems that are becoming intractable to solve using exact techniques. The discipline of artificial intelligence (AI), provides many tools and algorithms that software engineers can use to approximate solutions, such as planning, learning, classification, natural language processing and guided search. For instance, the community of search-based software engineering has been flourishing, developing evolutionary algorithms, swarm techniques and other types of meta-heuristic search to tackle a broad range of problems. And there is an increasing body of software engineering research that leverages planning and learning techniques, that uses classifiers, or employs natural language processing. This course will look at the synergies between these two fields. We will learn about heuristic and evolutionary search, as well as several other tools from AI that can be applied towards specific SE problems.

The course will have a substantial independent project and will require strong class participation.
Class Meeting Place/Time:
    Monday, Wednesday, Friday, 1:30 - 2:20 PM 

    Avery 108

Instructor:
    Myra Cohen
    Susan J. Rosowski Associate Professor
    Office:  Avery 364  
    Phone: 472-2305
    myra [put_in_AT_sign_please]cse.unl.edu

    Office Hours:
    Monday, 12:30-1:30 PM
    Wednesday, 2:30-3:30

    Other hours by appointment

Prerequisites: CSE 310 (data structures and algorithms) and CSE361 (software engineering).

Objectives:

Students completing this course will: