School of Computing and Information Sciences

Yi Deng, Professor and Dean
Masoud Milani, Associate Professor and Associate 
	Dean
Walid Akache, Instructor
David Barton, Professor
Toby S. Berk, Professor Emeritus
Rafae A. Bhatti, Assistant Professor
Shu-Ching Chen, Associate Professor
Peter Clarke, Assistant Professor
Timothy Downey, Instructor
Raimund Ege, Associate Professor and Graduate 
	Program Director
Mbola Fanomezantsoa, Instructor
Xudong He, Professor
Vagelis Hristidis, Assistant Professor
Kip Irvine, Instructor
Sam Khalil, Visiting Instructor
Bill Kraynek, Associate Professor
Tao Li, Assistant Professor
Patricia McDermott-Wells, Visiting Instructor
Sylvia Miner, Visiting Instructor
Giri Narasimhan, Professor
Jainendra K. Navlakha, Professor
Ana Pasztor, Professor
Alexander Pelin, Associate Professor
Norman Pestaina, Instructor
Nagarahan Prabakar, Associate Professor
Raju Rangaswami, Assistant Professor
Naphtali Rishe, Professor
S. Masoud Sadjadi, Assistant Professor
Gregory Shaw, Instructor
Geoffrey Smith, Associate Professor
Joslyn Smith, Instructor
Jill Weiss, Instructor
Mark A. Weiss, Professor
Chi Zang, Assistant Professor

The Bachelor of Science program in Computer Science is accredited by the Computing Accreditation Commission (ABET), 111 Market Place, Suite 1050, Baltimore, MD 21202-4012 – Telephone (410) 347-7700.
	The School of Computing and Information Sciences offers both undergraduate and graduate degree programs. The major program and a minor program, are described below.

Bachelor of Science in Computer Science

Degree Program Hours: 120

Lower Division Preparation
To qualify for admission to the program, FIU undergraduates must have met all the lower division requirements, including CLAST, completed 60 semester hours, completed MAD 2104 and COP 2210 with a grade of “C” or higher, and must be otherwise acceptable into the program.
	As part of the 60 semester hours of lower division course work necessary to enter this upper division major, note the following recommendations or course requirements, or both.

Required Courses

Common Prerequisites
COP 2210	Computer Programming I
MAC 2311	Calculus I
MAC 2312	Calculus II
PHY 2048	Physics with Calculus I
PHY 2048L	General Physics Lab I
PHY 2049	Physics with Calculus II
PHY 2049L	General Physics Lab II
Two additional one-semester courses in natural science; each of these should be a course designed for science or engineering majors.  A list of additional approved courses is available through the School of Computing and Information Sciences.

Upper Division Requirements

Two tracks are available in the upper division program.  The Computer Science track should be followed by the student who intends to continue to graduate study in computer science.  The Software Design and Development track may be followed by the student who intends to pursue a software engineering career.

Courses Required for the Degree: (both tracks)

Third and Fourth Years
MAD 2104	Discrete Mathematics			3
COM 3110	Business and Professional 
		Communication				3
ENC 3211	Report and Technical Writing		3
COT 3420	Logic for Computer Science		3
MAD 3512	Introduction to Theory of Algorithms		3
STA 3033	Introduction to Probability and Statistics 
		for CS					3
CGS 3092	Professional Ethics & Social Issues in 		
		Computer Science			1
COP 3337	Computer Programming II			3
COP 4338	Computer Programming III			3
COP 3402	Fundamentals of Computer Systems	3
COP 3530	Data Structures				3
COP 4555	Survey of Programming Languages		3
COP 4540	Database Management			3
CDA 4101	Structured Computer Organization		3
CEN 4010	Software Engineering I			3
COP 4610	Operating Systems Principles		3
CIS 4911	Senior Design				3

Additional required courses for SDD track
CEN 4015	Software Design and Development 
		Project					3
CEN 4021	Software Engineering II			3
	
Computer Science Electives

Students from both tracks must complete two courses form Set 1.  
In addition, CS-track students must complete one course from Set 2.

Set 1.
COP 4009	Windows Components Technology		3
CEN 4023	Component-Based Software Development				3
CIS 4363	Computing and Network Security		3
COP 4225	Advanced Unix Programming		3
COP 4226	Advanced Windows Programming		3
CNT 4513	Data Communications			3
CDA 4400	Computer Hardware Analysis		3
CAP 4710	Principles of Computer Graphics		3
CAP 4770	Introduction to Data Mining		3
*CEN 4021	Software Engineering II			3
Set 2.
MAD 3305	Graph Theory				3
MAD 3401	Numerical Analysis			3
MAD 4203	Introduction to Combinatorics		3
MHF 4302	Mathematical Logic			3
*CS-track students only

NOTE: Graduate courses can also be used to satisfy elective requirements.  Please see advisor adviser for approval.  Graduate courses are subject to graduate fees.

At least 50% of the upper division credits taught by the School must be taken at the University.  All required and elective courses must be completed with a grade of “C” or better.
Remarks: The following courses are not acceptable for credit toward graduation, unless a student has passed the course before declaring a Computer Science major: CGS 2060, CGS 3300, CGS 2100, COP 3175, MAC 2233, STA 1013, STA 2023, STA 2122, STA 3123, QMB 3200, ESI 3161.

Bachelor of Science in Information Technology

The School of Computing and Information Sciences offers a Bachelor of Science degree in Information Technology.  As part of this program students must minor in another discipline.

Degree Requirements
Information Technology BS degree as a first major requires completion of prerequisite courses and 60 credit hours (20 courses) of required and elective courses as outlined below.  At least 50% of the upper division credits taught by the School must be taken at the University.  All courses must be completed with a grade of “C” or better.

Prerequisites:
All students must have completed the following courses (or equivalent) prior to starting the Information Technology program.
CGS 2060	Introduction to Microcomputers		3
	or
CGS 2100	Introduction to Microcomputer 
		Applications for Business			3
COP 2250	Programming in Java			3
MAD 1100	Mathematics Concepts for Information 	
		Technology				3
PSY 2020	Introductory Psychology or equivalent	3
MAC 2147	Pre-calculus Mathematics			3
CGS 3092	Professional Ethics and Social Issues in 
		Computer Science			1

Minor in another Discipline
All students must complete a minor in another discipline (15) credits. Computer Science and Computer Engineering are not accepted as the minor for the other academic discipline.

Courses Required for the Degree:
All students must complete the following courses.
CGS 3260	Microcomputer Organization		3
CGS 3760	Computer Operating Systems		3
CGS 4283	Applied Computer Networking		3
CGS 4825	Web Site Construction and 
		Management				3
CGS 4366	Information Storage and Retrieval		3
COP 3804	Intermediate Java			3	3
ENC 3211	Report & Technical Writing			3
Information Technology Electives:
All students must select two areas of concentration.  Students must take two courses in each of the selected concentration areas (4 courses).  The fifth course might be selected from any available area of concentration.  The following areas of concentration are available:
System Administration
Applied Network Administration
Application Development
Databases

Free Electives
All students must complete 3 additional elective courses (9 credits).

Bachelor of Arts in Information Technology

The School of Computing and Information Sciences offers a Bachelor of Arts degree in Information Technology as a second major or as a second Bachelor Degree.  This program is open to those students who are enrolled in and will be completing another bachelor degree program or those who already have a bachelor degree from an accredited institution.  Computer Science and Computer Engineering are not accepted as the primary major at this time.

Degree Requirements
Information Technology BS BA degree as a second major requires completion of prerequisite courses and 30 credit hours (10 courses) of required and elective courses as outlined below.  At least 50% of the upper division credits taught by the School must be taken at the University.  All courses must be completed with a grade of “C” or better.

Prerequisites:
All students must have completed the following courses (or equivalent) prior to starting the Information Technology program.
CGS 2060	Introduction to Microcomputers		3
	or
CGS 2100	Introduction to Microcomputer 
		Applications for Business			3
COP 2250	Programming in Java			3
CGS 3559	Using the Internet				1
MAD 1100	Mathematics Concepts for Information 	
		Technology				3

Courses Required for the Degree:
All students must complete the following courses (18 credits).
COP 3804	Intermediate Java			3
CGS 3260	Microcomputer Organization		3
CGS 3760	Computer Operating Systems		3
CGS 4283	Applied Computer Networking		3
CGS 4825	Web Site Construction and 
		Management				3
CGS 4366	Information Storage and Retrieval		3

Information Technology Electives:
All students must complete 2 courses (6 credits) from the following list.

CGS 4365	Knowledge-Based Management 
		Systems					3
COP 3344	Introduction to Using Unix/Linux 
		Systems					3
COP 4005	Windows Programming for IT Majors	3
COP 4009	Windows Components Technology		3
CEN 4023	Component-Based Software Development				3
COP 4723	Database Administration			3
COP 4343	Unix System Administration		3

Cognate Electives:
All students must complete 2 additional elective courses (6 credits).  Students who are completing their major concurrent with their IT degree must choose their cognate elective courses from a list of designated courses from the department of their primary major.  Students who have received their first Bachelor Degree prior to enrolling in the IT program must instead choose an additional two courses from the list of IT elective courses.

Minor in Computer Science

Required Courses
COP 2210	Computer Programming I			4
COP 3402	Fundamentals of Computer Systems	3
COP 3337	Computer Programming II			3
Plus two from the following list: COP 3175, COP 4338, COP 3530, COP 3832, COP 4555, CDA 4101, CDA 4400, CNT 4513, CAP 4710, and MAD 3401. Normally the students from Engineering would choose COP 4338, and either COP 3530 or CDA 4101 and students from the College of Business would choose COP 3175 and one other. If one of the other options is selected, then the student should verify that he or she has the additional prerequisites necessary for the chosen course. At least nine of the 15 credits must be taken at FIU.

Course Description

Definition of Prefixes
CAP-Computer Applications; CDA-Computer Design/Architecture; CIS-Computer Information Systems; CGS-Computer General Studies; COC-Computer Concepts; COP-Computer Programming; COT-Computing Theory.

CAP 4710 Principles of Computer Graphics (3). A first course in algorithms/techniques for image generation devices, geometric transformations/matrics, algorithms for hidden surfaces, ray tracing, advanced rendering. Programming with standard graphics interface. Prerequisites: COP 3337 and MAC 2312.  This course will have additional fees.

CAP 4770 Introduction to Data Mining (3). Data mining applications, data preparation, data reduction and various data mining techniques such as association, clustering, classification, anomaly detection. Prerequisite: COP 3530. Corequisite: COP 4540.

CAP 5510C Introduction to Bioinformatics (3). Introduction to bioinformatics; algorithmic, analytical and predictive tools and techniques; programming and visualization tools; machine learning; pattern discovery; analysis of sequence alignments, phylogeny data, gene expression data, and protein structure.  Prerequisites: COP 3530, or equivalent and STA 3033 or equivalent.

CAP 5602 Introduction to Artificial Intelligence (3). Presents the basic concepts of AI and their applications to game playing, problem solving, automated reasoning, natural language processing and expert systems. Prerequisite: COP 3530.  This course will have additional fees.

CAP 5701 Advanced Computer Graphics (3). Advanced topics in computer graphics: system architecture, interactive techniques, image synthesis, current research areas. Prerequisites: COP 3530 and CAP 3710 or equivalent, or by permission.  This course will have additional fees.

CDA 4101 Structured Computer Organization (3). Covers the levels of organization in a computer: Design of memory, buses, ALU, CPU; design of microprogram. Covers virtual memory, I/O, multiple processes, CISC, RISC and parallel architectures. Prerequisites: MAD 2104, COP 3402 and COP 3337.  This course will have additional fees.

CDA 4400 Computer Hardware Analysis (3). The study of hardware functions of a basic computer. Topics include logic elements, arithmetic logic units, control units, memory devices, organization and I/O devices. Prerequisite: CDA 4101.

CEN 2300 Microsoft Windows NT Administration (3). A two-part course covering introduction to Networking and the Windows NT Operating System. This course will cover material that is covered on the Microsoft Certified systems Engineer (MCSE) exam. Prerequisites: CGS 2060, or CGS 2100, or equivalent.  This course will have additional fees.

CEN 4010 Software Engineering I (3). Software Process Model, software analysis and specification, software design, testing. Prerequisite: COP 3530.  This course will have additional fees.

CEN 4015 Software Design and Development Project (3). Students design, implement, document, and test software systems working in faculty supervised project teams and utilizing knowledge obtained in previous courses. Required for Software Design and Development track. Prerequisite: CEN 4010.  This course will have additional fees.

CEN 4021 Software Engineering II (3). Issues underlying the successful development of large scale software projects: Software Architectures; Software Planning and Management; Team Structures; Cost Estimation. Prerequisite: CEN 4010.  This course will have additional fees.

CEN 4023 Component-Based Software Development (3). Concept of software components, component models and web services such as WSDL and SOAP. Prerequisites: COP 4338 or COP 4005 or permission of the instructor.

CEN 5011 Advanced Software Engineering (3). This course deals with the design of large scale computer programs. Included are topics dealing with planning design, implementation, validation, metrics, and the management of such software projects. Prerequisite: CEN 4010.  This course will have additional fees.

CEN 5064 Software Design (3). Study of object-oriented analysis and design of software systems based on the standard design language UML; case studies.  Prerequisite: CEN 5011 – Software Engineering.

CEN 5076 Software Testing (3). Tools and techniques to validate software process artifacts: model validation, software metrics, implementation-based testing, specification-based testing, integration and systems testing.  Prerequisites: CEN 4010 or CEN 5011.

CEN 5120 Expert Systems (3). Introduction to expert systems, knowledge representation techniques and construction of expert systems. A project such as the implementation of an expert system in a high level AI-language is required. Prerequisite: COP 3530 or permission of the instructor.  This course will have additional fees.

CGS 2060 Introduction to Microcomputers (3). A hands-on study of microcomputer software packages for applications such as operating system, word processing, spreadsheets, and database management. For students without a technical background. Not acceptable for credit for Computer Science majors.

CGS 2100 Intro to Microcomputer Applications for Business (3). A hands-on study of spreadsheet and database management package for business students without a technical background. Not acceptable for credit for Computer Science majors.

CGS 2423 C for Engineers (3). A first course in programming geared for engineering and natural science students that describes the syntax and semantics of ANSI C programming language. Includes developing algorithms and writing for problems in engineering and science.

CGS 2518 Computer Data Analysis (3). A hands-on study of how to use a modern spreadsheet program to analyze data, including how to perform queries, summarize data, and solve equations.  For non-technical students.  Not acceptable for CS students.

CGS 3092 Professional Ethics and Social Issues in Computer Science (1). Ethical, legal, social issues and the responsibility of computer professionals. Codes of conduct, risks and reliability, responsibility, liability, privacy, security, free speech issues. Prerequisite: COP 3337.

CGS 3260 Microcomputer Organization (3). A study of the hardware components of modern microcomputers and their organization.  Evaluation and comparison of the various microcomputer systems.  Not acceptable for credit for Computer Science Majors.  Prerequisite: COP 2250.  This course will have additional fees.

CGS 3425 Web-based Programming (3). A programming course in Java with emphasis on web-based applications: Applets; Components; Servlets; Java Beans.  Not acceptable for credit for Computer Science majors.  Prerequisites: COP 2250 and MAD 1100.  This course will have additional fees.

CGS 3559 Using the Internet (1). Internet history and importance. What is available on the Net. Tools such as email, listserves, telnet, ftp, Archie, Veronica, Gopher, netfind, the World Wide Web, Wais, and Mosaic. Nontechnical. Prerequisite: CGS 2060 or equivalent.

CGS 3760 Computer Operating Systems (3). Introduction to fundamental concepts of operating systems and their implementation in UNIX, Windows NT and Windows 95/98.  Not acceptable for credit for Computer Science majors.  Prerequisite: COP 2250.  This course will have additional fees.

CGS 4283 Applied Computer Network (3). Principles of computer network design, operation and management.  Network protocols.  Network configuration.  Network security.  Not acceptable for credit for Computer Science majors.  Prerequisite: CGS 3760.  This course will have additional fees.

CGS 4365 Knowledge-Based Management Systems (3). Introduction to knowledge-based and expert systems.  Knowledge acquisition, knowledge representation, and creation of expert system.  Not acceptable for credit for Computer Science majors.  Prerequisite: CGS 4366.  This course will have additional fees.

CGS 4366 Information Storage and Retrieval Concepts (3). Introduction to information management and retrieval concepts.  The design and implementation of a relational database using a commercial DBMS.  Online information retrieval and manipulation.  Not acceptable for credit for Computer Science majors.  Prerequisite: COP 3804.  This course will have additional fees.

CGS 4825 Website Construction and Management (3). The fundamentals of creating and maintaining a website.  Installation and maintenance of a web-server.  Techniques for building multimedia interactive web-pages.  Not acceptable for credit for Computer Science majors.  Prerequisites: COP 3804 or COP 3337; and CGS 3559.  This course will have additional fees.

CGS 5166 Introduction to Bioinformatics Tools (2). Introduction to bioinformatics; analytical and predictive tools; practical use of tools for sequence alignments, phylogeny, visualizations, patterns discovery, gene expression analysis, and protein structure.  Prerequisite: PCB 6025 or equivalent.

CIS 3900 Independent Study (1-5). Individual conferences, assigned readings, and reports on independent investigations.

CIS 3930 Special Topics (1-5). A course designed to give groups of students an opportunity to pursue special studies not otherwise offered.

CIS 4363 Computing and Network Security (3).  Technical study of issues and solutions for computer and network security and privacy.  The security problem, encryption and decryption, public key encryption, authentication, operating system security, program security.  Prerequisites: CDA 4101 and COP 3337.

CIS 4905 Independent Study (1-20). Individual conferences, assigned readings, and reports on independent investigations.

CIS 4911 Senior Project (3). Students work on faculty supervised projects in teams of up to 5 members to design and implement solutions to problems utilizing knowledge obtained across the sprectum of Computer Science courses. Prerequisite: Permission of the instructor.

CIS 4930 Special Topics (1-3). A course designed to give groups of students an opportunity to pursue special studies not otherwise offered.

CIS 5027 Computer Systems Fundamentals (3). Fundamentals concepts of IT Systems: operating systems, networking, distributed systems, platform technologies, web services and human-computer interaction. Covers design principles, algorithms and implementation techniques. Prerequisite: Graduate standing.

CIS 5346 Storage Systems (3). Introduction to storage systems, storage system components, storage architecture, devices, trends and applications, performance, RAID, MEMS and portable storage, file-systems, OS storage management. Prerequisite: Graduate standing.

CIS 5372 Information Assurance (3). Information assurance algorithms and techniques. Security vulnerabilities. Symmetric and public key encryption. Authentication and Kerberos. Key infrastructure and certificate. Mathematical foundations. Prerequisite: Graduate standing.

CIS 5900 Independent Study (1-10). Individual conferences, assigned readings, and reports on independent investigations.

CIS 5910 Project Research (1-6). Advanced undergraduate or master’s level research for particular projects. Repeatable. Prerequisite: Permission of Department.

CIS 5931 Special Topics (1-3). A course designed to give groups of students an opportunity to pursue special studies not otherwise offered.

CNT 4513 Data Communications (3). Study Computer network models and protocol layers. Topics include: error handling, frames, broadcast networks, channel allocation; network routing algorithms, internetworking, TCP/IP, ATM protocols. Prerequisites: CDA 4101 or (COP 3804 and CGS 4283).

COP 2210 Computer Programming I (4). A first course in computer science that uses a structured programming language to study programming and problem solving on the computer. Includes the design, construction and analysis of programs.  Student participation in a closed instructional lab is required.  This course will have additional fees.

COP 2250 Programming in Java (3). A first course in programming for IT majors.  Syntax and semantics of Java.  Classes and Objects.  Object oriented program development.  Not acceptable for credit for Computer Science majors.  This course will have additional fees.

COP 3175 Programming in Visual Basic (3). An introduction to Visual Basic programming with emphasis on Business Applications. Not acceptable for credit for Computer Science majors. Prerequisites: CGS 2100 or CGS 2060.  This course will have additional fees.

COP 3337 Computer Programming II (3). An intermediate level course in Object Oriented programming.  Topics include primitive types, control structures, strings arrays, objects and classes, data abstraction inheritance polymorphism and an introduction to data structures.  Prerequisites: MAD 2104 Discrete Mathematics and COP 2210 Programming I.  This course will have additional fees.

COP 3344 Introduction to Using Unix/Linux Systems (3). Techniques of Unix/Linux systems. Basic use, file system structure, process system structure, unix tools (regular expressions, grep, find), simple and complex shell scripts, Xwindows.  Not acceptable for credit for Computer Science majors.  Prerequisites: COP 2210 or COP 2250 or equivalent.  This course will have additional fees.

COP 3402 Fundamentals of Computer Systems (3). Overview of computer systems organization. Data representation. Machine and assembly language programming. Prerequisites: COP 2210 or equivalent.  This course will have additional fees.

COP 3465 Data Structures for IT (3). Basic concepts of running time of a program, data structures including lists, stacks, queues, binary search trees, and hash tables, and internal sorting.  Not acceptable for credit for CS majors.  Prerequisite: Programming II (IT).  This course will have additional fees.

COP 3530 Data Structures (3). Basic concepts of data organization, running time of a program, abstract types, data structures including linked lists, nary trees, sets and graphs, internal sorting. Prerequisites: MAD 2104 and COP 3337.  This course will have additional fees.

COP 3804 Intermediate Java Programming (3). A second course in Java programming.  Continues Programming in Java by discussing object-oriented programming in a more detail, with larger programming projects and emphasis on inheritance.  Not acceptable for credit  for CS majors.  Prerequisite: COP 2250.  This course will have additional fees.

COP 3832 Advanced Web Server Communication (3). Maintain a web server on the Internet. Learn HTML, PERL, Javascript. Configure the Apache web server. Write interactive server scripts. Discuss Web security & ASP. Use Java applets and ActiveX controls. Prerequisites: CGS 3559, COP 2210 or equivalents.  This course will have additional fees.

COP 3835 Designing Web Pages (3). Designing basic pages for display on the World Wide Web.  Fundamental design elements and contemporary design tools are discussed.  Prerequisites: CGS 2060 or equivalent.

COP 3949 Cooperative Education in Computer Science (1-3). One semester of full-time work, or equivalent, in an outside organization, limited to students admitted to the CO-OP program. A written report and supervisor evaluation is required of each student. Prerequisites: Calculus II and COP 3337.

COP 4005 Windows Programming for IT Majors (3). Application development techniques in Windows: Visual Basic Classes, Objects, Controls, Forms and Dialogs, Database, Active X and Internet Programming and Enterprise Application Architecture.  Not acceptable for credit for CS Majors.  Prerequisite: COP 3804 or COP 3337.  This course will have additional fees.

COP 4009 Windows Components Technology (3). Component-Based and Distributed Programming Techniques: C#, Common Type System, Windows and Web Forms, Multithreading, Distributed Objects.  Prerequisites: COP 4226 or COP 4005.  This course will have additional fees.

COP 4225 Advanced Unix Programming (3). Unix overview: files and directories, shell programming. Unix tools: sed, grep, and others. Unix internals: file systems, process structure. Using the system call interface. Interprocess communication. Prerequisite: COP 4338. Corequisite: COP 4610.  This course will have additional fees.

COP 4226 Advanced Windows Programming (3). Advanced Windows Programming topics including Object Linking and Embedding (OLE), Open Database Connectivity (ODBC), Memory Management Techniques, Dynamic Link Libraries, Multireaded Programming and Client/Server Applications. Prerequisite: COP 3337.  This course will have additional fees.

COP 4338 Computer Programming III (3). Topics include Object-Oriented programming Concepts and Modern Programming Techniques.  Prerequisite: COP 3530.  This course will have additional fees.

COP 4343 Unix System Administration (3). Techniques of Unix system administration: system configuration and management; user setup, management and accounting; software installation and configuration; network setup, configuration and management.  Prerequisite: COP 3344.

COP 4540 Database Management (3). Logical aspects of databases including Relational, Entity-Relationship, and Object-Oriented data models, database design, SQL, relational algebra, tuple calculus, domain calculus, and physical database organization. Prerequisite: COP 3530.  This course will have additional fees.

COP 4555 Principles of Programming Languages (3). A comparative study of several programming languages and paradigms. Emphasis is given to design, evaluation and implementation. Programs are written in a few of the languages. Prerequisite: COP 3530 Data Structures.  This course will have additional fees.

COP 4610 Operating Systems Principles (3). Operating systems design principles and implementation techniques. Address spaces, system call interface, process/threads, interprocess communication, deadlock, scheduling, memory, virtual memory, I/O, file systems. Prerequisites: CDA 4101 and COP 4338.  This course will have additional fees.

COP 4722 Survey of Database Systems (3). Design and management of enterprise systems; concurrency techniques; distributed, object-oriented, spatial, and multimedia databases; databases integration; datawarehousing and datamining; OLAP; XML interchange.  Prerequisites: COP 4723 Database Administration or COP 4540 Database Management.

COP 4723 Database Administration (3). Client-server architecture; planning, installation, server configuration; user management; performance optimization; backup, restoration; security configuration; replication management; administrative tasks.  Prerequisite: CGS 4366 Information Storage and Retrieval Concepts.

COP 4906 Research Experiences in Computer Science (1-3). Participation in ongoing research in the research centers of the school. Prerequisite: Permission of the instructor.

COP 4949 Cooperative Education in Computer Science (1-3). One semester of full-time work, or equivalent, in an outside organization, limited to students admitted to the CO-OP program. A written report and supervisor evaluation is required of each student. Prerequisites: MAC 2312, STA 3033 and COP 3337.

COP 5577 Principles of Data Mining (3). Introduction to data mining concepts, knowledge representation, inferring rules, statistical modeling, decision trees, association rules, classification rules, clustering, predictive models, and instance-based learning.  Prerequisites: COP 4540 and STA 3033.

COP 5614 Operating Systems (3). Operating systems design principles, algorithms and implementation techniques: process and memory management, disk and I/O systems, communications and security.

COP 5621 Compiler Construction (3). Basic techniques of compilation; scanning; grammars and LL and LR parsing, code generation; symbol table management; optimization. Prerequisites: MAD 3512 and CEN 4010.  This course will have additional fees.

COP 5716 Software and Data Modeling (3). Essential software and data modeling methods and techniques such as UML, XML, and ER. Prerequisite: Graduate standing.

COP 5725 Principles of Database Management Systems (3). Overview of Database Systems, Relational Model, Relational Algebra and Relational Calculus; SQL; Database Applications; Storage and Indexing; Query Evaluation; Transaction Management.  Selected database topics will also be discussed.

COP 5949 Cooperative Education in Computer Science (1-3). One semester of full-time work, or equivalent, in an outside organization, limited to students admitted to the CO-OP program.  A written report and supervision evaluation is required of each student.  Prerequisite: Graduate Standing.

COP 5XXX Introduction to Machine Learning (3). Decision trees, Bayesian learning reinforcement learning as well as theoretical concepts such as inductive bias, the PAC learning, minimum description length principle. Prerequisite: Graduate standing.

COT 3420 Logic for Computer Science (3). An introduction to the logical concepts and computational aspects of propositional and predicate logic, as well as to concepts and techniques underlying logic programming, in particular, the computer language Prolog. Prerequisites: COP 3337, and MAD 2104.  This course will have additional fees.

COT 5407 Introduction to Algorithms (3). Design of efficient data structures and algorithms; analysis of algorithms and asymptotic time complexity; graph, string, and geometric algorithms; NP-completeness.

COT 5420 Theory of Computation I (3). Abstract models of computation; including finite automata, regular expressions, context-free grammars, pushdown automata, Turing machines. Decidability and indecidability of computational problems Prerequisite: MAD 3512.