Course Descriptions
Computer and Information Sciences
The course numbering system is alphanumeric beginning with a four-letter department name followed by a dash, a three-digit course number, and a zero. All courses are 3 credit hours unless otherwise indicated. Below are the four-letter subject codes for Computer and Information Sciences.
Acronyms
CISH Computer and Information Sciences Hartford
CSCI Computer Science
COMM Communications
Suffix Numbers
4000-4990 Courses
open for credit to both advanced undergraduate and graduate students
6000-6990 Courses designed for
graduate credit
NOTE: Asterisk (*) denotes an "immigration" course which will not count towards the M.S. in Computer Science, M.S. in Information Technology, or M.Eng. in Computer and Systems Engineering degrees. Such courses may count towards other degrees but consult with you advisor before registering.
CISH Computer and Information Sciences Hartford
CISH-4010 Discrete Mathematics and Computer Theory*
Course covers foundations of discrete mathematics and fundamentals of computer theory. Topics include propositional logic, truth tables, quantifiers, sets, set operations, sequences, complexity of algorithms, divisibility, matrix manipulations, proofs, induction, recursion, counting and the pigeonhole principle, permutations, combinations, repeated trials, expectation, relations (properties, representation, equivalence, Warshall's algorithm), Boolean algebra, functions, logic gates, minimizing, Finite State Machines, Turing machines, Regular expressions, context free grammars, language recognizers, derivation trees, pushdown automata.
CISH-4020 Object Structures*
A study of object oriented
software component design. This course introduces the object oriented paradigm
and its use in organizing software structures including arrays, stack,
queues, lists, trees, graphs, and recursion. Programming assignments require
the use of an object oriented language. Prerequisite: CISH-4010
or equivalent and knowledge of an imperative programming language
(C, PASCAL, etc.).
CISH-4030 Structured Computer Architecture*
Introduction
to computer architecture; the structure and function of a computer system
consisting of processors, memory, I/O modules, and its internal interconnections.
Primary focus on the attributes of a system visible to an assembly level
programmer. Topics include: digital logic, VLSI components, instruction
sets, addressing schemes, memory hierarchy, cache and virtual memories,
integer and floating point arithmetic, control structures, buses, RISC
vs CISC, multiprocessor and vector processing (pipelining) organizations.
Examples are drawn from contemporary (e.g. Intel Pentium, PowerPC) microcomputers.
Prerequisite: Undergraduate course in "Introduction to Computer Science."
CISH–4210 Operating Systems
Discussion of various aspects of
computer operating systems design and implementation. Topics include I/O
programming, concurrent processes and synchronization problems, process
management and scheduling of processes, virtual memory management, device
management, file systems, deadlock problems, system calls, and interprocess
communication. Programming projects are required. Prerequisite: CISH-4020
and CISH-4030.
CISH–4380 Database Systems
Discussion of the state of practice
in modern database systems with an emphasis on relational systems. Topics
include database design, database system architecture, SQL, normalization
techniques, storage structures, query processing, concurrency control,
recovery, security, and new direction such as object oriented and distributed
database systems. Students gain hands-on experience with commercial database
systems and interface building tools. Programming projects are required.
Prerequisite: CISH-4020 or equivalent.
CISH-4940 Readings in Computer and Information Sciences
1 to
4 credit hours.
CISH-4960 Topics in Computer and Information Sciences
1 to 4
credit hours.
CISH-6010 Object Oriented Programming and Design
An
introduction to the theory and practice of object oriented programming
and design. Encapsulation, inheritance, genericity, dynamic binding, and
polymorphism. Students use these concepts to design and implement a modest–sized
system. One object oriented language (chosen by the instructor) is studied
in detail and required for the project. Other languages are covered briefly.
Prerequisite: CISH-4210.
CISH-6050 Software Engineering Management
Introduction
to the current issues in software engineering management. Topics include
the origin of the software crisis, current state–of–the–practice, modeling
the software engineering process, the relationship of methods and tools
to process, software validation, risk mitigation, and software engineering
economics. Prerequisite: CISH-4020.
CISH-6110 Object Oriented Database Systems
Presents
concepts and architectures for support of objects in a database system.
Emphasis is placed on DBMS issues rather than application issues with discussions
of issues related to the object oriented view of data models, query languages,
versioning evolution, authorization, transaction control, storage management,
indexing techniques,
distributed data. Current object oriented and object-relational database systems
are reviewed and compared. A programming project or research paper may
be required. Prerequisites: CSCI–4380 and the object oriented portion of
either CISH-4020 or CISH–6010.
CISH-6120 Distributed Database Systems
Examines client/server
DBMS and considers how a client–server architecture can be used to implement
the requirements of a DDBMS. Topics include DDBMS taxonomies, case studies,
design considerations, transaction management, and global query optimization.
Concludes with an examination of multidatabase systems. Prerequisite:
CSCI–4380.
CISH-6150 Artificial Intelligence and Heuristics
Survey of machine
implementation of processes as foundation to thinking and perceiving. Modeling
and representation of knowledge. AI systems and languages, reasoning and
problem solving. Current literature is discussed. Applications are chosen
from computer game playing programs, English dialogue, theorem proving,
computer vision, robot implementation, and automatic programming. Limitations
and performance of techniques. Certain topics are programmed. Prerequisite:
CISH-4030.
CISH–6220 LANs, MANs, and Internetworking
Explores
the current capabilities and trends in LANs and MANs with additional focus
on issues of internetworking network systems or subsets. Topics include:
Topologies and transmission media, Local and Metropolitan Area Network
(LAN and MAN) architectures and performance. LAN standards IEEE 802.x,
and ANSI Standard FDDI. Circuit switched local area networks, e.g., ATM,
Fibre Channel. Internetworking alternatives, bridges, network switches,
routers and gateways. General LAN management tools. Prerequisite: ECSE–4670
or equivalent.
CISH–6230 Network Management
Introduction to methods,
techniques and tools for the management of telecommunication systems and
networks. Major topics covered in the course are:
Simple Network Management Protocol (SNMPv2, SNMPv3),
Remote Monitoring (RMON1, RMON2), Standard Management Information (MIBs),
and Telecommunications Management (TMN, CMIS/SMIP);
configuration
and name management, fault and performance management, security, accounting
management; and web-based network management.
Prerequisite: ECSE–4670 or equivalent basic concept computer and
communication networks course.
CISH–6510 Web Application Design and Development
Students will learn approaches to the design, development, and maintenance of
Web Sites. Students will study software and information architectures
for the Web, design techniques for distributed Web-based applications,
and methods and tools for the creation and maintenance of Web sites. Study will encompass
the major components of a Web site including browsers
and client applications, Internet protocols that link client to server,
and server applications. Issues of performance, security, and usability will
be examined. Prerequisite: CISH-4020 or CSCI-2300. Prior experience
with HTML and Java. ECSE-4670 and CSCI-4380 recommended.
CISH–6900 Computer Science Seminar
For students
following the Applied path, who are near the end
of their program, a two-term course that meets once per month from
September through March and one Saturday in April when students give their
presentations. Registration is accepted during Fall registration only.
Students are required to attend all eight meetings in order to fulfill
the Seminar requirement. 1 credit hour.
CISH–6940 Readings in Computer and Information Sciences
1 to
3 credit hours.
CISH–6960 Topics in Computer and Information Sciences
Contact the Department of Engineering and Science for descriptions
of recently offered special topic classes.
1 to 3 credit hours.
CISH-6960 Topics in Computer Science: Artificial Intelligence and Heuristics
Survey of machine implementation of processes as foundation to thinking and perceiving. Modeling and representation of knowledge. A.I. systems and languages, reasoning and problem solving. Current literature is discussed. Applications are chosen from computer game playing programs, English dialogue, theorem proving, computer vision, robot implementation, and automatic programming. Limitations and performance of techniques. Certain topics are programmed. Prerequisite: CISH-4030.
CISH-6960 Topics in Computer Science: Bioinformatics
Bioinformatics (computational molecular biology) is a relatively new discipline, bringing together computational, statistical, experimental, and technological methods, which is energizing and dramatically accelerating the discovery of new technologies and tools for molecular biology. The solutions of bioinformatics problems very often require searching through very large search spaces. Bioinformatics applies computer science techniques to solve crucial problems in biology and medicine, on the other hand, the related area of DNA-based computing uses biological techniques to solve hard computational problems in computer science. Typical tasks done in bioinformatics include inferring a protein’s shape and function from a given sequence of amino acids, finding all the genes and proteins in a given genome, determining sites in the protein structure where drug molecules can be attached.
CISH-6960 Topics in Computer Science: Cryptography and Network Security
Principles of number theory and the practice of network security and cryptographic algorithms.
Topics include: Primes, random numbers, modular arithmetic and discrete logarithms. Conventional
or symmetric encryption (DES, IDEA, Blowfish, Twofish, Rijndael) and public key or asymmetric
encryption (RSA, Diffie-Hellman), hash functions (MD5, SHA-1, RIPEMD-160, HMAC), digital
signatures, certificates and authentication protocols (X.509, DSS, Kerberos), electronic mail security (PGP, S/MIME), web security and protocols for secure electronic commerce (IPSec, SSL, TLS, SET).
Prerequisite: ECSE-4670 or permission of the instructor.
CISH-6960 Topics in Computer Science: Evolutionary Computation
The purpose of this course is to learn the foundations, techniques and rich applications of evolutionary computation - a powerful new sub-area of computer science, inspired and based on natural evolution, and targeting real-world intractable problems. The course will deal with a form of evolution, called Evolutionary Algorithms that takes place in a computer. In evolutionary algorithms, selection operates on population of individuals, called chromosomes, and stored in a computer's memory. They are evolved using mutation and crossover in much the same way that natural populations evolve. This form of computation is called Evolutionary Computation.
CISH-6960 Topics in Computer Science: New Horizons in Computer Architecture and Networks
A course that examines the current state of the art and future technological growth in computers (mainframes to microprocessors), memory, information display, and the growth of data/voice/video communication networks (wired and wireless). What are the current limits of technologies and what breakthroughs are needed to reach the next plateau. What technologies are on the horizon and what will it mean to current and future IT systems and applications. Successful completion of this course may lead to additional 3-credit projects.
CISH-6960- Topics in Computer Science: Data Warehouse Systems
Moving large volumes of data to a centralized, integrated, subject-oriented environment with high granularity and extensive history is studied. Dimensional modeling is covered using specific techniques applied to case studies from industry. The recurring patterns and process that apply across the many sub-systems of the warehouse are examined. Connections to advanced analytics, data mining, and business intelligence are reviewed. The non-technical challenges of building a massive, shared environment are discussed throughout. Prerequisite: CISH-4380 or strong relational database experience.
CISH-6960 Developing Enterprise Applications
Discussion of the architecture, design, and implementation of modern multi-tiered applications.
Students will develop components that can be installed in containers provided by application servers, and learn how to access container-managed services like persistence, security, and distributed transactions. Asynchronous messaging through the use of message queues and topics will also be discussed. Web services and service oriented architectures will be examined as an integration mechanism for leveraging existing systems. Common design patterns will also be evaluated for large-scale system development. The course will use the Java 2 Enterprise Edition as an example of available API's and reference implementations. Prerequisite: CISH-6510 or equivalent Java experience.
CISH-6960 Topics in Computer Science-Evolutionary Computation
The purpose of this course is to learn the foundations, techniques and rich applications of evolutionary computation - a powerful new sub-area of computer science, inspired and based on natural evolution, and targeting real-world intractable problems. The course will deal with a form of evolution, called Evolutionary Algorithms that takes place in a computer. In evolutionary algorithms, selection operates on population of individuals, called chromosomes, and stored in a computer's memory. They are evolved using mutation and crossover in much the same way that natural populations evolve. This form of computation is called Evolutionary Computation.
CISH–6960H09 Research Methods
Course will review the major
considerations and tasks involved in conducting scientific research,
particularly in the area of computer science. It introduces the essential aspects
of designing, supporting and conducting a research project. Those who
successfully complete the course will be able to: produce a well-developed
research proposal; select an appropriate methodology with
which to conduct the research and defend the methodology of
their selection; understand the various tasks required to carry out the
research; find the resources needed to guide them through the research
process and the documentation of its findings.
CISH–6961 Ethics and Computer Science in the Information Age
Computers and high-speed communication networks are transforming our world.
Although these technologies have brought us many benefits, they have also
raised many social and ethical concerns. A thoughtful response to information
technology requires a basic understanding of its history, an awareness of current
information-technology-related issues, and a familiarity with ethics. Besides an
introduction to ethics, this course will discuss such topics as: intellectual property
(software patents vs. open source software), Digital Rights Management (file sharing
of copyrighted material vs. fair use), privacy and civil liberties, risks and
liabilities of computer-based systems.
CISH–6970 Professional Project
Active participation in a term-long project, under the supervision of
a faculty advisor. A Professional Project often serves as a culminating
experience for a Professional Master's program but, with departmental
or school approval, can be used to fulfill other program requirements.
With approval, students may register for more than one Professional Project.
Professional Projects must result in documentation established by
each department or school but are not submitted to the Graduate School
and are not archived in the library. Grades of A, B, C, or F are assigned
by the faculty advisor at the end of the term. If not completed on
time, a formal Incomplete grade may be assigned by the faculty advisor,
listing the work remaining to be completed and the time limit for
completing this work.
CISH–6980 Master's Project
Details may be obtained from the
Department of Engineering and Science. 3 to 6 credit hours.
CISH–6990 Master's Thesis
Details may be obtained from the Department
of Engineering and Science. 3 to 6 credit hours.
CSCI–6050 Computability and Complexity
This course discusses
modern concepts of computability and computational complexity theories.
The Church-Turing thesis. Variations of Turing Machines; Algorithms;
Decidability; the Halting Problem; Reducibility; The Recursion theorem;
The Concept of Information; the Time and Space Complexity; Intractability;
NP completeness and Cook's theorem; Elements of Cryptography.
Prerequisite:
CISH-4010.
CSCI–6210 Design and Analysis of Algorithm
Theoretical and empirical
analysis of algorithms; tools for on–line monitoring of the algorithm's
performance. Advanced algorithms for polynomial problems; randomized heuristic
and approximate algorithms. Problems include computation in discrete mathematics,
number theory, linear algebra, graph theory, numerical and symbolic computing.
It is suggested that students take CSCI–6050 before taking this course.
CSCI-6390 Database Mining
This course will provide an introductory survey of the main topics in data mining and knowledge discovery in databases (KDD), including: classification, clustering, association rules, sequence mining, similarity search, deviation detection, and so on. Emphasis will be on the algorithmic and system issues in KDD, as well as on applications such as Web mining, multimedia mining, bioinformatics, geographical information systems, etc.
CSCI–6460 Advanced Database Management Topics
Continuation of
CSCI–4380/CSCI-4380, presents a more theoretical approach to logical and physical
database design. Algorithms for logical database design, primary and secondary
indexing techniques, query processing and query optimization, and database
security. Problems of interfacing a database system with an operating system,
and some of the issues in implementing distributed database systems. Much
of the material comes from recent research papers. A term paper may be
required. Prerequisite: CSCI–4380 or CISH-4380.
CSCI-6480-Theory of Compiler Design
Use of language theory and automata theory in the design of compilers. Syntax-directed compilers, Lexical analysis, computer implementation and finite state machines. Syntax analysis, parsing versus restructuring. Top-down and bottom-up parsing algorithms. TD(k) and LR(k) grammars. The Younges algorithm. Syntax-directed transducers. Prerequisites: CISH 4010 and CISH 4210. Knowledge of PASCAL, C or LISP.
CSCI–6940 Readings in Computer Science
1 to 3 credit hours.
CSCI–6960 Topics in Computer and Information Sciences
Contact
the Department of Engineering and Science for descriptions of
recently offered special topic classes. 1 to 3 credit hours.
COMM–6420 Foundations of Human-Computer Interaction Usability
In this course, we will consider methods for gathering users' requirements
for product functions and information, ways to test products and information
for usability and suitability, and procedures for incorporating the results
learned through testing. We will design and conduct usability tests on products,
documents, and interfaces of interest.
Return to Catalog Table of Contents