Teaching
Spring 2010: Special Topics in Software Engineering: Resource Constrained Systems
Submitted by mjrutherford on Mon, 02/15/2010 - 05:28.Number: COMP 4705
Title: Special Topics in Software Engineering: Resource Constrained Systems
Meeting time: Thursday, 5 PM - 8:40 PM
Textbook: Real Time UML, Third Edition, by Bruce Powel Douglass ISBN-10: 0321160762, ISBN-13: 978-0321160768
In this course we will study software engineering techniques that are applicable to resource constrained systems. "Resource constrained systems" is a catch-all phrase for systems ranging from simple embedded micro-controller systems, real-time systems, some general-purpose software systems operating in unique environments (e.g., Linux systems on robots and unmanned vehicles), and some modern platforms like iPhone and Android. For the platforms considered, we will discuss the hardware at a high level, focusing on how the hardware manifests in the software, and any specific software considerations that must be made for the hardware platform. We will then discuss the software stack that is available, and study techniques for performing requirements analysis and specification, high- and low-level design, implementation and testing. The reading will be a mix of textbook chapters and some scholarly articles. The assignments will be focused on creative uses of the techniques we discuss in class.
Note: This course is only available to Lockheed-Martin off campus students.
Winter 2010: Special Topics in Distributed and Networked Systems
Submitted by mjrutherford on Wed, 12/30/2009 - 05:07.This course will cover major topics in distributed systems engineering including: system architectures, processes, communication, naming, synchronization, consistency and replication, fault tolerance, and security. We will also look at examples of distributed object-based systems, distributed file systems, distributed web-based systems and distributed coordination-based systems. Classes will be a mix of lecture, in-class exercises, and student presentations.
The course website is available through DU's Blackboard System: http://blackboard.du.edu for students enrolled in the class.
Note: This course is only available to Northrop-Grumman off-site students.
Fall 2009: Introduction to Computer Science, Honors
Submitted by mjrutherford on Wed, 12/30/2009 - 05:05.This course is part of the Introduction to Computer Science track intended for students with prior exposure to programming through AP courses or other activities. It is roughly equivalent to a combination of COMP 1671 and COMP 1672 and can be substituted for COMP 1672 in prerequisites. This course covers basic programming in Java, object oriented (OO) programming, exceptions, streams and file I/O, recursion, generics and basic data structures and algorithms.
The course website is available through DU's Blackboard System: http://blackboard.du.edu for students enrolled in the class.
Spring 2009: Topics in Distributed Systems Engineering
Submitted by mjrutherford on Mon, 06/15/2009 - 01:48.Course Description:
This course will cover major topics in distributed systems engineering including: system architectures, processes, communication, naming, synchronization, consistency and replication, fault tolerance, and security. We will also look at examples of distributed object-based systems, distributed file systems, distributed web-based systems and distributed coordination-based systems. Classes will be a mix of lecture, in-class exercises, and student presentations.
Reading Assignments: The weekly course reading assignments will include chapters from the textbook and several short academic papers about distributed systems related to the topics of the week.
Homework Assignments: Each week, students can choose one of two homework assignments: programming or non-programming. The programming assignments will involve the implementation of simple systems and parts of systems in their language / platform of choice. Non-programming assignments will have more writing, research and non-programming problems to work.
Student Presentations: Each week (except the first), there will be several student presentations centered around the academic papers assigned for reading. For each presentation, students will be asked to prepare a handful of slides, discuss the major features of the systems being described and relate them to the course topics.
Please see the class web site for more information:
Winter 2009: Advanced Software Engineering: Software Testing
Submitted by mjrutherford on Fri, 03/27/2009 - 04:07.This course will provide in-depth coverage of the major topics in software testing. The emphasis will be on the hands-on software testing activity: how to go about executing a software system to uncover faults in the underlying implementation and gain confidence in the quality of the end product. We will discuss all aspects of test adequacy criteria (used to determine when a set of test cases is "good enough"), both white-box and black-box. Test oracles may also be covered. There will be some discussion of how software testing fits in to a broader software quality effort. The class will culminate in a project, the subject of which will be some software that you work on or have an interest in testing.
Please see the class web page for more information:
Fall 2008: Special Topics in Systems: Distributed Stream Processing
Submitted by mjrutherford on Mon, 09/01/2008 - 18:00.This is a research seminar in systems centered around implementing a distributed video conferencing system using a SOA-like architecture and GPU programming. Students and faculty will be reading and presenting research papers related to the project and students will work in teams to design, implement and test a distributed video conferencing system.
Specific topics that will be covered:
* Multistream Pipelines
* Service Oriented Architecture and the Enterprise Message Bus
* CUDA (GPU) Programming
* Real-time Data Streaming
* Distributed System Design
* Testing and Evaluating Distributed Systems
Please see the class web pages for more information:
Fall 2008: Introduction to Computer Science, Honors
Submitted by mjrutherford on Mon, 09/01/2008 - 18:00.This course is part of the Introduction to Computer Science track intended for students with prior exposure to programming through AP courses or other activities. It is roughly equivalent to a combination of COMP 1671 and COMP 1672 and can be substituted for COMP 1672 in prerequisites. This course covers basic programming in Java, object oriented (OO) programming, exceptions, streams and file I/O, recursion, generics and basic data structures and algorithms.
Please see the course web page for more information: