[ skip to content ]

Old Dominion University

2014-2015 Catalog

Department of Computer Science

http://www.cs.odu.edu

Engineering & Computational Sciences Bldg.
4700 Elkhorn Ave, Suite 3300
Norfolk, VA 23529-0162

Desh Ranjan, Chair
Michele Weigle, Graduate Program Director (MS Program)
Mohammad Zubair, Graduate Program Director (Ph.D. Program)

Programs

The Department of Computer Science offers programs leading to the Master of Science with a major in computer science, an accelerated five year combined B.S.C.S. and M.S. with a major in computer science and the Doctor of Philosophy in computer science. The Department of Computer Science also offers a Master of Science in computer science with a computer information sciences emphasis (jointly with the Information Technology Department in the Strome College of Business).

Computer science traces its foundation to mathematics, logic and engineering. Studies in computer science encompass theory, experimental techniques, and engineering methodology. The computer science curriculum exposes students to aspects of each of these disciplines and fosters an appreciation and understanding of them. Students are exposed to the broad theoretical basis of computer science through lecture and laboratory experience. The Computer Science Department has a unique curricular model that applies computer science education to the real world. In addition, the Computer Science Department offers a set of courses to professionals who need supplementary experience. A graduate of the computer science program will have a broad fundamental knowledge of the field and in-depth knowledge in a particular subject area. To acquire breadth, graduate students in the department are required to take core courses which together with the undergraduate core courses cover major aspects of computers and computation. At the master’s level, the department supports in-depth study in the following areas:

  • bioinformatics,
  • data mining,
  • digital libraries,
  • high performance computing,
  • networking,
  • cybersecurity,
  • software engineering, and
  • computational foundations.

At the Ph.D. level, areas of specialization are limited only by the interests of the available faculty. The department has an excellent state of the art computing facility. Please visit the department’s home page for details: http://www.cs.odu.edu.

Master of Science - Computer Science

Entrance Requirements

Students entering the Master of Science program in computer science should meet the minimum university graduate admission requirements (http://www.odu.edu/admission/graduate). In addition, an applicant must have a strong background in computer science. Students who do not have a sufficient background in computer science may enter the graduate program as provisional students and make up for their deficiencies by taking appropriate courses. Applicants are required to take the GRE aptitude test; for the computer information sciences emphasis area (described below), the GMAT aptitude test may be used. Two letters of recommendation from faculty members of academic institutions are required in addition to all transcripts at the postsecondary level. For students whose native language is not English, either a TOEFL score of 550 (paper-based) and 79 (internet-based) or IELTS score of 6.5 is also required.

Requirements

The departmental requirements for the master’s degree are described below. All these requirements must be satisfied in addition to the University requirements outlined under the Academic Information section of this Catalog.

Core courses

As approved by the GPD from a list of courses such as:

CS 550Database Concepts3
CS 555Introduction to Networks and Communications3
CS 517Computational Methods and Software3
CS 600Algorithms and Data Structures3
CS 665Computer Architecture3

Colloquium

Each student is required to take a one-credit CS 690 (Computer Science Colloquium) and attend at least 10 departmental colloquiums during their MS study.

Course options

Three options are available for candidates for master’s degrees:

  • thesis option,
  • project option, and
  • course-only option.
Thesis Option
Course work24
Thesis research6
Colloquium1
Total Hours31

A minimum of 31 credit hours is required. The candidate is required to write a thesis and make an oral presentation of the results.

Project Option
Course work30
Project work3
Colloquium1
Total Hours34

A minimum of 34 credit hours is required. The candidate is required to prepare a written report on the project and to present it orally.

Course-only Option
Course work33
Colloquium1
Total Hours34

A minimum of 34 credit hours is required. In addition, the candidate is required to appear for an exit examination that requires a comprehensive written report and an oral examination.

Course restrictions 

No more than six credits of the following courses may be counted towards the degree:
Independent Study in Computer Science
Graduate Seminar
Topics in Computer Science
Total Hours0

A maximum of four 500-level courses can be applied to the program.

At least three credits counted toward the computer science degree must be taken at the 700-level from courses other than CS 791 and CS 796.

Time Limit

All requirements for the master’s degree must be completed within six years.

Master of Science - Computer Information Systems Emphasis

Requirements

This area, offered jointly with the Information Systems and Technology Department of the Strome College of Business, is appropriate for students with either a bachelor’s degree in business administration with a major in information systems and a computer science minor or with a bachelor’s degree in computer science with a business administration minor.

Colloquium

Each student is required to take a one-credit CS 690 (Computer Science Colloquium) and attend at least 10 departmental colloquiums during their MS study.

Course options

Same as described above in the M.S. in computer science, with the following conditions:

  • Project option: 15 credits (5 courses) must be CS graduate courses, and 15 credits (5 courses) must be IT graduate courses. 
  • Course-only option: 18 credits (6 courses) must be CS graduate courses, and 15 credits (5 courses) must be IT graduate courses. 

Course restrictions

Same as described above in the M.S. in computer science.

In addition, at least two of the CS graduate courses (6 credits) must be taken at the 600-level or 700-level from courses other than CS 697, CS 791, and CS 796.

Time Limit

All requirements for the master’s degree must be completed within six years.

Accelerated B.S. and M.S. in Computer Science

This program allows for exceptionally successful students to earn both a B.S. and M.S. in Computer Science within five years by allowing them to count up to 12 credits of graduate coursework toward both their bachelor’s and master’s degree in Computer Science. All options available under the MS program are available under this program.

Graduate Certificate Program in Cyber Security (On-line)

This on-line certificate program, which may be completed in one year, is designed to train working professionals (in computer science and related fields) in cyber security. The courses offered under this program may be taken by current students or new students. A student must first apply to the certificate program and be admitted to the program to be eligible to receive the certificate. A student admitted to this program may subsequently apply for MS in CS. If admitted, the courses taken during the certificate program may be considered towards the MS program.

Candidates for the program must at least have a 4-year Bachelor’s degree  from an accredited academic institution. The program requires a student to take four (or 12 credits) of the following courses. Each course has a normal letter grade and a  student is expected to obtain a C or better in each course and maintain a 3.0 GPA. Following are the current offerings. Additional electives may be added in future.

CS 562Cybersecurity Fundamentals3
CS 563Cryptography for Cybersecurity3
CS 564Networked Systems Security3
CS 565Information Assurance3
Total Hours12

Graduate Modeling and Simulation Certificate in Computing and Informatics

This certificate program has a focus on computational science and informatics disciplines. The required coursework includes introductory topics in fundamental theories and approaches in computer modeling and simulation. The elective courses enable students to develop deeper understanding in computer modeling and simulation and/or to make use of their knowledge to disciplines where modeling and simulation play a critical role.

Candidates for the program must have a 4-year Bachelor’s degree from an accredited academic institution. The program requires a student to take four of the following courses. The student is required to take the core course, at most two foundation elective courses, and at least one advanced elective course. Each course has a normal letter grade. The student is expected to obtain a C or better in each course and maintain a 3.0 GPA.

Core Course
MSIM 601Introduction to Modeling and Simulation3
Foundation Elective Courses (select up to 2 from the following):6
Stochastic Modeling
Modeling and Simulation in Computational Biology
Monte Carlo Simulation
Medical Image Computing and Simulation
Communication Networks Simulation and Evaluation
Machine Learning
Introduction to Bioinformatics
Advanced Elective Courses (select at least 1 of the following at 700/800 level):3
Stochastic Modeling
Modeling and Simulation in Computational Biology
Monte Carlo Simulation
Medical Image Computing and Simulation
Communication Networks Simulation and Evaluation
Machine Learning
Introduction to Bioinformatics
High Performance Computing with GPU for Large Scale Simulation
Information Visualization
Application of Graphs in Bioinformatics
Total Hours12

Doctor of Philosophy - Computer Science

Admission

Students entering the Ph.D. program in the Computer Science Department should meet the minimum university graduate admission requirements (http://www.odu.edu/admission/graduate).  Students may be admitted directly to the Ph.D. program with either a bachelor's or a master's degree.  Prior to applying for admission, students are encouraged to visit the department's website and ensure that their research interests match with that of a faculty member.  Students are expected to show proficiency in Problem Solving and Programming, Introduction to Computer Architecture, Advanced Data Structures and Algorithms, Introduction to Theoretical Computer Science, and Operating Systems at an undergraduate level.  Those entering the Ph.D. program with deficiencies in these areas will have to make them up.

Requirements

A candidate for the doctoral degree in computer science must meet all of the following requirements in addition to the university requirements outlined under the Academic Information section in this Catalog:

  1. Pass the Ph.D. qualifying process that consists of breadth oral examination, research ability oral examination, and advanced course requirement.
  2. Complete a minimum of 72 credit hours beyond the bachelor’s degree and 48 credit hours beyond the master’s degree.
  3. Pass the candidacy examination.
  4. Attend at least 10 colloquia as detailed below.
  5. Successfully defend the dissertation.

The above must be completed within eight years after admission to the Ph.D. program. Note that students with a degree in a discipline outside of computer science will be required to take prerequisite undergraduate courses that will not be counted towards the 72 credit hours requirement.

Advisor

Upon admission to the Ph.D. program, a faculty advisor will be assigned to the student for general guidance. The student, however, is expected to find a dissertation advisor by the time he or she completes the qualifying process.

Course Requirements

Students with a master's degree in computer science must complete coursework as specified below:

  1. A minimum of 24 hours of post-master's coursework at 800-level.
  2. Complete the dissertation work of 24 credit hours or more.
  3. A maximum of six hours may be transferred into the Ph.D. program from post-master's coursework done elsewhere.

Students with an undergraduate degree in computer science must complete coursework as specified below:

  1. 12 credit hours of core coursework approved by the GPD from a list of courses such as: CS 550, CS 555, CS 517,  CS 600, and CS 665.
  2. A minimum of 36 hours of coursework at 600-level or above, of which at least 24 credit hours must be at 800-level.
  3. Complete the dissertation work of 24 credit hours or more.

Students with an undergraduate or master's degree in a discipline outside computer science must complete the 72 credit hours of coursework as specified above.  Additionally, these students need to demonstrate proficiency in Problem Solving & Programming, Introduction to Computer Architecture, Advanced Data Structures and Algorithms, Introduction to Theoretical Computer Science and Operating Systems at an undergraduate level.

Research Guidance Committee

A Research Guidance Committee will be formed after the student has passed the breadth oral examination of the PhD qualifying process. The duties of a Research Guidance Committee are:

  1. To advise the student on the course preparation, in particular to help prepare a plan of study.
  2. To help define the research area of the student.
  3. To prepare and administer the candidacy exam.

A Research Guidance Committee is formed according to the following procedure:

  1. The student finds a regular faculty advisor. Note that a regular faculty advisor can be different from the temporary faculty advisor assigned to the student upon admission to the Ph.D. program.
  2. The advisor selects the members of the Research Guidance Committee in cooperation with the student and the Graduate Studies Committee.
  3. The Research Guidance Committee consists of at least three ODU faculty members.  At least two of these must be from the Computer Science Department and one may be from outside of the Computer Science Department. All committee members must be certified for graduate instruction.  The current research interests of the computer science members of the committee should be related to the research goals of the student.
  4. Additional members may be appointed to the committee.
  5. The committee must complete a Ph.D. Guidance Committee Form. This form is submitted to the Graduate Program Director by the Graduate Studies Committee and to the Dean of the College of Sciences for approval.

Candidacy Examination

Upon completing coursework, before becoming heavily involved in dissertation work, and no later than three years after acceptance into the Ph.D. program (preferably during the first 18 months after admission into the program), the student must pass a candidacy examination. This examination is designed to test the student’s knowledge of background material related to the dissertation topic and to determine if the student has identified a significant problem, has a plan of attack, and is ready to proceed with the dissertation research.

At least one week before the scheduled examination time (and preferably two weeks before), the student must provide the examination committee with a dissertation research proposal.  The proposal should contain the following items (not necessarily in this order):

  • a comprehensive literature review on the dissertation topic that should in particular discuss limitations of current approaches and open problems in the topic area
  • a description of the research problem
  • a discussion of how the problem relates to other work in the field
  • a detailed research plan, including proposed tasks and a timeline for completion
  • a list of expected contributions.

During the examination, the student will give a 45-minute presentation of the dissertation proposal to be followed by questions from the committee.  The exam is expected to last no more than 2 hours.

The presentations of the dissertation proposal is open to the public and will be publicized by the GPD at least one week in advance of the exam. Once the presentation has concluded and the audience has asked general questions, the audience will be excused. The examination by the committee will be held in private, but graduate faculty members are welcome to observe the exam.

Dissertation Committee

After the candidacy exam has been passed and dissertation topic approved, the Research Guidance Committee's responsibilities are completed. A new committee, the Dissertation Committee, is formed to supervise the dissertation research.

A Dissertation Committee is formed according to the following procedure:

  1. The faculty advisor selects the members of the Dissertation Committee in cooperation with the student and the Graduate Studies Committee.
  2. The Dissertation Committee consists of at least three ODU faculty members.  At least two of these must be from the Computer Science Department and one must be from outside of the Computer Science Department. All committee members must be certified for graduate instruction.  The current research interests of the computer science members of the committee should be related to the research goals of the student.
  3. Additional members may be appointed to the committee.  Adjuncts (approved for graduate instruction) and non-university members may be added with approval of the GPD.
  4. The committee must complete a Ph.D. Dissertation Committee Form. This form is submitted to the Graduate Program Director by the Graduate Studies Committee and to the Dean of the College of Sciences for approval.
  5. The Associate Vice President for Graduate Studies is an ex-officio member of all Dissertation Committees.

Dissertation

A minimum of 24 credit hours of dissertation work is required. The work must represent an achievement in research and must be a significant contribution in the field. Students are required to publish (or have in the revision process) at least one paper in a refereed journal or refereed conference proceedings based on their dissertation work.

Dissertation Defense

The examination will be oral and the examination committee must have the completed dissertation at least two weeks before the examination date. In addition to the examination, students are required to give a public oral presentation on their dissertation results.

Time Requirement

Ph.D. students should normally be full-time. A full-time student can be expected to satisfy all the Ph.D. requirements in three to four years when entering with an M.S. degree or four to five years with a bachelor’s degree. No student (full-time or part-time) will be allowed to study for the Ph.D. degree beyond eight years from the date of admission into the program.

Colloquium 

Students are expected to actively participate in the colloquium activities of their research area for at least four semesters.

Ph.D. Qualifying Process

Students who have been admitted to study toward the doctoral degree in computer science must complete the qualifying process which may take up to 18 months after a student has been admitted in the Ph.D. program.  The Ph.D. qualifying process consists of three components.

  1. Breadth Oral Examination
  2. Research Ability Oral Examination
  3. Advanced Course Requirement
Breadth Oral Examination

The examination should be passed no later than 12 months after admission into the Ph.D. program (preferably during the first 6 months after admission into the program).  In case a student fails the examination, it is still expected that the student will pass the examination within 12 months of admission.  The examination may be repeated at most once.

The scheduling of this examination will be on-demand.  A student wanting to take the breadth examination will contact the GPD at least six weeks before the suggested date of the examination.  Once a student has requested an examination, a committee of four faculty members will be formed that will be responsible for evaluating the student.

The examination will last for two hours.  On the day of the examination, the student will be given an initial list of questions two hours before the oral examination.  Note that this list will not contain follow-on questions which the committee is free to ask.  Students will be evaluated on their familiarity with core computer science topics.  We have organized these topics under the undergraduate computer science course categories.  The list of courses is given below.  For the most recent syllabi for these courses, please visit: http://www.cs.odu.edu.

  • Problem Solving & Programming (CS 250)
  • Introduction to Computer Architecture (CS 270)
  • Advanced Data Structures and Algorithms (CS 361)
  • Intruction to Theoretical Computer Science (CS 390)
  • Operating Systems (CS 471)
Research Ability Oral Examination

The examination should be passed no later than 18 months after admission into the Ph.D. program (preferably during the first 12 months after admission into the program).  In case a student fails the examination, it is still expected that the student will pass the examination within 18 months of admission.  The examination may be repeated at most once.

The scheduling of this examination will be on-demand.  A student wanting to take the research ability examination will select one of the department approved areas and contact the GPD at least six weeks before the desired date of the examination.  Once a student has requested an examination, the selected area committee members will be responsible for evaluating the student.

A student who has completed a master's thesis and/or has publications accepted in referenced conferences/journals can apply to the GPD for exemption from the research ability examination.  The exemption also requires an endorsement form an ODU CS faculty member who is willing to be the student's Ph.D. advisor.  Please contact the GPD for details. 

The examination will last two hours.  On the day of the examination, the student will be given an initial list of questions two hours before the oral examination.  Not that this list will not contain follow-on questions, which the committee is free to ask.  Students will be evaluated on their understanding of the reading list (list of papers, book chapters, etc.) maintained by each area committee.

Advanced-level Course Requirement

Ph. D. students are expected to take at least four 800-level regular courses.  These four courses should be taught by at least three different faculty members.  Ph.D. students are expected to maintain a minimum grade of B in each of these courses.  If you have any doubt whether a course is a regular 800-level course and will be counted toward this requirement, please check with your GPD.  This requirement should be completed no later than 18 months after admission into the program.  Note that these courses will be counted toward the minimum 800-level credit hour requirement for Ph.D. students.

COMPUTER SCIENCE Courses

CS 510. Professional Workforce Development I. 3 Credits.

Lecture 3 hours; recitation 1 hour; 3 credits. Laboratory work required. Provides students with challenges of business environments in developing a technology based project. Students identify a societal problem, identify solutions, define project solutions, develop project objectives, conduct feasibility analysis, establish organizational group structure to meet project objectives and develop formal specifications. Students make formal technical project presentations and develop web documentation. Students prepare a draft grant proposal.

CS 511. Professional Workforce Development II. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Students write professional and non-technical documents and continue the development of the project defined in CS 410. Written work is reviewed and returned for corrective rewriting. Students will design and develop a project prototype, and demonstrate the prototype to a formal panel along with delivering the formal product specifications and a draft formal grant proposal. (qualifies as a CAP experience) (This is a writing intensive course.).

CS 517. Computational Methods and Software. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Algorithms and software for fundamental problems in scientific computing. Topics: properties of floating point arithmetic, linear systems of equations, matrix factorizations, stability of algorithms, conditioning of problems, least-squares problems, eigenvalue computations, numerical integration and differentiation, nonlinerar equations, iterative solution of linear systems.

CS 518. Web Programming. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Overview of Internet and World Wide Web; web servers and security, HTTP protocol; web application and design; server side scripts and database integration, and programming for the Web.

CS 531. Web Server Design. 3 Credits.

Laboratory work required. Extensive coverage of the hypertext transfer protocol (HTTP), specifications and commentary (IETF RFCs), and implications for servers and clients. Students will develop a web server providing common HTTP functionality and implementing all HTTP (including unsafe and conditional) methods, content negotiation, transfer and content encoding, basic & digest authentication, and server-side execution of programs (i.e., dynamic resources). Frequent in-class demonstrations of progress and protocol conformance will be required. Prerequisites: Familiarity with Internet and network (including socket) programming.

CS 541. App Development for Smart Devices. 3 Credits.

Laboratory work required. Project-oriented coverage of the principles of application design and development for Android platform smart devices. Topics include user interface; input methods; data handling; network techniques; localization and sensing. Students are required to produce a professional-quality mobile application. Prerequisites: Knowledge of Java.

CS 550. Database Concepts. 3 Credits.

Laboratory work required. Three level database architecture. The relational database model and relational algebra. SQL and its use in database procedures and with conventional programming languages. Entity relationship modeling. Functional dependencies and normalization. Transactions, concurrency and recovery. Prerequisites: Familiarity with elementary set theory, propositional logic, and any two programming languages are expected; a course in finite mathematics or discrete structures is recommended.

CS 551. Software Engineering Survey. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Evaluation of software development methodologies. Topics include: software life cycle models, software specification and design methodologies, informal specification techniques, formal specifications, design tools, software analysis, quality assurance, life cycle management, software costing models and complexity.

CS 554. Network Management. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. The administration of computer networks and their interaction with wide area networks: network topologies for local and wide area networks, common protocols and services, management of distributed file services, routing and configuration, security, monitoring and trouble-shooting.

CS 555. Introduction to Networks and Communications. 3 Credits.

Internet and the 5-layered protocol architecture for the Internet, applications built on top of data networks, specifically the Internet, the web, the transport layer, TCP and UDP protocols, the network layer, the data link layer, also some of the technologies for the physical layer. Prerequisites: Familiarity with C++ or Java programming for Unix systems.

CS 556. Database Administration I. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Programming in SQL and PL/SQL and hands-on development of DBA administration skills in the ORACLE database environment. Creating database objects, querying and manipulating, and PL/SQL programming constructs. Setup and administer databases. Create, organize, and manage database files, users, privileges and other resources.

CS 557. Database Administration II. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: A grade of C or better in CS 556. Laboratory work required. Advanced DBA administration skills in the Oracle database environment. Topics in planning and implementing backup and recovery of the database. Performance optimization and tuning of database and applications including memory and disk structures. Configuration and maintenance of clients and servers in a network environment.

CS 558. Unix System Administration. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: experience with UNIX. Laboratory work required. Aspects of administering a SOLARIS/UNIX operating system in a networked environment are covered. Topics covered include installation, file system management, backup procedures, process control, user administration, device management, Network File Systems (NFS), Network Information Systems (NIS), UNIX security, Domain Name Services (DNS), and integration with other operating systems.

CS 560. Computer Graphics. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. An introduction to graphical systems and methods. Topics include basic primitives, windowing, transformations, hardware, interaction devices, 3-D graphics, curved surfaces, solids, and realism techniques such as visible surface, lighting, shadows, and surface detail. Requires project involving OpenGL programming.

CS 562. Cybersecurity Fundamentals. 3 Credits.

The course introduces the basic components and concepts needed for understanding cybersecurity. These include basics and security vulnerabilities of networks, operating systems, databases, and distributed systems. In addition, some fundamentals of security enforcement will be introduced and discussed.

CS 563. Cryptography for Cybersecurity. 3 Credits.

Mathematical foundations including information theory, number theory, factoring, and prime number generation; Cryptographic protocols including basic building blocks and protocols; Cryptographic techniques including key generation and key management, and applications; Cryptographic algorithms--DES, AES, Stream Ciphers, Hash functions, digital signatures, etc. Prerequisite: CS 270.

CS 564. Networked Systems Security. 3 Credits.

Authentication in cyber systems including password-based, address-based, biometrics-based, and SSO systems; Authorization and accounting in cyber systems; Securing wired and wireless networks; Secured applications including secure e-mail services, secure web services, and secure e-commerce applications; Security and privacy in cloud environments.

CS 565. Information Assurance. 3 Credits.

Introduction to information assurance. Metrics, planning and deployment; identity and trust technologies; verification and evaluation, incident response; human factors; regulation, policy languages, and enforcement; legal, ethical, and social implications; privacy and security trade-offs; system survivability; intrusion detection; fault and security management. Prerequisites: CS 562 or familiarity with computer security area.

CS 575. Introduction to Computer Simulation. 3 Credits.

Lecture 3 hours; 3 credits. Efficient implementation methods. Time management. Planning and design of simulation experiments. Statistical issues in simulation. Generation of random numbers and stochastic variates. Programming with graphically- and text-based simulation languages. Verification and validation of simulation models. Distributed simulation. Special topics such as HLA will be discussed.

CS 576. Systems Programming. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. This course is to help students fully understand and utilize the internal workings and capabilities provided by modern computing, networking and programming environments. Topics include: Shell Script Programming, X Windows (Xlib and Motif), UNIX internals (I/O, Processes, Threads, IPC and Signals), Network Programming (UDP/TCP Sockets and Multicasting) and Java Systems Programming (SWING, Multithreading and Networking).

CS 578. Computational Geometry, Methods and Applications. 3 Credits.

The discipline of Computational Geometry is devoted to the study of algorithms which are formulated in terms of spatially embedded arrangements of objects, such as points, lines, surfaces, and solids. This course covers fundamental algorithms including convex hulls, polygon triangulations, point location, Voronoi diagrams, Delaunaytriangulations, binary space partitions, quadtrees, and other topics.

CS 580. Introduction to Artificial Intelligence. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Introduction to concepts, principles, challenges, and research in major areas of AI. Areas of discussion include: natural language and vision processing, machine learning, machine logic and reasoning, robotics, expert and mundane systems.

CS 586. Introduction to Parallel Computing. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. The motivation for and successes of parallel computing. A taxonomy of commercially available parallel computers. Strategies for parallel decompositions. Parallel performance metrics. Parallel algorithms and their relation to corresponding serial algorithms. Numerous examples from scientific computing, mainly in linear algebra and differential equations. Implementations using public-domain network libraries on workstation clusters and computers.

CS 588. Principles of Compiler Construction. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. Theoretical and practical aspects of compiler design and implementation. Topics will include lexical analysis, parsing, translation, code generation, optimization, and error handling.

CS 595. Topics in Computer Science. 1-3 Credits.

Special topics.

CS 597. Independent Study in Computer Science. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor. Independent study under the direction of an instructor.

CS 600. Algorithms and Data Structures. 3 Credits.

Lecture 3 hours; 3 credits. Design of efficient algorithms and the mathematical analysis of their performance. Topics to be covered include: mathematical preliminaries, sorting and order statistics, advanced data structures, linear programming, exploring graphs, parallel algorithms, randomized algorithms, transformation of the domain, and NP-completeness. (offered fall).

CS 635. Parallel Computer Architecture. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: CS 665. This is a first course in parallel architecture, with an emphasis on the description and evaluation of commercially available machines. Topics to be covered include: parallelization and performance metrics, scalability and the "laws" of Amdahl and Gustavson, computational similarity, models of computation, parallelization paradigms, networkcharacteristics and topology, communication calculus and templates, pipelining and parallelism, processor types, memory hierarchy, cache coherence protocols, latency-hiding mechanisms, routing algorithms, and languages and libraries to support parallel architecture.

CS 656. Database Methodology. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: CS 550. Laboratory work required. Analysis, design and implementation of databases and database applications using modern software engineering methods. Database CASE tools. Analysis using process, function, and dataflow analysis in conjunction with entity relationship modeling. Database diagrams and database design. Application suite design and high level design of applications. Refining implementations.

CS 660. 3D Computer Graphics. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: CS 560. Laboratory work required. The mathematical tools needed for the geometrical aspects of 3D computer graphics. Fundamentals: homogeneous coordinates, transformations and perspective. Theory of parametric and implicit curve and surface models: polar forms, Bezier arcs and de Casteljau subdivision, continuity constraints, B-splines, tensor product, and triangular patch surfaces. Representations of solids and conversions among them. Beometric algorithms for graphics problems, with applications to ray tracing, hidden surface elimination, etc.

CS 665. Computer Architecture. 3 Credits.

Lecture 3 hours; 3 credits. A detailed and quantitative study of the architecture of modern uni-processor computers. The major components are: the technology drivers, performance measures, instruction sets (including 80X86, VAX, and a generic RISC which is very similar to the MIPS series), processor implementation, advanced pipelining and superscalar features, cache and memory design, and I/O. The emphasis is on obtaining quantitative measures of performance, describing interactions of the various components, studying trade-offs between the components in commercial processors, and integration into a complete computer system including interaction of the software and hardware. (offered spring).

CS 667. Cooperative Education. 1-3 Credits.

CS 669. Practicum. 1-3 Credits.

CS 690. Colloquium. 1 Credit.

Lecture 1 hour; 1 credit. A one-hour weekly lecture given by faculty from Old Dominion and other institutions.

CS 695. Topics. 1-3 Credits.

CS 697. Independent Study in Computer Science. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor.

CS 698. Master’s Project. 3 Credits.

3 credits. Departmental permission required.

CS 699. Thesis Research. 3 Credits.

3 credits. Departmental permission required.

CS 710. Applied Algorithms. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: CS 600. Laboratory work required. The course will involve solving two or three comprehensive projects anchored in computer science and engineering. Possible topics for projects include: computational issues in network design and analysis; scheduling problems and applications; digital geometry and pattern recognition; image processing and computer vision applications; robotics. The basic thrust is to demonstrate the usefulness and power of algorithm design and analysis in solving real-life problems.

CS 711. Software Validation. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. The most common path to improved confidence in a program is via testing. This course explores divergent and sometimes conflicting approaches to conducting testing and to measuring the resulting confidence. Topics include the theoretical basis for testing, common testing methods, statistical measures of program reliability, and the relationship between correctness and reliability.

CS 712. Stochastic Modeling. 3 Credits.

Stochastic processes are ways of quantifying the dynamic relationship of sequences of random events. This course will expose the participants to standard concepts and methods of stochastic modeling, as well as the rich diversity of applications. Topics include, but not limited to, Markov chains in discrete and continuous time, Poisson processes, renewal theory and branching processes.

CS 713. Modeling and Simulation in Computational Biology. 3 Credits.

This course covers current problems and state of computations in bimolecular modeling, molecular mechanics including force field origin, composition, and evaluation techniques, and simulation techniques including conformational sampling, geometry optimization, molecular dynamics and Brownian dynamics.

CS 714. Monte Carlo Simulation. 3 Credits.

This course serves to illustrate important principles in Monte Carlo simulation methods and to demonstrate their power in applications. The course covers Metropolis-Hastings algorithm, Gibbs sampler, Markov Chain Monte Carlo, acceptance-rejection method, Monte Carlo integration, quasi-Monte Carlo, random walk, and random number generation.

CS 715. Medical Image Computing and Simulation. 3 Credits.

This course combines the theory and practices in medical imaging computing with emphasis on Image Guided Therapy (IGT). Topics include rigid registration, approximation/interpolation, segmentation, no-rigid registration, image-to-mesh conversion, real time parallel computing, software development for medical applications and solution of large sparse linear systems.

CS 716. Communication Networks Simulation and Evaluation. 3 Credits.

This course introduces the foundations and the application of computer network simulations. Topics include the modeling of real-world networks with specific devices and protocols, the identification of key performance parameters, the test of performance and the verification and optimization using comparisons of measured and simulated data.

CS 717. Bioinformatics I – NonCS. 3 Credits.

Lecture, 3 hours; 3 credits. Prerequisite: permission of instructor. This is a bioinformatics course for non-CS majors. It introduces the fundamental topics in bioinformatics: introduction to molecular biology, pair-wise sequence alignment, database search methods such as FASTA and BLAST, multiple sequence alignment, genome scale alignment, protein secondary structure prediction and protein tertiary structure prediction.

CS 722. Machine Learning. 3 Credits.

This course presents both the foundational and the practical aspects of modeling, analyzing, and mining of computerized data sets, including classification, regression, clustering, semi-supervised learning, structured sparsity learning, etc. The course assignments are designed to contain both theoretical and programming components in order to train students to gain hands-on-experience.

CS 723. Introduction to Bioinformatics. 3 Credits.

This course introduces the fundamental knowledge in bioinformatics and the current advances in selected directions. The topics include: fundamental concepts and experimental techniques in molecular biology, computational methods in genomic sequence comparison and analysis, and computational methods in molecular structural modeling.

CS 724. High Performance Computing with GPU for Large Scale Simulation. 3 Credits.

This course introduces parallel programming principles and has emphasis on hands-on programming and deploying high-performance computing applications for different science and engineering disciplines. Topics includes programming on NVIDIA GPU, efficient GPU accelerated implementation of: (a) computation intensive kernels (b) few sample large scale financial and molecular dynamics simulations, and (c) large scale data analytics and mining.

CS 725. Information Visualization. 3 Credits.

This course covers the theory and application of information visualization. Research on graph design, visual perception, cognition, and interaction will be covered. Research and practical techniques for the display of graphs, networks, hierarchies, text, and complex multivariate data will be addressed. Course projects will require the development of interactive web-based visualizations.

CS 726. Application of Graphs in Bioinformatics. 3 Credits.

This course links the fundamental concepts and algorithms of graphs with the actual biological problems. Various biological problems will be selected to discuss the formulation of the graph, the graph algorithms, and the performance analysis.

CS 734. Introduction to Information Retrieval. 3 Credits.

Laboratory work required. Theory and engineering of information retrieval in the context of developing web-based search engines. Topics include issues related to crawling, ranking, query processing, retrieval models, evaluation, clustering, machine learning, and other aspects related to building web search engines. Students will perform a mix of hands-on development and coding, as well as theoretical exploration of the research literature.

CS 744. Performance Evaluation of Computer Systems and Networks. 3 Credits.

Lecture 3 hours; 3 credits. The course will introduce some of the commonly used techniques in the performance evaluation of computing systems. Students will be exposed to a variety of analytical and simulation tools used in this field. The applicability of the techniques will be illustrated through case studies.

CS 751. Introduction to Digital Libraries. 3 Credits.

Lecture 3 hours; 3 credits. Digital Libraries (DLs) are an increasingly popular research area that encompass more than traditional information retrieval or database methods and techniques. The course will cover a brief history of DL development, with emphasis on World Wide Web implementations. Case studies will be performed on various DLs. The class will focus heavily on project work. At the end of the course, students will be prepared to develop, evaluate, or apply digital library technologies in their work environment. Topics include: Repositories; Distributed Searching; Metadata Harvesting; Preservation, Reference Linking and Citation Analysis.

CS 752. Wireless Communications and Mobile Computing. 3 Credits.

Lecture 3 hours; 3 credits. This course looks at fundamental issues in the area of wireless networks and mobile computing. The course material is organized around the following broad themes: Basics of mobile and wireless communications; Cellular communications: Bandwidth allocation and reservation, Location management, Call admission strategies and QoS issues: Mobile IP and Mobile TCP; Mobile Ad-Hoc NETworks (MANET): Routing, Multimedia and QoS support; Sensor networks.

CS 771. Advanced Operating Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course covers principles, design decisions, design techniques, policies, and mechanisms in the design and implementation of general-purpose multiprogramming and distributed operating systems. Topics to be covered include: concurrency, interprocess communication, threads, access control, protection and authentication, multiprocessor operating systems.

CS 772. Network Security: Concepts, Protocols and Programming. 3 Credits.

Lecture 3 hours; 3 credits. This course deals with the basic protocols, techniques and programming issues to secure internet applications and traffic. Topics include: Cryptographic algorithms tools and concepts; Secure Socket Layer (SSL), Transport Layer Security (TLS) and IPSec protocols; Securing Internet Applications: HTTP, SMTP, UDP and multicast; Hands on socket programming using C and Java.

CS 773. Data Mining and Security. 3 Credits.

Introduction to data mining; Algorithms including naive Bayes, Decision Trees and Rules, Association Rules, Linear classification, and Clustering; Cross validation, Lift charts, ROC Curves; SVM, Bayesian networks, K-means clustering; Data transformation; PCA; Ensemble Learning; Application of data mining to security and privacy including authentication, authorization, and intrusion detection; Privacy-preserving data mining. Prerequisite: CS 471 and CS 455 or CS 555.

CS 775. Distributed Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course deals with the design issues in distributed computing systems and will discuss the motivation for building distributed systems, various algorithms and protocols proposed in literature for system operability, and some of the experimental distributed systems that have been built in the last few years. Special attention will be paid to the fault-tolerant and performance aspects of these systems. The project component of this course will enable students to get hands-on experience of implementing some of the distributed algorithms.

CS 778. Networked Multimedia Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course will introduce some of the technical foundations for capturing, transmitting, presentation and storage of continuous multimedia. Students will explore the applications of multimedia and techniques in some areas such as group collaboration and network based education. Topics covered include: Architectures and issues for distributed Multimedia Systems Support for real-time multimedia applications, quality-of-service, synchronization, and presentation of multiple multimedia streams.

CS 779. Design of Network Protocols. 3 Credits.

Lecture 3 hours; 3 credits. Understanding the design, implementation and performance of network protocols using TCP/IP protocol suite as a case study. The students will have hands-on experience on low-level tools and will access and study the source code of these protocols and writing networking software applications. Topics include: socket interface, IPv4 and IPv6, routing, UDP, multicasting and IGMP, TCP specification, implementation and performance.

CS 791. Graduate Seminar. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor.

CS 795. Topics in Computer Science. 1-3 Credits.

Topics in computer science.

CS 796. Topics in Computer Science. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor.

CS 810. Applied Algorithms. 3 Credits.

Lecture 3 hours; 3 credits. Prerequisite: CS 600. Laboratory work required. The course will involve solving two or three comprehensive projects anchored in computer science and engineering. Possible topics for projects include: computational issues in network design and analysis; scheduling problems and applications; digital geometry and pattern recognition; image processing and computer vision applications; robotics. The basic thrust is to demonstrate the usefulness and power of algorithm design and analysis in solving real-life problems.

CS 811. Software Validation. 3 Credits.

Lecture 3 hours; 3 credits. Laboratory work required. The most common path to improved confidence in a program is via testing. This course explores divergent and sometimes conflicting approaches to conducting testing and to measuring the resulting confidence. Topics include the theoretical basis for testing, common testing methods, statistical measures of program reliability, and the relationship between correctness and reliability.

CS 812. Stochastic Modeling. 3 Credits.

Stochastic processes are ways of quantifying the dynamic relationship of sequences of random events. This course will expose the participants to standard concepts and methods of stochastic modeling, as well as the rich diversity of applications. Topics include, but not limited to, Markov chains in discrete and continuous time, Poisson processes, renewal theory and branching processes.

CS 813. Modeling and Simulation in Computational Biology. 3 Credits.

This course covers current problems and state of computations in bimolecular modeling, molecular mechanics including force field origin, composition, and evaluation techniques, and simulation techniques including conformational sampling, geometry optimization, molecular dynamics and Brownian dynamics.

CS 814. Monte Carlo Simulation. 3 Credits.

This course serves to illustrate important principles in Monte Carlo simulation methods and to demonstrate their power in applications. The course covers Metropolis-Hastings algorithm, Gibbs sampler, Markov Chain Monte Carlo, acceptance-rejection method, Monte Carlo integration, quasi-Monte Carlo, random walk, and random number generation.

CS 815. Medical Image Computing and Simulation. 3 Credits.

This course combines the theory and practices in medical imaging computing with emphasis on Image Guided Therapy (IGT). Topics include rigid registration, approximation/interpolation, segmentation, no-rigid registration, image-to-mesh conversion, real time parallel computing, software development for medical applications and solution of large sparse linear systems.

CS 816. Communication Networks Simulation and Evaluation. 3 Credits.

This course introduces the foundations and the application of computer network simulations. Topics include the modeling of real-world networks with specific devices and protocols, the identification of key performance parameters, the test of performance and the verification and optimization using comparisons of measured and simulated data.

CS 822. Machine Learning. 3 Credits.

This course presents both the foundational and the practical aspects of modeling, analyzing, and mining of computerized data sets, including classification, regression, clustering, semi-supervised learning, structured sparsity learning, etc. The course assignments are designed to contain both theoretical and programming components in order to train students to gain hands-on-experience.

CS 823. Introduction to Bioinformatics. 3 Credits.

This course introduces the fundamental knowledge in bioinformatics and the current advances in selected directions. The topics include: fundamental concepts and experimental techniques in molecular biology, computational methods in genomic sequence comparison and analysis, and computational methods in molecular structural modeling.

CS 824. High Performance Computing with GPU for Large Scale Simulation. 3 Credits.

This course introduces parallel programming principles and has emphasis on hands-on programming and deploying high-performance computing applications for different science and engineering disciplines. Topics includes programming on NVIDIA GPU, efficient GPU accelerated implementation of: (a) computation intensive kernels (b) few sample large scale financial and molecular dynamics simulations, and (c) large scale data analytics and mining.

CS 825. Information Visualization. 3 Credits.

This course covers the theory and application of information visualization. Research on graph design, visual perception, cognition, and interaction will be covered. Research and practical techniques for the display of graphs, networks, hierarchies, text, and complex multivariate data will be addressed. Course projects will require the development of interactive web-based visualizations.

CS 826. Application of Graphs in Bioinformatics. 3 Credits.

This course links the fundamental concepts and algorithms of graphs with the actual biological problems. Various biological problems will be selected to discuss the formulation of the graph, the graph algorithms, and the performance analysis.

CS 834. Introduction to Information Retrieval. 3 Credits.

Laboratory work required. Theory and engineering of information retrieval in the context of developing web-based search engines. Topics include issues related to crawling, ranking, query processing, retrieval models, evaluation, clustering, machine learning, and other aspects related to building web search engines. Students will perform a mix of hands-on development and coding, as well as theoretical exploration of the research literature.

CS 844. Performance Evaluation of Computer Systems and Networks. 3 Credits.

Lecture 3 hours; 3 credits. The course will introduce some of the commonly used techniques in the performance evaluation of computing systems. Students will be exposed to a variety of analytical and simulation tools used in this field. The applicability of the techniques will be illustrated through case studies.

CS 851. Introduction to Digital Libraries. 3 Credits.

Lecture 3 hours; 3 credits. Digital Libraries (DLs) are an increasingly popular research area that encompass more than traditional information retrieval or database methods and techniques. The course will cover a brief history of DL development, with emphasis on World Wide Web implementations. Case studies will be performed on various DLs. The class will focus heavily on project work. At the end of the course, students will be prepared to develop, evaluate, or apply digital library technologies in their work environment. Topics include: Repositories; Distributed Searching; Metadata Harvesting; Preservation, Reference Linking and Citation Analysis.

CS 852. Wireless Communications and Mobile Computing. 3 Credits.

Lecture 3 hours; 3 credits. This course looks at fundamental issues in the area of wireless networks and mobile computing. The course material is organized around the following broad themes: Basics of mobile and wireless communications; Cellular communications: Bandwidth allocation and reservation, Location management, Call admission strategies and QoS issues: Mobile IP and Mobile TCP; Mobile Ad-Hoc NETworks (MANET): Routing, Multimedia and QoS support; Sensor networks.

CS 871. Advanced Operating Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course covers principles, design decisions, design techniques, policies, and mechanisms in the design and implementation of general-purpose multiprogramming and distributed operating systems. Topics to be covered include: concurrency, interprocess communication, threads, access control, protection and authentication, multiprocessor operating systems.

CS 872. Network Security: Concepts, Protocols and Programming. 3 Credits.

Lecture 3 hours; 3 credits. This course deals with the basic protocols, techniques and programming issues to secure internet applications and traffic. Topics include: Cryptographic algorithms tools and concepts; Secure Socket Layer (SSL), Transport Layer Security (TLS) and IPSec protocols; Securing Internet Applications: HTTP, SMTP, UDP and multicast; Hands on socket programming using C and Java.

CS 873. Data Mining and Security. 3 Credits.

Introduction to data mining; Algorithms including naive Bayes, Decision Trees and Rules, Association Rules, Linear classification, and Clustering; Cross validation, Lift charts, ROC Curves; SVM, Bayesian networks, K-means clustering; Data transformation; PCA; Ensemble Learning; Application of data mining to security and privacy including authentication, authorization, and intrusion detection; Privacy-preserving data mining. Prerequisite: CS 471 and CS 455 or CS 555.

CS 875. Distributed Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course deals with the design issues in distributed computing systems and will discuss the motivation for building distributed systems, various algorithms and protocols proposed in literature for system operability, and some of the experimental distributed systems that have been built in the last few years. Special attention will be paid to the fault-tolerant and performance aspects of these systems. The project component of this course will enable students to get hands-on experience of implementing some of the distributed algorithms.

CS 878. Networked Multimedia Systems. 3 Credits.

Lecture 3 hours; 3 credits. This course will introduce some of the technical foundations for capturing, transmitting, presentation and storage of continuous multimedia. Students will explore the applications of multimedia and techniques in some areas such as group collaboration and network based education. Topics covered include: Architectures and issues for distributed Multimedia Systems Support for real-time multimedia applications, quality-of-service, synchronization, and presentation of multiple multimedia streams.

CS 879. Design of Network Protocols. 3 Credits.

Lecture 3 hours; 3 credits. Understanding the design, implementation and performance of network protocols using TCP/IP protocol suite as a case study. The students will have hands-on experience on low-level tools and will access and study the source code of these protocols and writing networking software applications. Topics include: socket interface, IPv4 and IPv6, routing, UDP, multicasting and IGMP, TCP specification, implementation and performance.

CS 891. Graduate Seminar. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor.

CS 895. Topics in Computer Science. 1-3 Credits.

Topics in computer science.

CS 896. Topics in Computer Science. 1-3 Credits.

1-3 credits. Prerequisite: permission of the instructor.

CS 899. Doctoral Dissertation. 1-9 Credits.

1-9 credits. Departmental permission required.

CS 999. Computer Science 999. 1 Credit.

1 credit. A one-hour pass/fail registration required of all graduate students to maintain active status during the final semester prior to graduation. After successfully passing the candidacy examination, all doctoral students are required to be registered for at least one graduate credit each term until the degree is complete.