CSCE
5430: Topics in Software Engineering - Spring 2012
Instructor: Paul
Tarau, Associate Professor - see my home page for contact
info and office hours.
Teaching Assistant: Enkh-Amgalan Baatarjav, see his home page
for grading info and office hours.
E-mail : t a r a
u@cs.unt.edu
WWW : http://www.cs.unt.edu/~tarau
Address: Department
of Computer Science, University of North
Texas, P.O. Box 311366, Denton,
Texas 76203, USA
Phone : Tel : +1-940-565-2806, +1-940-565-2767
Fax : +1-940-565-2799
Description: An advanced software engineering course, with emphasis
on declarative specifications, software automation and knowledge-driven
software methodologies.
Syllabus
- Declarative
Programming and Software Engineering
- A
quick and practical introduction to functional programming in Scala and the Eclipse environment
- Modeling
software systems in functional programming
- From
type declarations to type inference mechanisms
- Type
systems and software reliability
- Higher
order programming and software patterns
- Logic
Programming as a specification language
- High-level
and domain specific languages – a case study with Styla,
a Scala-based Prolog engine
- Agent
Oriented Software Engineering with Scala/Akka and Prolog
- Software
Automation
- Generative
Programming and Component Engineering
- Definite
Clause Grammars in Prolog
- Combinator Parsing in Scala
- Metaprogramming and Software Automation
- Program
Synthesis and Program Transformation Techniques
- Automating
Software testing
- Automating
Concurrent and Distributed Programming
- Automating
Software Installations and Maintenance
- Automation
with Templates and Program Generators
- Automation
of Software Components and Services Discovery
- Genetic
Programming and Software Automation
- Knowledge-driven
Software Engineering
- Knowledge
representation formalisms
- Knowledge
representations languages and frameworks
- Ontologies
and Semantic Web, Description Logics
- Internet-driven
knowledge processing
- Software
Engineering as Ontology Engineering
- Formal
Models of Software Processes
- Logic-based
Models
- Graph
Theory-based Models
- Models
for concurrency
- Advanced
Software Metrics
Prerequisites: Undergraduate software engineering/software design course.
Good mathematical background. Some familiarity with functional and logic based
programming languages, ontologies and knowledge representation formalisms.
Textbook: None, the course will be based on a collection of research papers
and book chapters available online.
Some papers to discuss in class: 1;
Evaluation:
- Individual
Exam: 40%
- Research
paper presentations (individual) 20%
- Programming
projects: 40%