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)