The computing faculty is engaged in various research projects, in areas such as: Below some of these areas are briefly explained. Programming Languages The study of programming languages is fundamental to any liberal arts education and essential in pursuing a degree in Computer Science. The study of programming languages focuses on the design, implementation, and application of the very tools used to develop software. It provides all students with an appreciation of what is and what is not a good design, it gives students insights into how the "magic" in the machine works, and it empowers students with skills to organize their thoughts when working on large projects  and all students will work on large projects after graduation. Programming languages remains an active area of research as demonstrated by their proliferation in almost every domain. Although programming languages may look different, there are common principles behind their design and the differences stem from the emphasis placed on some traits over others based on the domain they are expected to be used in. Studying programming languages will enable XXIst century citizens to wisely choose among the plethora of computer languages for the development of the software they need. In summary, the study of programming languages allows us to better understand the world in which we live much like Literature, Music, History and Biology. Professor Morazán's research interests include all aspects of programming languages, the design, implementation, and correctness of algorithms, and Computer Science education. Prof. Morazán's primary focus is the implementation of functional languages. He has studied program transformation techniques, such as lambda lifting, distributed memory architectures for functional languages, the implementation and manipulation of bigums (i.e. very large integers), the representation of functions, and the dynamic creation of functions. His notable results include an optimal quadratictime lambda lifting algorithm and a memoryefficient implementation of higherorder functions using memoized dynamically created functions. List of selected publications:  “Optimal Lambda Lifting in Quadratic Time,” Marco T. Morazán and Ulrik P. Schultz. Implementation and Application of Functional Languages: 19th International Workshop, IFL 2007, Freiburg, Germany, September 2729, 2007. Revised Selected Papers, Lecture Notes in Computer Science, volume 5083, SpringerVerlag, 2008, pp. 3756.
 “ListHeap Paging in a Distributed Virtual Memory System for Functional Languages.” Marco T. Morazán and Douglas R. Troeger, Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, June, 2003, pp. 16891695.
 “The MT Stack: Paging Algorithm and Performance in a Distributed Virtual Memory System.” Marco T. Morazán, Douglas R. Troeger, and Myles Nash, CLEI Electronic Journal, volume 5, 2002, pp. 2539.
 “Paging in a Distributed Virtual Memory.” Marco T. Morazán, Douglas R. Troeger, and Myles Nash, Trends in Functional Programming, volume 3, Intellect Books, Bristol , UK, 2002, pp. 7586.
 “The MT Architecture and Allocation Algorithm.” Marco T. Morazán and Douglas R. Troeger, Trends in Functional Programming, volume 1, Intellect Books, Bristol , UK, 2000, pp. 97104.
Software Engineering Software engineering is the discipline of systematically designing and maintaining software, and is especially focused on large, longlived, and complex software systems. Software engineering seeks to reduce both the complexity of the development process and problems with the final product, and to support product maintenance and evolution. Modern software engineering practices include objectoriented analysis and design, using the Unified Process and the Unified Modeling Language (UML); design patterns; incremental iterative, agile development by teams; active and ongoing risk management; and ongoing interaction among stakeholders, particularly between technical staff and management, and between the developer and the customer. Professor Marlowe's most recent work ranges from risk management to software engineering for databases. List of selected publications:  M. Mohtashami, T. Marlowe, V. Kirova, F. Deek, RiskDriven Management Contingency Policies in Collaborative Software Development, International Journal of Information Technology and Management, to appear, 2009
 T. J. Marlowe, V. Kirova, Addressing Change in Collaborative Software Development through Agility and Automated Traceability, 12th World Multiconference on Systemics, Cybernetics and Informatics (WMSCI 2008), 209–215, Orlando, USA, JuneJuly 2008
 C. S. Ku, T. J. Marlowe, T. Budanskaya, P. K. Kang, Software Engineering Design Patterns For Relational Databases, 2007 International Conference on Software Engineering Research and Practice (SERP'07), June 2007
 M. Mohtashami, T. J. Marlowe, V. Kirova, F. Deek, Risk Management for Collaborative Software Development, Information Systems Management, 25 (4), 20–30, Fall 2006. Reprinted in The EDP Audit, Control, and Security Newsletter, 35 (3), March 2007.
Symbolic Computation Symbolic computation is the discipline of designing software and algorithms for processing symbolic information. This symbolic information arises in engineering and science applications, such as descriptions of the components of an airplane, the movements of robots, the shapes of molecules in organic chemistry, etc. Often the amount of symbolic information to be processed is huge, and therefore the field makes use of highperformance computer systems. One of the most wellknown commercial generalpurpose software systems for symbolic computation is Maple, which is widelyused in industry and in education. Professor Minimair's is interested in all aspects of symbolic computation. His current focus lies in symbolic computations for polynomial data. He has studied how to utilize composition structures, which naturally arise in engineering modeling, for efficient computations. He has also studied how to perform efficient computations with Bernstein bases, which are fundamental in computer graphics. His most notable results include determining resultants under vanishing coefficients, and of composed polynomials, and developing a basisindependent polynomial division algorithm. Professor Minimair has also guided several student research projects that resulted in publications and in conference presentations. List of selected publications:  A. Chtcherba, D. Kapur, M. Minimair, A Resultant Formula for Multiunivariate Composed Polynomial Systems and related results using CayleyDixon formulation, Journal of Symbolic Computation, to appear 2009
 M. Minimair, BasisIndependent Polynomial Division Algorithm Applied to Division in Lagrange and Bernstein Basis, Lecture Notes in Computer Science 5081, Springer, 2008
 M. Minimair, Resultants of Skewly Composed Polynomials International Symposium on Symbolic and Algebraic Computation, Proceedings of the ISSAC 2006 (Genova, Italy) , ACM, New York, NY, USA, 2006
 M. Minimair, M. Barnett, Solving Polynomial Equations for Chemical Problems using Groebner Bases, Molecular Physics, 10  20 December 2004, Vol. 102, No. 2324, 25212535
Selected joint work with students:  Sarah Smith and Manfred Minimair Determinants of Modular Macaulay Matrices ACM Communications in Computer Algebra (Editor: M. Hitz), 41(1), 2007, pp. 67
 Min Hur and Manfred Minimair Distributed Computation of Determinants with NTL and MPI Book of Abstracts of ECCAD 05 (Editor: I. Ajwa), pp. 67 Ashland University, Mathematics and Computer Science Department, Ashland, Ohio, 2005
Computational Thinking Computational thinking involves designing solutions to problems, using abstraction to simplify designs and systems, and understanding the behavior of systems as well as of other people. A natural way to explore and acquire computational thinking skills is to study programming  the design and implementation of algorithms using a programming language. In order to write a computer program, you need to understand the problem that your program is to solve, to organize your thoughts, to devise an algorithm, to choose a representation for the data that your program will manipulate, to write the program, to devise tests and test your program, and to revise your program if necessary. A keen reader will realize that these requirements are remarkably similar to what is required to write an essay: you need to understand what you are writing about, to organize your thoughts, to devise a plan on how to deliver your idea (e.g. the sections of your essay), to choose how you will present your arguments and conclusions, to write the essay, to proof read, and to revise your essay if necessary. Similar requirements exist to prove a theorem, to perform a biology experiment, to write a piece of music, and to create a painting. Computational thinking is quickly having a big impact in virtually every area of human endeavor and citizens of the XXIst century will need computational thinking skills as much as they need skills in the three Rs: Reading, wRiting, and aRithmetic. Prof. Morazán's goal is to discover systematic and effective techniques to encourage undergraduate students to engage in computational thinking leading to the pursuit of original research and graduate studies (preferably, but not exclusively, in Computer Science). To achieve this he supports and complements efforts that teach students about computational thinking which includes problem solving techniques and algorithm design, implementation and correctness. For Prof. Morazán, the division between research and teaching is blurry and he feels it is important for teaching to be informed by the latest research results. To date Prof. Morazán has supervised 10 undergraduate research theses. List of selected honors theses:  Christopher J. Dutra, “Towards Closureless Functional Languages via Dynamically Created Functions”, May 2008
 Barbara Mucha, Honors Thesis Title: “Exploiting Syntactic Analysis for Lambda Lifting MTScheme Programs.”, May 2005
 Robert Moore, Thesis Title: “A Study of the Implementation and the Memory, Performance of Bignums.”, May 2005

Department of Mathematics and Computer Science (973) 7619466 The Science and Technology Center
