<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="courses.xsl"?>
<?xml-stylesheet type="text/css" href="http://www.cs.uno.edu/styles/main.css" ?>
<!DOCTYPE courses [
<!ELEMENT courses (row+) > 
<!ELEMENT row (dept, course, title, hrs, prereq, desc)> 
<!ELEMENT dept (#PCDATA)>
<!ELEMENT course (#PCDATA)> 
<!ELEMENT title (#PCDATA)>
<!ELEMENT hrs (#PCDATA)>
<!ELEMENT prereq (#PCDATA)>
<!ELEMENT desc (#PCDATA)>
] >
<courses>
 <row>
  <dept>CSCI</dept>
  <course>1000</course>
  <title>Introduction to Computers</title>
  <hrs>3</hrs>
  <prereq>Eligibility for enrollment in MATH 1115.</prereq>
  <desc>Majors in the College of Sciences may not use this course for science elective credit. Other majors should consult with their colleges concerning use of this course toward degree credit. This course is an introduction to what computers are and how they can be used. A major emphasis is on providing hands-on laboratory experience using software packages such as word processing, spreadsheets, and database management systems. Lecture topics include history of computers, organization of a computer system, computer terminology, input-output devices and media, software development and programming, future trends, and effects on human society.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1001</course>
  <title>Introduction to Information Systems &amp; Technology</title>
  <hrs>3</hrs>
  <prereq>None</prereq>
  <desc>Introduction to three foundational disciplines of the information technology age: electrical and computer engineering, computer science, and management information systems (MIS). Students will be provided with an overview of the three disciplines and how they interact to form a new discipline-information systems and technology. This course will be cross-listed with ENEE 1001 and MANG 1001. Students taking CSCI 1001 cannot receive credit for ENEE 1001 and MANG 1001. Also, this course may not be used to satisfy UNO&#146;s general degree requirement for computer literacy and may not be taken for credit in the Electrical Engineering program.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1060</course>
  <title>Introduction to Programming</title>
  <hrs>3</hrs>
  <prereq>MATH 1115 with a grade of C or better recommended or consent of department.</prereq>
  <desc>Introduces and applies computer techniques needed to solve problems in a procedure-oriented language. Develops programming skill necessary for students to utilize the digital computer in carrying out computational assignments for other courses. Except as provided for in individual college policies a student may receive credit in only one of CSCI 1060, 1201, and 1583.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1201</course>
  <title>Introduction to Programming in Fortran</title>
  <hrs>3</hrs>
  <prereq>MATH 1115 or MATH 1125 with a grade of C or better recommended, or consent of department.</prereq>
  <desc>Offered each semester and summer session. Introduces and applies computer techniques needed to solve problems in a high-level programming language such as Fortran. Develops programming skills necessary for students to utilize the digital computer in carrying out computational assignments for other courses. Except as provided for in individual college policies, a student may receive credit in only one of Computer Science 1060, 1201, 1203, 1205, and 1583. Not intended for Computer Science majors.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1203</course>
  <title>Introduction to Programming in C</title>
  <hrs>3</hrs>
  <prereq>MATH 1115 or MATH 1125 with a grade of C or better recommended, or consent of department.</prereq>
  <desc>Offered each semester and summer session. Introduces and applies computer techniques needed to solve problems in a procedure-oriented language such as C. Develops programming skills necessary for students to utilize the digital computer in carrying out computational assignments for other courses. Except as provided for in individual college policies, a student may receive credit in only one of Computer Science 1060, 1201, 1203, 1205, and 1583. Not intended for Computer Science majors.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1205</course>
  <title>Introduction to Programming in C++</title>
  <hrs>3</hrs>
  <prereq>MATH 1115 or MATH 1125 with a grade of C or better recommended, or consent of department.</prereq>
  <desc>Offered each semester and summer session. Introduces and applies computer techniques needed to solve problems in a high-level programming language such as C++. Develops programming skills necessary for students to utilize the digital computer in carrying out computational assignments for other courses. Except as provided for in individual college policies, a student may receive credit in only one of Computer Science 1060, 1201, 1203, 1205, and 1583. Not intended for Computer Science majors.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1581</course>
  <title>Software Design and Development I Laboratory</title>
  <hrs>1</hrs>
  <prereq>Concurrent registration in CSCI 1583 is required.</prereq>
  <desc>Two hours of laboratory each week to accompany CSCI 1583. Applications, exercises, and explorations in methodologies, software design, and development.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>1583</course>
  <title>Software Design and Development I</title>
  <hrs>3</hrs>
  <prereq>MATH 1125 with a grade of C or better or consent of department; concurrent registration in CSCI 1581 is required.</prereq>
  <desc>An introduction to software design and development using an object-oriented approach. Topics include designing specifying implementing and testing elementary classes; developing simple algorithms in an object-oriented programming language; programming by contract; implementing fundamental structural relations between classes. Intended primarily for Computer Science majors. Three hours of lecture. Except as provided for in individual college policies a student may receive credit in only one of CSCI 1060, 1201, and 1583.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2025</course>
  <title>Data Structures and Applications</title>
  <hrs>3</hrs>
  <prereq>Computer Science 1205.</prereq>
  <desc>Offered each semester. A continuation of Computer Science 1205. Data structures using an object-oriented language for solving scientific and engineering problems. Topics also include linear data structures, trees, graphs, and algorithm analysis. Not allowed for credit for computer science majors.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2103</course>
  <title>Introduction to Object Orientation</title>
  <hrs>3</hrs>
  <prereq>CSCI 1060, 1201, or 1583 with a grade of C or better.</prereq>
  <desc>May not be used for degree credit by Computer Science majors. An introduction to object orientation in programming. The topics are: object orientation as a software design methodology, objects and their implementation using classes, canonical specification of classes, generic structures, inheritance, polymorphism, and application development using objects.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2120</course>
  <title>Software Design and Development II</title>
  <hrs>3</hrs>
  <prereq>CSCI 1583 and 1581; concurrent registration in CSCI 2121 is required. (The successor course CSCI 2125 has MATH 2721 as a prerequisite; credit or concurrent registration in MATH 2721 is therefore recommended).</prereq>
  <desc>A continuation of CSCI 1583 and 1581 with emphasis on algorithmic techniques and the structuring of larger systems. Topics include sorting and searching, recursion, inheritance and polymorphism, composition, abstract classes and interfaces, exception handling, and the model-view-controller structure. Three hours of lecture.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2121</course>
  <title>Software Design and Development II Laboratory</title>
  <hrs>1</hrs>
  <prereq>Concurrent registration in CSCI 2120 is required.</prereq>
  <desc>Two hours of laboratory each week to accompany CSCI 2120. Applications, exercises, and explorations in methodologies for software design and development.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2125</course>
  <title>Data Structures</title>
  <hrs>3</hrs>
  <prereq>CSCI 2120, 2121, and MATH 2721.</prereq>
  <desc>A continuation of CSCI 2120 and 2121 with emphasis on the design and implementation of structured data objects such as lists, stacks, queues, trees, and graphs; storage allocation for structured data objects.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2450</course>
  <title>Machine Structure and Assembly Language Programming</title>
  <hrs>3</hrs>
  <prereq>CSCI 1060, 1201, or 1583.</prereq>
  <desc>Offered each semester. Assembly language programming and a survey of computer organization; structure of assemblers and loaders; introduction to operating systems.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>2467</course>
  <title>System Programming Concepts</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125, 2150, and 2450 or consent of department.</prereq>
  <desc>Introduction to the concepts and tools used in systems programming. Detailed examination of computer architecture and computer system services from a user&#146;s point of view. Topics include use of operating system services such as process control services and the file management system, memory management, input-output, and command languages.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3080</course>
  <title>Ethics in the Computing Profession</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and any CSCI 4000-level course or consent of department.</prereq>
  <desc>Professional societies; codes of ethics; accreditation and certification; liability; software piracy; information and property; copyright; computer crime; data bank privacy; the Data Protection Act; monopoly and anti-trust questions; robotics and employment issues; VDT&#146;s and public health issues; and Trans-National Data Flow.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3090</course>
  <title>Undergraduate Seminar</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and any 4000-level CSCI course or consent of department.</prereq>
  <desc>A seminar with topics presented by students, faculty, and guests. Students registering for the course must normally make a presentation to satisfy credit requirements. May be repeated for credit.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3097</course>
  <title>Problems in Computer Science</title>
  <hrs>1-3</hrs>
  <prereq>CSCI 2467 an average of B in all CS courses attempted, and the consent of the department.</prereq>
  <desc>May be repeated up to a maximum of six credits but only three may be counted towards satisfying CS elective requirements. Directed effort on some relatively complex computer science projects. Section number will correspond with credit to be earned.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3099</course>
  <title>Senior Honors Thesis</title>
  <hrs>1-6</hrs>
  <prereq>Consent of department and Director of University Honors Program.</prereq>
  <desc>Senior honors thesis research in computer science under the direction of a faculty member. May be repeated for a total of six credits. May not be used as a computer science elective.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3102</course>
  <title>Introduction to the Theory of Computation</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and MATH 2721, or consent of department.</prereq>
  <desc>An introduction to the theory of computation, including automata; computability, and complexity. Topics include automata and languages: decidability, reducability, and the Church-Turing thesis; complexity and intractability.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3150</course>
  <title>File Structures and Network Programming</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125.</prereq>
  <desc>An introduction to file structures, information models,  and simple network programming. Topics include physical and logical organization of files, file processing, external data indexes such as B-trees, structured document/data formats such as XML, input/output models such as streams, and networking models such as sockets.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3301</course>
  <title>Computer Organization</title>
  <hrs>3</hrs>
  <prereq>CSCI 2120 and 2450 or consent of department.</prereq>
  <desc>Basic sequential circuits; data representation and transfer; digital arithmetic; digital storage and accessing; control functions; input-output facilities; system organization. Students will be required to carry out digital circuit laboratory assignments.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3601</course>
  <title>Introduction to Database Management Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 2103 or 2120 and MATH 1140 or 2107 or 2111 or 2721.</prereq>
  <desc>May not be used to satisfy the computer science elective requirement for the curriculum in Computer Science. A study of the modeling, design, and implementation of database systems. Topics include the entity-relationship model, the relational database model, object-priented database models, also data normalization, data description, and retrieval using query languages such as SQL, and database software development using current CASE tools.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>3611</course>
  <title>Systems Analysis and Software Design</title>
  <hrs>3</hrs>
  <prereq>CSCI 2120 or consent of department.</prereq>
  <desc>Introduction to the analysis, design, and implementation of large software systems. Topics include methods and tools for the structuring and modular design of large systems; organization and techniques of team programming; design evaluation and validation. Computer Science majors may only take this course for free elective credit.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4101</course>
  <title>Analysis of Algorithms</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 or consent of department.</prereq>
  <desc>Precise definition of the concept of an algorithm; techniques for algorithm verification; analyzing algorithm performance; applications to practical algorithms.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4125</course>
  <title>Data Models and Database Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 3150 or consent of department.</prereq>
  <desc>Methods, structures, and algorithms used for the organization, representation, and manipulation of large data bases; design and implementation of data base management systems.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4208</course>
  <title>Developing Advanced Web Applications</title>
  <hrs>3</hrs>
  <prereq>CSCI 3150 or consent of the department.</prereq>
  <desc>Design and implementation of advanced web-based applications. Topics covered typically include: HTTP protocol, multi-tier architectures, technologies for server-side and client-side implementation, database connectivity, XML, session handling, web services, scalability and security in the web context. Substantial programming project involving the development of a database-backed web application.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4210</course>
  <title>Introduction to Software Engineering</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125.</prereq>
  <desc>Study of the software life-cycle that different applications go through, from conception to release and maintenance. Topics include: discovery of appropriate software life cycle for a given project: analysis, design and testing methods; risk management; tool support; process and product management; discussion of CMM and ISO-9003. Students will be required to develop a large project in a team &#173;setting.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4302</course>
  <title>Computer System Design I</title>
  <hrs>3</hrs>
  <prereq>Credit or registration in ENEE 3582 and ENEE 3512, or credit in CSCI 3301 and 3401.</prereq>
  <desc>The design process of digital computer systems is studied from the instruction set level, system architecture level, and digital logic level. Topics include machine organization, register transfer notation, processor design, memory design, and input/output considerations. Includes semester project.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4311</course>
  <title>Computer Networks and Telecommunications</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and 2450 or consent of department.</prereq>
  <desc>Overview of modern computer communication networks covering the theoretic multi-layered model from the top down with an emphasis on working protocols and algorithms. Topics include client-server model, common application protocols, connectionless and reliable transport, flow and congestion control, routing, switching, shared medium protocols, transmission media and network hardware.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4350</course>
  <title>Distributed Software Engineering</title>
  <hrs>3</hrs>
  <prereq>CSCI 2467 or consent of the department.</prereq>
  <desc>A study of the concepts, the methodology, the models, and methods that address problems in the development of distributed-software applications with emphasis on distributed-object models and components.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4401</course>
  <title>Principles of Operating Systems I</title>
  <hrs>3</hrs>
  <prereq>CSCI 2467 or consent of department.</prereq>
  <desc>An introduction to the organization of various types of operating systems; machine structure and the functions of an operating system; multiprogramming and time-sharing environments; memory management and resource allocation; virtual memory concepts; the file system and IO device handling; protection and error recovery.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4402</course>
  <title>Principles of Operating Systems II</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of department.</prereq>
  <desc>A continuation of CSCI 4401 with emphasis on time-sharing, multiprocessing, and virtual system environments; performance measurement and evaluation; system simulation; developments in Operating System theory.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4460</course>
  <title>Introduction to Network and System Administration</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of the department.</prereq>
  <desc>An introduction to network and system administration. Topics include processes and files; scripting; system installation; boot and shutdown; process management; daemons and services; devices and drivers; network fundamentals; network file systems; network services. Topics may also include kernel configuration; performance analysis; accounting and system logging; security. The course requires lab projects on dedicated departmental equipment.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4501</course>
  <title>Programming Language Structure</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 or consent of department.</prereq>
  <desc>A study of the concepts of programming languages as realized in a variety of commonly used languages, with emphasis on language definition and structure.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4510</course>
  <title>An Introduction to Translator Construction</title>
  <hrs>3</hrs>
  <prereq>CSCI 4103 and 4501 or consent of department.</prereq>
  <desc>The design and implementation of translators for programming languages. The course will cover the topics of lexical and syntactic analysis, translation, code generation, and code optimization, as well as the design and actual implementation of a compiler for a simple block-structured language such as a subset of Pascal or Ada.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4525</course>
  <title>Introduction to Artificial Intelligence</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 or consent of department.</prereq>
  <desc>Introduction to the problem domain of artificial intelligence and the methods used to solve those problems. Topics include knowledge representation, search strategies, and surveys of principal subareas of artificial intelligence such as expert systems, natural language processing, reasoning systems, games, learning, and vision. Programming assignments in a current artificial intelligence language will be required.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4569</course>
  <title>Bioinformatics II</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 or permission of instructor.</prereq>
  <desc>An Introduction to the algorithms and theory used in bioinformatics and cheminformatics, with current applications in computationalgenomics and biomedical informatics Covers statistica; methods for identifying motifs in biosequences and identifying features in channel currents. Includes hidden Markov models for identifying structure in stochastic sequential data (for gene finding and for feature extraction from protein-channel ionic current measurements) and discriminative methods for use in informatics, particularly Support Vector Machine approaches.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4601</course>
  <title>Data Base Management Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 2120 or 2601 or consent of department.</prereq>
  <desc>A study of the use, design, and implementation of data bases using data base management systems. Topics include current DBMS implementations and data description, manipulation, and inquiry languages.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4620</course>
  <title>Advanced Database Techniques</title>
  <hrs>3</hrs>
  <prereq>CSCI 4125 or consent of department.</prereq>
  <desc>The scope of the basic materials presented in CSCI 4125, Data Models and Database Systems, is expanded to include advanced theoretical aspects, design methodologies, implementation, and specialized applications. The materials presented include higher-order dependencies, object-relational and object-oriented data models, implementation techniques of Database systems and Java Database Connectivity (JDBC). On the applications side, the specific requirements imposed by Deductive DBS, Geographic Information Systems, Genome Data Management, Data Warehousing and Data Mining are discussed.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4621</course>
  <title>Computer Security</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and any one of the following: CSCI 4401 or 4125 or consent of department.</prereq>
  <desc>Overview of security problems; physical security methods; security in multi-user systems; password mechanisms; terminal security; file security; encryption major approaches including both private- and public-key encryption methods; security in data bases access control methods and encryption; statistical databases; operating systems security; security kernels; and the Bell-Lapadula Model.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4623</course>
  <title>Introduction to Computer Forensics</title>
  <hrs>3</hrs>
  <prereq>CSCI 4621 or consent of the department.</prereq>
  <desc>An introduction to the theory and application of computer forensics, an important area of computer security concerned with the preservation and recovery of digital evidence. Topics include: types of digital evidence, obfuscation methods used to hide digital evidence, such as steganography and encryption, tools for data preservation and recovery, techniques for ensuring data security, and legal issues in the preservation, recovery, and presentation of digital evidence. The course will include a substantial lab component.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4631</course>
  <title>Principles of Computer Graphics</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125 and MATH 2511.</prereq>
  <desc>Types of graphics hardware point plotting vector and raster technologies; techniques for defining images point vector and raster-based approaches; graphical data and program structures; image manipulation two- and three-dimensional transformations; techniques for producing perspective; hidden line removal; shading; clipping; and windowing. Applications in several fields.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4632</course>
  <title>Principles of Image Processing</title>
  <hrs>3</hrs>
  <prereq>Computer Science 2125 and Mathematics 2511.</prereq>
  <desc>Introduction to the analysis, implementation and application of digital imaging enhancement and restoration algorithms including fundamental gray-level processing procedures, spatial and frequency-domain filtering, color image processing, methods and transforms for multi-resolution image processing and compression, and elementary image analysis techniques such as segmentation, morphology, and object representation and recognition.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4690</course>
  <title>Topics in Applied Computing</title>
  <hrs>3</hrs>
  <prereq>Consent of department.</prereq>
  <desc>Topics will vary from semester to semester. Offerings are of topical, pragmatic interest to computing practitioners. May not be used to satisfy the computer science elective requirement for the curriculum in Computer Science.  (May be repeated for credit.)</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>4990</course>
  <title>Special Topics in Computer Science</title>
  <hrs>3</hrs>
  <prereq>Consent of department.</prereq>
  <desc>This is an advanced course whose topic changes from semester to semester.The prerequisites change as dictated by the topic. This course may be repeated once for credit.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6001</course>
  <title>Software Development</title>
  <hrs>6</hrs>
  <prereq>Acceptance into the computer science graduate program; completion of an introductory computer programming course and MATH 2107 or 2111; and consent of instructor.</prereq>
  <desc>This course is intended for students who have been accepted into the computer science graduate program but who arrive with limited course work in computer science. An intensive course with six contact hours a week plus programming assignments. Numerous topics are covered with a general emphasis on data structures and their application toward the modular development of large software systems. CSCI 6001 will not be counted toward fulfillment of degree requirements.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6090</course>
  <title>Advanced Problems in Computer Science</title>
  <hrs>1-3</hrs>
  <prereq>Consent of department.</prereq>
  <desc>A projects course of independent work under the direction of a faculty supervisor whose sponsorship must be obtained in advance. May be repeated for up to a total of three credits. Cannot be used for degree credit by students who elect to fulfill the thesis degree requirements. Section number will correspond with credit to be earned.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6101</course>
  <title>Theory of Algorithms and their Complexity</title>
  <hrs>3</hrs>
  <prereq>CSCI 4101 or consent of department.</prereq>
  <desc>Advanced study of algorithms and their complexity; the notions of time and space complexity; design methods, including divide and conquer, and the greedy method; polynomial and nondeterministic polynomial algorithms; the class of NP-complete algorithms.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6110</course>
  <title>Applied Combinatorics and Graph Theory</title>
  <hrs>3</hrs>
  <prereq>CSCI 4101 or consent of department.</prereq>
  <desc>A study of combinatorial and graph theoretic techniques for complexity analysis. Includes generating functions, recurrence relations, Polya&#146;s theory of counting, planar directed and undirected graphs, and NP-complete problems of combinatorial or graph-theoretic nature. Application of techniques to analysis of algorithms in graph theory, as well as more general problems, such as sorting and searching.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6120</course>
  <title>Theory of Computation</title>
  <hrs>3</hrs>
  <prereq>CSCI 3102 or consent of department.</prereq>
  <desc>A survey of formal models for computation. Includes Turing machines, partial recursive functions, recursive and recursively enumerable sets, the recursion theorem, Church&#146;s thesis, Godel numbering, computational complexity, uncomputability, intractability, and unsolvability.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6130</course>
  <title>Data Encryption and Cryptology</title>
  <hrs>3</hrs>
  <prereq>CSCI 4101 and MATH 2511 or consent of instructor.</prereq>
  <desc>A study of the methods used in data encryption and related cryptologic problems. The history of early cryptography, including the Caesar shift, Vigenere table, Playfair square, and Enigma machines. Modern cryptographic problems, including the Data Encryption Standard, the key management problem, the public-key encryption, knapsack methods, number-theoretic methods, and the Rivest-Shamir-Adelman public-key cryptosystem, digital signature, the Digital Signature Standard, and cryptanalysis of knapsacks. Other cryptologic problems, including threshold schemes, zero-knowledge protocols, mental poker, and implementations on uniprocessor machines, networks, and parallel machines.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6140</course>
  <title>Formal Languages</title>
  <hrs>3</hrs>
  <prereq>CSCI 4103 or consent of department.</prereq>
  <desc>Theory and application of formal language systems and automata. Emphasis will be placed on formal systems, the languages they generate, and techniques used to parse strings in those languages.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6230</course>
  <title>Distributed Database Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 4125 and 4311 or consent of department.</prereq>
  <desc>A consideration of the problems and opportunities inherent in distributed databases on a network computer system. Includes distributed database design, optimization of access strategies, distributed concurrency control, recovery in distributed databases, distributed database administration, commercial systems.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6330</course>
  <title>VLSI Circuit Design</title>
  <hrs>3</hrs>
  <prereq>CSCI 4302 and 4401.</prereq>
  <desc>A review of microelectronics and an introduction to MOS technology, basic electrical properties of MOS circuits, MOS circuit design processes, subsystem design and layout, scaling of MOS circuits, aspects of system design and timing, structured design and testing, MOS design projects.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6331</course>
  <title>Advanced VLSI Design</title>
  <hrs>3</hrs>
  <prereq>CSCI 6330 or consent of department.</prereq>
  <desc>Design of large digital VLSI (Very Large Scale Integration) systems using modern CAD tools and state-of-the-art testing and characterization systems.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6340</course>
  <title>Parallel Machines and non-von Neumann Architectures</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 and 4302 or consent of department.</prereq>
  <desc>An investigation of modern parallel processing computers and generally those designed on non-vonNeumann architectures.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6350</course>
  <title>Development of Distributed Software</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of the department.</prereq>
  <desc>This course provides a systematic study of concepts, methodologies, models and methods that specifically address problems in the development of distributed software. The topics include architectural design for distributed applications, distributed object models, interface definition languages, concurrent task structuring, modeling for dynamic behavior, and static analysis and debugging for distributed programs.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6361</course>
  <title>Topics in Mobile Computing</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of department.</prereq>
  <desc>This course provides an introduction to major topics in mobile computing, including software engineering issues for resource-constrained devices (e.g. cellular phones, palmtops), mobile databases, fault tolerance, service discovery, and wireless networking. The course has substantial theoretical and applied components. Students will be required to develop a non-trivial mobile application and prepare a class presentation on a topic in mobile computing.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6401</course>
  <title>Concurrent Programming</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of department.</prereq>
  <desc>A systematic study of concepts, theories, methods and algorithms that specifically address problems in distributed programming. Topics include concurrency, interference, monitors and distributed programming issues, such as: synchronous and asynchronous message passing, remote procedure call, and rendezvous.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6410</course>
  <title>Performance Analysis of Computer Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of the department.</prereq>
  <desc>This course will examine models for the analysis of performance of computer systems. Topics include stochastic processes, discrete and continuous Markov chains, queuing models, and stochastic Petri models. These models will be applied to uni- and multiprocessor systems, including crossbar multiprocessor architectures, single- and multi-bus multiprocessors with external and distributed common memory.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6411</course>
  <title>Topics in Fault Tolerance and Reliability</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401 or consent of department.</prereq>
  <desc>This course provides an introduction to major topics in fault tolerance and reliability, concentrating on distributed systems. These topics include failure modes, failure detection, logical time systems for distributed systems, N-version programming, checkpointing, optimistic and pessimistic logging schemes, software engineering issues in designing fault tolerant and reliable software, and schemes for reliable communication. Students will be required to develop a non-trivial reliable distributed application and prepare a class presentation on a topic in reliability.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6450</course>
  <title>Principles of Distributed Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 4401.</prereq>
  <desc>A study of the concepts and design principles used in the construction of distributed computer systems. Topics include architecture and design goals; distributed time management; state and deadlock detection; name resolution; synchronization, mutual exclusion, and communication; collaborating servers; protection and security; error recovery.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6501</course>
  <title>Formal Methods in Programming Languages</title>
  <hrs>3</hrs>
  <prereq>CSCI 4501.</prereq>
  <desc>Formal definitions and specifications for the semantics of programming languages including lambda-calculus, domain theory, and denotational descriptions of common programming language concepts.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6510</course>
  <title>Compiler Construction</title>
  <hrs>3</hrs>
  <prereq>CSCI 4510 or consent of department.</prereq>
  <desc>Emphasis will be placed on the implementation of programming languages. Review of lexical, syntactic and semantic analysis. Topics will include code generation, optimization, run-time structures and support, attribute grammars, table-driven code generators, and data flow analysis.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6520</course>
  <title>Visual Programming Languages</title>
  <hrs>3</hrs>
  <prereq>CSCI 4101 or CSCI 4103 or CSCI 4501 or CSCI 4510 or consent of the department.</prereq>
  <desc>An introduction to the theory, design and application of visual programming languages. Topics include: basic theory of such languages; overview of existing visual languages and their tools; visual grammars; design of graphical language elements; generalized spreadsheet language; applications and examples.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6595</course>
  <title>Advanced Topics in Bioinformatics</title>
  <hrs>3</hrs>
  <prereq>CSCI 2125, or permission of instructor; either CSCI 4567 or CSCI 4569 (equivalent to any of the 4990/6990 coursework taught under Dr. Winters-Hilt), or permission of instructor.</prereq>
  <desc>This Advanced Topics in Bioinformatics course will be an advanced graduate course that builds on the programming-intensive applications of research from CSCI 4589/6589 involving Hidden Markov Models and from CSCI 4590/6590 involving Support Vector Machines. The class projects will typically build on project efforts begun in prerequisite courses, and often result in peer-reviewed journal publications.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6601</course>
  <title>Advanced Artificial Intelligence</title>
  <hrs>3</hrs>
  <prereq>CSCI 4525.</prereq>
  <desc>The area of artificial intelligence is one of the most diverse in the computing field. This course will go in-depth into one or more core AI sub-areas, as chosen by the instructor. Example sub-areas of study are machine learning, planning, natural language processing, automated deduction, etc.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6602</course>
  <title>Expert Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 4525 or consent of department.</prereq>
  <desc>A study of the techniques, tools, and applications of expert systems. Topics include the architecture of expert systems, knowledge representation, drawing inferences, expert system tools, developing small and large knowledge systems, difficulties with expert system development, and the expert systems market. This course will also involve the design and implementation of a small expert system using a commercially available expert system shell.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6610</course>
  <title>Automated Deduction</title>
  <hrs>3</hrs>
  <prereq>Computer Science 2125, or consent of department.</prereq>
  <desc>The course has two distinct parts. The first is mathematical logic, including Zero-Order Logic, First-Order Logic, semantic approaches and interpretations, and syntactic approaches and deductive apparati. The second part concentrates on the algorithms for performing logic, and covers resolution refutation proofs in Zero-and First-Order Logics.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6621</course>
  <title>Topics in Network Security and Forensics</title>
  <hrs>3</hrs>
  <prereq>CSCI 4621 and CSCI 4623 or consent of department.</prereq>
  <desc>A graduate course in advanced network security and computer forensics, emphasizing the development and application of tools and techniques for securing computer networks and preservation and recovery of digital evidence in networked environments. Topics include: basic issues in network security, network intrusion detection, honeypots and honeynets, and network forensics analysis. The course will include a substantial lab component.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6631</course>
  <title>Advanced Computer Graphics</title>
  <hrs>3</hrs>
  <prereq>CSCI 4631.</prereq>
  <desc>Commonly-used data structures for graphics displays and raster scan graphics algorithms for line and circle drawing; polygon filling; antialiasing; curve fitting; surface fitting; two- and three-dimensional clipping, including clipping to arbitrary convex volumes; hidden-line and hidden-surface removal, including ray tracing; rendering, including local and global illumination models, texture shadows, transparency, and color effects.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6633</course>
  <title>Computer Vision</title>
  <hrs>3</hrs>
  <prereq>CSCI 4632.</prereq>
  <desc>This course provides an overview of fundamental techniques for representing and recognizing visual patterns in two or three dimensions. Topics covered include segmentation and morphology, pattern recognition and classification, color- and text-based measures, motion analysis and optical flow, three-dimensional models from stereo imaging, knowledge-based systems and scene &#173;understanding.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6634</course>
  <title>Data Visualization</title>
  <hrs>3</hrs>
  <prereq>CSCI 4631 or consent of department.</prereq>
  <desc>An introduction to standard techniques for displaying, exploring, and understanding non-visual data from medical, scientific, engineering, financial, or other domains. Topics covered will include visualization models, data representation, color-mapping and contouring, volume rendering, data transformations, modeling, image processing techniques, animation and user interaction.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6635</course>
  <title>Theory &amp; Computer Applications for Pattern Recognition</title>
  <hrs>3</hrs>
  <prereq>CSCI 4525 and MATH 2511 or consent of the instructor.</prereq>
  <desc>A study of the concepts behind pattern recognition and classification with applications in the analysis of various types of data. Topics include: design of a pattern recognition system, Bayesian decision theory, Maximum-likelihood estimation, nonparametric techniques, linear discriminant analysis, multilayer neural networks, non-metric techniques, stochastic methods, unsupervised learning and clustering (including hierarchical and online clustering, component analysis, low dimensional representations).</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6640</course>
  <title>Computational Geometry</title>
  <hrs>3</hrs>
  <prereq>CSCI 4101 or consent of department.</prereq>
  <desc>Using the fields of pattern recognition, computer graphics, image processing, and algorithm design for source material, this course will concentrate on algorithms and techniques for geometric computations. Topics include: computation of convex hulls, decomposition of polygons, polygon approximation, planar visibility, and other current topics of research. Students will be required to design and analyze a number of algorithms.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6650</course>
  <title>Intelligent Agents and Multi-Agent Systems</title>
  <hrs>3</hrs>
  <prereq>CSCI 4525 or consent of the department.</prereq>
  <desc>An investigation of computational systems in which several intelligent agents or agents and humans, interact. Includes architectures for building intelligent agents, design and implementation of multi-agent systems, inter-agent communication languages and protocols, problem-solving, planning, learning and adaptation techniques in multi-agent systems.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>6990</course>
  <title>Topics In Advanced Computer Science</title>
  <hrs>3</hrs>
  <prereq>Consent of department.</prereq>
  <desc>This is an advanced graduate-level course whose topics change from semester to semester. The prerequisites change as dictated by the topic. This course may be repeated once for credit.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>7000</course>
  <title>Thesis Research</title>
  <hrs>1-9</hrs>
  <prereq></prereq>
  <desc>To be repeated for credit until thesis is accepted. Section number will correspond with credit to be earned.</desc>
 </row>
 <row>
  <dept>CSCI</dept>
  <course>7040</course>
  <title>Examination or Thesis Only No Credit</title>
  <hrs>0</hrs>
  <prereq></prereq>
  <desc>Open to students in a thesis program who have only (other than application for degree) the final typing and acceptance by the Graduate School of their thesis or dissertation or to students in a non-thesis program who have only (other than application for degree) to pass the final examination to complete graduation requirements.</desc>
 </row>
</courses>
