DEPARTMENT OF COMPUTER SCIENCE, EMU
Graduate Course Description
[effective Spring 2004 Term]
Prerequisites
for graduate courses in this listing reference undergraduate courses in the
department of computer science or they reference one of the three prerequisite
assessments that are determined for each graduate student at the time of admission
to the Computer Science Master’s degree program. Each assessment has
two possible scores:
0 - unsatisfactory
1 - satisfactory
VCS1: Student satisfies the admissions requirements to the Computer Science Master's degree program CS.
VCS2: Student satisfies the VCS1 admissions assessment, and student has completed COSC 444 Foundations of Automata and Languages or COSC 541 Automata, Computability, and Formal Languages or equivalent.
VCS3: The student has completed an undergraduate computer science major that includes senior level courses in computer architecture, database, and operating systems.
COSC
506 Methods of Teaching Computer Science in the Secondary School 3
hrs
This course encompasses information
and materials needed to prepare students for the teaching of computer science
in grades seven through twelve. Topics include curricular development, course
content, laboratory arrangement, pedagogical methods, security and maintenance
of equipment, software selection and evaluation and copyright considerations.
In addition, the course presents approaches for dealing with diversity of
student abilities and backgrounds, techniques and strategies for teaching
problem-solving, algorithm development and program debugging. Time will be
spent fitting previous teaching experiences and backgrounds into the computer
science class and laboratory environments.
Prereq: VCS1 or both COSC 311 and
COSC 221.
COSC 511 Design and Analysis of Algorithms
3
hrs
Complexity measures of algorithms; searching, sorting,
string matching, and graph algorithms; design and analysis of greedy algorithms,
backtracking, divide and conquer approach, dynamic programming; NP-complete
and NP-hard problems are studied.
Prereq: VCS1 or COSC 314, COSC 311,
and MATH 121.
COSC 513 Formal Methods in Software Development
3 hrs
Principles of logical reasoning and their application
to the development of reliable software, propositional and predicate logic,
mathematical induction, semantics of control and data structures are studied.
Examples are drawn from various applications areas. Emphasis is on the use
of formal methods as practical tools that aid in software development.
Prereq: VCS1 or COSC 314, COSC
311, and MATH 121.
COSC
514 Fundamentals of Computer Science I
4 hrs
An accelerated course covering the content of COSC 211
Programming Data Structures and COSC 311 Algorithms and Data Structures. Includes
structured programming, recursion, topics in data structures and an introduction
to algorithm analysis.
No credit for COSC 311 or its equivalent.
Prereq: COSC 111 or equivalent.
COSC
515 Fundamentals of Computer Science II
4 hrs
An accelerated treatment of topics from COSC 221 Computer
Organization I and COSC 321 Computer Organization II. Topics include: machine
language and arithmetic; assembly language programming; implementation of
high-level run time structures; structure of assemblers, loaders, and command
interpreters. Logic design and computer architecture.
No credit for COSC 221, COSC 321 or their equivalent.
Prereq: COSC 514 or department permission.
COSC
522 Computer Communication Networks and Distributed System 3
hrs
A study of networks of interacting computers. Topics covered:
principles of data communication; major national and international protocols;
models for network design and analysis; local and long-haul networks; distributed
processing, distributed databases and distributed operating systems. A laboratory
project involving a network of microcomputer systems is included.
Prereq: VCS1 or COSC 314, COSC
311, and COSC 321.
COSC
523 Advanced Computer Organization
3 hrs
Processor design, fixed and floating point arithmetic
processing and non-arithmetic processing are studied. Topics covered: control
design and microprogramming; memory organization and input-output; system
organization. Case studies will be drawn from computer systems designed to
make special types of processing more efficient: stack computers, pipelined
processors, and vector computer multiprocessing.
Prereq: VCS1 or COSC 311 and COSC
321.
COSC
527 Wireless Networking Principles
3 hrs
This course involves the study of wireless communication
technologies and standards. Communication issues such as frequency reuse,
signal coding, error control coding, and spread spectrum technology as well
as technologies including cellular telephony, personal communications systems,
and wireless local area networks and international wireless standards will
be discussed.
Prereq: MATH 120 and (COSC 439
or COSC 522)
COSC
541 Automata, Computability, and Formal Languages 3
hrs
A survey of the principal mathematical models of computation
and formal languages. Finite automata, regular languages and sets, the Chomsky
hierarchy, context-free languages, computability and undecidable problems,
computational complexity and NP-completeness are studied.
Prereq: VCS1 or COSC 314 and COSC
311.
COSC
544 Programming in LISP
1 hr
Introduction to the LISP language with emphasis on artificial
intelligence applications. Pure LISP, built-in and user-defined functions,
PROG feature, MAP-functionals and property lists.
Prereq: VCS1 or COSC 311 or COSC
514.
COSC
545 Programming in Prolog 1
hr
An introduction to one of the most widely used languages
of artificial intelligence. Topics include Prolog’s inference procedure,
assertions of facts and rules, recursion, list structures, functors, the cut,
numerical operations, and principles of good Prolog style.
Prereq: VCS1 or COSC 311 or COSC
514.
COSC 552 Human Computer Interaction 3
hrs
Methods for modeling, designing, implementing and evaluating
dialogues between people and computer systems, taking into account modern
interface technologies, human limitations and tradeoffs between competing
design objectives.
Prereq: VCS2 or COSC 444, or COSC
541.
COSC
556 Advanced Computer Graphics 3
hrs
Topics covered: mathematics for 3-D graphics; polygon
clipping; polygon filling; modeling methods; 3-D transformations; parallel
and perspective projections; hidden line and hidden surface removal algorithms;
shading and color models.
Prereq: VCS1 or COSC 311, MATH
120, and MATH 122.
COSC
561 Artificial Intelligence 3
hrs
This course introduces the student to basic concepts and
techniques of artificial intelligence. Topics covered: strategies for choosing
representations, notational systems and structures; search strategies; control
issues; examples of current systems in natural language processing, pattern
recognition, problem-solving, learning and information retrieval. Students
with no prior knowledge of LISP should take COSC 544 concurrently.
Prereq: VCS2 or COSC 444 or COSC 541.
COSC
562 Information Retrieval and Recommendation 3
hrs
Explores the fields of information retrieval and recommendation.
Searching for and recommending relevant information to a user. Topics include
set-theoretic, algebraic, and probabilistic models common to both fields,
evaluation of retrieval and recommendation techniques, queries, indexing,
and issues related to format (text, multimedia, etc.).
Prereq: ( ( COSC 314 and COSC 311 ) or ADM ) and ( MATH 370
or MATH 360 )
COSC
571 Database Management Systems Design
3 hrs
Topics covered: file and data organization techniques;
the hierarchical, network, and relational data models with examples; query
facilities; data normalization; security and integrity; design and implementation
of a simple DBMS system.
Prereq: VCS2 or COSC 341, COSC
321, and either COSC 444 or COSC 541.
COSC
576 Computational Tools for Bioinformatics
3
hrs
An introduction to tools for programming and data management
commonly used in bioinformatics. Topics include Perl programming, bioinformatics
programming libraries for Perl and Java, web and data markup languages, and
database technology (database design and queries).
Prereq: COSC 514 or COSC 311.
COSC
581 Software Design and Development
3
hrs
Software engineering techniques for the organization,
management, and development of a large software project are studied, including
specification, structured design, segmentation and documentation.
Prereq: VCS2 or COSC 341 and either
COSC 444 or COSC 541.
COSC
582 Object-Oriented Design
3 hrs
This course covers the analysis and design aspects of
a software development process from an object-oriented perspective. The Unified
Software Development Process along with the Unified Modeling Language (UML)
will be used for modeling software systems. Requirements gathering and planning
activities will be dealt with only from a modeling perspective.
Prereq: COSC 481 or COSC 581.
COSC
590/591/592 Special Topics 1/2/3
hrs
A graduate level course in a specific area of computer
science to be determined by the field of specialization of the instructor
and the interest of the students. Not more than six hours of special topics
may be used on a degree program.
Prereq: Six hours of graduate
computer science courses and department permission.
COSC
597/598/599 Independent Study
1/2/3
hrs
An intensive study of a problem or implementation of a
project under the direction of a member of the computer science faculty.
Prereq: Six hours of graduate computer
science courses and department permission.
COSC 612 Parallel Algorithms
3 hrs
A course in design and analysis of algorithms for parallel
programming. Sorting, searching, matrix multiplication, graph theory, and
other fundamental areas of computation are considered for parallel program
design.
Prereq: COSC 511.
COSC 616 Algorithms in Bioinformatics
3
hrs
Coverage of fundamental algorithmic techniques used to
solve problems in bioinformatics, relating to DNA sequences, microarrays,
and evolutionary computations. Also, covers intractability of biological problems,
and techniques to deal with intractability.
Prereq: COSC 576 or COSC 511 or
COSC 513 or COSC 541.
COSC
623 Advanced Operating Systems 3
hrs
Selected topics from areas such as concurrent processing,
memory management, resource allocation and scheduling, multiprocessing and
multiprogramming, protection, performance evaluation and modeling will be
covered in depth.
Prereq: VCS3 or COSC 314 and COSC
423.
COSC
625 Real Time Processing
3
hrs
An introduction to the problems, concepts and techniques
involved in computer systems that must interface with external devices; computer
characteristics needed for real time use, operating system considerations,
analog signal processing and conversion, and inter-computer communication.
Students will be involved in several laboratory projects involving a mini-
or microcomputer system.
Prereq: VCS3 or COSC 423 and either
COSC 422 or COSC 523.
COSC
631 eCommerce and Web Database Infrastructure
3 hrs
This course involves the study of the technical details
necessary for building electronic commerce systems and web databases. Such
technical details include the operating system, web and database servers,
client/server communications, security issues, audit trails, payment systems
and modern web application programming languages.
Prereq: COSC 436 or COSC 471 or
COSC 571 or COSC 439 or COSC 522.
COSC
645 Advanced Compiler Construction
3hrs
An introduction to the major methods of compiler implementation.
These include: lexical analysis, LL and LR parsing, semantic analysis and
code generation, error detection and recovery, and code optimization. Compiler
engineering techniques including portability, validation and the use of automated
compiler-writing tools are also studied. Course project will involve implementation
of a compiler.
Prereq: COSC 445 and COSC 541.
COSC
653 Software Requirements Engineering
3hrs
This course teaches the student how to determine clients'
software needs, formally specify operations and data, quantitatively assess
risks involved in a software project, estimate resources necessary to create
software, coordinate a requirements team, measure and evaluate requirements
documents, and investigate current research issues in this field.
Prereq: COSC 481 or COSC 581.
COSC
661 Automated Reasoning
3
hrs
A theoretical and practical survey of different reasoning
techniques, both classical and non-classical, and methods for implementing
them as computer programs. Topics will include resolution proofs, fuzzy logic,
non-monotonic reasoning, default reasoning and uncertainty measures. Applications
will include expert systems.
Prereq: COSC 461 or COSC
561.
COSC 662 Seminar in Artificial Intelligence 1
hr
A graduate-level seminar in specialized concentration
areas.
Prereq: 12 of graduate computer
science courses and department permission.
COSC
663 Fuzzy Logic and Design of Fuzzy Systems
3 hrs
An applied and theoretical treatment of fuzzy logic concepts.
Discrete and continuous representations of fuzzy sets and fuzzy operations.
Types of fuzzy reasoning, their computational and logic consistency, and stability
in fuzzy systems. Design of fuzzy systems in a variety of case studies such
as controllers, traffic simulations, pattern recognition.
Prereq: COSC 511 or COSC
513 or COSC 541.
COSC
667 Machine Learning and Data Mining
3
hrs
Introduction to the theory and practice of automated data
discovery and inference over large data sets. Students will implement various
automated learning algorithms and learn the impact of inductive bias, overfitting
and data representation on these algorithms. Applications covered include
information retrieval, genetic sequencing and web based mining.
Prereq: MATH 120 and MATH
360 and ( COSC 471 or COSC 561 ).
COSC
671 Advanced Topics in DBMS
3
hrs
Advanced topics in database principles. Higher normalizations,
query optimization, triggers and active databases, transaction control, object-oriented
database model, issues in distributed and parallel database, multidimensional
indexing, inexact indexing.
Prereq: COSC 471 or COSC
571.
COSC 679/680/681 Special Topics 1/2/3
hrs
A graduate level course in a specific area of computer
science to be determined by the field of specialization of the instructor
and the interest of the students.
Prereq: 12 hours of graduate computer
science courses and department permission.
COSC 683 Software Engineering Practicum 3
hrs
Working in a software project team, students will develop
a large software system, carrying the project through from requirements analysis
to acceptance testing. Teams will analyze live problems, that is, projects
selected for their functionality to the user(s) involved. This is a laboratory
course with formal class meetings only for the distribution of projects.
Prereq: 18 hours of graduate computer
science courses and department permission.
COSC
685 Software Quality Assurance
3 hrs
This course covers various techniques for assessing the
quality of software. Topics include types of testing techniques, inspection
and technical review, complexity measures, and test planning, design and execution.
An introduction to one or more software testing automation tools will also
be covered.
Prereq: COSC 481 or COSC
581.
COSC 690/691/692 Thesis 1/2/3
hrs
Intensive research into a computer science problem and
the preparation of a report consistent in substance and form with the standards
of the discipline.
Prereq: 18 hours of graduate computer
science courses and department permission.
COSC
697/698/699 Independent Study 1/2/3
hrs
An intensive study of a problem or implementation of a
project under the direction of a member of the computer science faculty.
Prereq: 12 hours of graduate computer
science courses and department permission.
CASI
650 Current Challenges in Bioinformatics Seminar
3 hrs
This course provides an opportunity for students to work
in teams on real-life problems of bioinformatics. Students will apply their
teambuilding skills to solve problems provided by biotechnology and pharmaceutical
companies. This course is specifically designed for students enrolled in the
Professional Master's in Bioinformatics program.
Prereq: department permission.
CASI
680 Internship in Bioinformatics
3
hrs
This course provides an introduction to applied bioinformatics
in a non-academic, for-profit environment. Students have an opportunity to
apply their technical, communication, and teambuilding skills in biotechnology
and pharmaceutical companies of all sizes. This course is specifically designed
for students enrolled in the Professional Master's in Bioinformatics Program.
Prereq: department permission.
Undergraduate
courses for graduate credit
The following courses may be elected for graduate credit; course descriptions may be found in the undergraduate catalog. A maximum of nine hours of approved 400-level course work may be permitted in the earning of any graduate degree.
If you intend to enroll in any of the following undergraduate courses for graduate credit, you must submit a request form from the Graduate School to receive permission before enrolling in the course; otherwise, you will receive undergraduate credit.
COSC 403 Seminar and Project Design for Educators (3 hrs)
COSC 405 Switching Theory (3 hrs)
COSC 421 Systems Programming (3 hrs)
COSC 422 Introduction to Microprocessors (3 hrs)
COSC 423 Computer Operating Systems (3 hrs)
COSC 439 Computing Network Principles (3 hrs)
COSC 445 Compiler Construction (3 hrs)
COSC 456 Microcomputer Graphics (3 hrs)
COSC 461 Heuristic Programming (3 hrs)
COSC 471 Database Principles (3 hrs)
COSC 481 Software Engineering and Senior Project (3 hrs)