|
|
Eileen T. Kraemer
Teaching
|
| Course: |
CSE 335: Software Design |
| Semester: | last time offered: Spring 2008 |
| Remarks: |
This course will introduce students to the development of large software
products, libraries, and product families with emphasis on design concerns that
dominate the development of such software. These concerns include reliability,
reusability, maintainability, and ease of extension and contraction. Students
will learn how to use object-oriented design techniques to address these
concerns. The course emphasizes explicit modeling and critical analysis of
designs prior to implementation. Students will learn heuristic methods to
design for integration and changes in requirements. Students will also learn
the fundamentals of software specification and techniques for designing
software to meet its specification.
This course focuses on implementation techniques, analysis and design
heuristics, and best practices that have proven useful in making the
software-development process rigorous, systematic, repeatable, and manageable.
Students will be introduced to current methods, which they will apply to
programming and design projects.
Finally, this course is primarily about design, which is very difficult to
learn by reading a book or cramming for a test. Design problems involve choices
and tradeoffs, and often there is no single "right" answer. The instructor's
role in such a course is to set up an environment that will force students to
confront and appreciate difficult design issues and to provide critical and
continual feedback to students on their choices. It is the student's
responsibility to actively participate in this environment and to reflect and
respond to the issues that are discussed. To achieve these goals, we will
supplement the lectures and required readings with in-class collaborative
exercises and materials on heuristics for problem solving.
|
| |
|
| Course: |
CSE 491: Human-Computer Interaction |
| Semester: | last time offered: Fall 2007 |
| Remarks: |
This course introduces students to issues in the design, implementation, and
evaluation of user interfaces for computer systems. Concepts in human factors,
usability, and interface design are covered, and the effects of human
capabilities and limitations on interaction with computer systems is studied.
Students apply these concepts to the design and implementation of graphical
user interfaces. Java is introduced and used to implement projects.
Units on experimental design and statistical analysisi are included.
|
| |
|
| Course: |
CSCI 1730 Systems Programming |
| Semester: |
last time offered: Summer 2007 |
| Remarks: |
This course covers the basics of UNIX systems programming,
including file and directory structures, basic and advanced file i/o, process
creation, and interprocess communication. An initial unit on "C++ for Java
programmers" will familiarize students with the use of C and C++ in systems
programming.
|
| |
|
| Course: |
CSCI
2720 Data Structures |
| Semester: |
last time offered: Spring 2007 |
| Remarks: |
This course deals with the design, analysis, implementation, and evaluation of the
fundamental structures for representing and manipulating data: lists, arrays, trees,
tables, heaps, and graphs. Memory management of these data structures is also addressed.
|
| |
|
| Course: |
CSCI
4800/6800 Human-Computer Interaction |
| Semester: |
last time offered:
Spring 2007 |
| Remarks: |
This course introduces students to issues in the design, implementation, and
evaluation of user interfaces for computer systems. Concepts in human factors,
usability, and interface design are covered, and the effects of human capabilities
and limitations on interaction with computer systems is studied. Students apply
these concepts to the design and implementation of graphical user interfaces. Units
on experimental design and statistical analysis, as well as new topics in HCI are included.
|
| |
|
| Course: |
CSCI
8710 Computer Systems Performance Evaluation |
| Semester: |
last time offered: Fall 2006 |
| Remarks: |
This four-hour course address computer systems performance analysis. It introduces the main
concepts and techniques needed to plan the capacity of computer systems, predict their future
performance under different configurations, and design new applications that meet performance
requirements. The course is mainly based on the use of analytic queuing network models of computer
systems. These techniques are applied to study the performance of centralized, distributed, parallel,
client/server systems, Web server and e-commerce site performance. The course also discusses
performance measuring tools for operating systems such as Unix and Windows NT. The course provides
the students with hands-on experience in performance evaluation through a project. The concept and
applications of software performance engineering are also covered.
|
|