Skip Navigation Text:

CIS Spring 2007 Courses

CIS 111 Computers and Computation
Principles and practices of programming for the web using a scripting language: basic concepts of problem analysis, program design, implementation, and testing; web application architectures.
CIS 115 Multimedia and Web Design
Introduces the principles and practice of web communication using digital media, including graphics, animation, video, and sound. Labs cover software used to create interactive multimedia documents.
CIS 122 Algorithms and Programming
Introduction to problem solving, algorithm design, data structures, and programming using C++. Introduces techniques for program testing and debugging.
CIS 212 Computer Science III
Basic concepts and practices of computer science. Topics include algorithmic problem solving, levels of abstraction, object-oriented design and programming, software organization, analysis of algorithm and data structures. Sequence.
CIS 315 Intro to Algorithms
Algorithm design, worst-case and average-behavior analysis, correctness, computational complexity.
CIS 401 Research
CIS 403 Thesis
CIS 404 Internship
CIS 405 Reading
CIS 406 Field Studies
CIS 409 Supervised Consulting
CIS 410/510 Introduction to Graphics Programming
An introduction to Computer Graphics Programming, including Java 2D, Java 3D, JME, Ogre 3D, and Processing.
CIS 410/510 Bioinformatics
CIS 410/510 Machine Learning
Machine learning is the field which concerns how to construct computer programs that automatically improve with experience. It has successful applications, such as to data mining, information retrieval, robotics and biomedical informatics.

The intent of this course is to present a broad introduction to machine learning and its established algorithms, including discussions of each of the major approaches currently being investigated. The topics include neural networks, decision trees, Bayesian learning, support vector machines, inductive logic programming, reinforcement learning and learning theory. One secondary goal is to discuss the connections between machine learning and other fields, such as AI, statistics, databases and Web.

CIS 410/510 Multimedia Networks
In this class, we review some of the most active research areas in Internet multimedia networking. The goals of this class are 1) to present important research problems in several areas of Internet multimedia networking, 2) to review and evaluate some of the recent advances and interesting ideas in these areas, and 3) to identify open research problems that deserve further investigation. The following is a tentative list of topics:
  • Quality adaptive transport for streaming media (i.e. congestion control, error control, quality adaptation)
  • Multimedia proxy caching
  • Content distribution for streaming media
  • Multimedia traffic measurement and characterization
  • Interactive streaming applications and games
  • Wireless Multimedia
CIS 410/510 Object Oriented Languages and Systems
Design and implementation of object-oriented systems. Aspect-oriented programming, type systems, OO language implementation (virtual dispatch, GC), OO language design (genericity, reflection, mixins).
CIS 410/510 Software Methodology II
CIS 415 Operating Systems
Principles of operating system design. Process and memory management, concurrency, scheduling, input-output and file systems, security.
CIS 423/510 Software Methodologies II
A second, more advanced course in technical and non-technical aspects of software development. Building on the knowledge and skills acquired in CIS 422, students work as a team to construct a substantial and challenging software project.
CIS 425 Programming Languages
Syntax and semantics. Scope rules, environments, stores, denoted and expressed values, procedures, and parameters. Definitional interpreters. Types, overloading, parametric polymorphism, and inheritance. Varieties of abstraction.
CIS 433/533 Computer & Network Security
Computer networks, such as the Internet, enables different entities to exchange vast quantities of information and share remote resources. Unfortunately, networking also poses a danger by exposing individuals to various forms of network-based attacks, raising ever-growing concerns as computer networks become more common and more relied upon. This course will give an overview of network security issues, look at several most representative security problems, and discuss commonly practiced solutions.
CIS 445/545 Modeling and Simulation
Theoretical foundations and practical problems for the modeling and computer simulation of discrete and continuous systems. Simulation languages, empirical validation, applications in computer science.
CIS 490/590 Computer Ethics
Addresses ethical issues and social impacts of computing. Topics include crime, hacking, intellectual property, privacy, software reliability, employment, and worldwide networks.
CIS 503 Thesis
CIS 601 Research
CIS 602 Supervised College Teaching
CIS 603 Dissertation
CIS 604 Internship
CIS 605 Reading
CIS 606 Field Studies
CIS 607 Visualization of P2P Applications
The goal of this course is to explore tools and techniques for visualization of the large scale dynamic networks formed by p2p applications such as file sharing (gnutella, kazaa, e-donkey, e-mule) and file distribution (BitTorrent). Prof. Reza Rejaie and his Ph.D. student Daniel Stutzbach have developed tools and techniques to collect measurement data regarding the structure and characteristics of the overlay networks formed by some of these applications.

Benefits of visualization:

  • Insights into the structure and behavior of p2p overlay networks (as networks)
  • Insights into the structure and behavior of p2p applications
  • Development of techniques for effective representation of large scale, dynamically changing networks.

CIS 607 Program Analysis
We will look at recent and foundational results in the area, both in the static and the dynamic analysis domain. Sample topics include symbolic execution, analysis algorithms (e.g., points-to analysis techniques), bug detection, software model checking. The emphasis on analysis is from a software engineering and applications-oriented standpoint.
CIS 607 Programming Languages Seminar
CIS 609 Final Project
CIS 610 Scientific Writing Workshop
This experimental course, taught for the first time in Fall 2004, is intended to help graduate students learn to write scientific papers for publication. We will follow a workshop format with peer review and discussion of writing samples. Students will be required to provide frank but constructive criticism of writing samples provided by other students, and to accept criticism in the same spirit.
CIS 624 Structure of Programming Languages
Introduction to axiomatic, operational, and denotational semantics. Environments, stores, and continuations. Type theory, subtypes, polymorphism, and inheritance. Functional and logic programming.
CIS 631 Parallel Processing
Advanced topics in parallel processing including massively parallel computer architecture, supercomputers, parallelizing compiler technology, performance evaluation, parallel programming languages, parallel applications.
CIS 650 Software Engineering
Examines recent models and tools in software engineering including modifications to the traditional software life-cycle model, development environments, and speculative view of the future role of artificial intelligence.
CIT 281 Advanced Business Systems
Develop integrated office applications using Visual Basic for Applications and Microsoft Access, Excel, and Word. Requires computer-laboratory work in addition to regularly scheduled hours.
CIT 383 Enterprise Networking
Fundamentals of data communication and networks applied to enterprise networks and the Internet. Network management and security.