CSCI 5828: Foundations of Software Engineering
Description
Application of formal techniques, languages, and tools to the development and maintenance of software systems. The course is grounded in a discussion of the theoretical aspects of managing software development projects. Topics: Software lifecycles, characteristics of software development, specification languages, configuration modeling, testing techniques, process modeling, and program annotations.
Topics:
- Introduction to Software Engineering - History, Core Concepts/Techniques
- Software Engineering of Concurrent Systems
- Agile Methods, Test-Driven Design, Refactoring
Benefits
- Gain a solid introduction to software engineering, agile methods, and associated tools and techniques.
- Understand model-based software engineering and how it can be used to design software systems in general, as well as aid in the creation of multithreaded/multiprocess software systems.
Objectives
To gain an understanding of formal techniques in software engineering.
Prerequisites
Graduate standing.
Education Officer (EO)
Textbooks
- Pilone and Miles, Head First Software Development, O'Reilly, ISBN-13: 978-0-596-52735-8.
- Breshears, The Art of Concurrency: A Thread Mondey's Guide to Writing Parallel Applications, O'Reilly, ISBN-13: 978-0-596-52153-0.
Hardware & Software
Web and e-mail access required.
Syllabus
Upcoming & Previous Offerings
Meeting Days Legend: Monday (M), Tuesday (T), Wednesday (W), Thursday (R), Friday (F), Saturday (S), Sunday (U)
Summer Terms: M = Maymester, A = 1st 5 weeks, B= 2nd 5 weeks, C = 8 weeks, D= 10 weeks
Refer to the Academic Calendar for specific dates.
top
| Spring 2010 |
|
09:30 AM - 10:45 AM |
TR |
ECCS 1B12 |
Anderson, K |
|
| Spring 2009 |
|
02:00 PM - 03:15 PM |
TR |
ECCS 1B12 |
Anderson, K |
|
| Spring 2008 |
|
02:00 PM - 03:15 PM |
TR |
ECCS 1B12 |
Anderson, K |
|
| Spring 2007 |
|
12:30 PM - 01:45 PM |
TR |
ECCS 1B12 |
Anderson, K |
|