Old Dominion University
A to Z Index  |  Directories


College Of Science


Computer Science


Resources

Undergraduate ==> Program Information Program Info ||
Course Information Course Info || Advising Information Advising Info || Others Other Info  

Department Of Computer Science

Computer Science Course Description: Catalog 2006-08

CS 101D Computers: An Introduction

    Lecture 3 hours; 3 credits
    Laboratory work required
    An introductory course about computers and how they work. Students need no prior experience with computers. Students will receive instruction and hands-on experience with operating system, word processing, electronic spreadsheets, graphic presentation, and other software available in the university computer labs.
CS 102 Introduction to Networks and the Internet

    Lecture 3 hours; Recitation 1 hour; 3 credits
    Laboratory work required
    Introduction to networked computer systems that have access to the Internet with its vast information. Emphasis on a computer network's architecture, the University's network, electronic mail, World Wide Web, WWW browsers, and gaining access to information that resides on computer systems throughout the world. Knowledge of how to effectively use the Internet and the understanding of how and why it works are critical elements.
CS 110 Introduction to Computer Science

    Lecture 1 hour; 1 credit.
    Introduction to the Computer Science Department, College of Sciences, Old Dominion University, and to the profession of Computer Science. This course provides students with a broad introduction to the scientific research efforts of computer science and the applications using those research efforts. Required for incoming Computer Science majors. Available for pass/fail grading only.
CS 126D, Honors, Computers - An Introduction
    Lecture 3 hours; 3 credits.
    Laboratory work required.
    Open only to students in the Honors College - honors version of CS 101D.
CS 147, 148 Introductory Computer Programming I, II
    Lecture 2.5 hours; Laboratory 1.5 hours; 3 credits.
    Corequiresite: MATH 102M or equivalent.
    This two semester sequence covers the same material as CS 150 with additional emphasis in problem solving and computer program development.
CS 149D Elements of Computer Science.
    Lecture 3 hours; Recitation 1 hour; 3 credits
    Prerequisites MATH 102M or equivalent course
    Laboratory work required.
    Topics include basic computer organization, data representation, programming environments, elementary programming, simple networking concepts, the Internet, and related digital technologies. Students develop single programs related to science applications.
CS 150 Problem Solving and Programming I
    Lecture 3 hours; Laboratory 2.5 hours; 4 credits
    Prerequisites: MATH 102M or equivalent.
    Laboratory work required.
    Introduction to computer-based problem solving and programming in C++. Topics include problem solving methodologies, program design, algorithm development, and testing. C++ language concepts include variables, data types and expressions, assignment, control-flow statements, arrays, sorting, functions, pointers, and linked lists.
CS 170 Computer Organization and Architecture I
    Lecture 3 hours; 3 credits
    Prerequisites: MATH 102M or equivalent.
    Fundamentals of architecture and operation of modern computers. Basic computer logic: logic equations; gates; combinatorial logic. Basic computer arithmetic; binary numbers; floating point representation. System hierarchy, overview of a computer; integrated circuit technology. Performance; metrics; choosing benchmarks; Amdahl's law. Instruction Sets and Operations: assembly language; machine language; examples of other instruction sets.
CS 250 Problem Solving and Programming II
    Lecture 3 hours; Laboratory 2.5 hours; 4 credits
    Prerequisites: CS 148 or 150 and MATH 162M or equivalent.
    Laboratory work required.
    Software design issues arising in large problems, and C++ constructs aiding in their solution. Topics include the software life cycle, methods of functional decomposition, design documentation, abstract data types and classes, common data structures, dynamic data structures, and algorithmic patterns, and testing and debugging techniques. The standard library and templates are introduced. Large project required.
CS 252 Introduction to Unix for Programmers
    Lecture 1 hour; 1 credit
    Prerequisites: CS 147, 149, or 150
    Available for pass/fail grading only. An introduction to Unix with emphasis on the skills necessary to be a productive programmer in Unix, Linux, and related environments. Topics include command line shells, files and directories, editing, compiling and common command line utilities.
CS 270 Introduction to Computer Architecture II
    Lecture 3 hours; 3 credits
    Prerequisites: CS 150 and 170
    Fundamentals of the architecture and operation of modern computers. Computer arithmetic; algorithms and hardware. Logical operations. Building an ALU. The cache-Ram interaction. The virtual memory system. The Fetch/Execute cycle. Implementing a set of the ALU, Load/Store and Branch instructions in a single cycle implementation. A multicycle implementation. Basics of microprogramming. Design of the control unit. Pipelining.
CS 295 Topics in Computer Science.
    1-3 credits
    Special topics in computer science which are not part of the current curriculum at the freshman/sophomore level.

CS 300 Computers in Society

    Lecture 3 hours; 3 credits
    Prerequisites: ENGL 110C and COMM 101R, and computer skills required in the student's major.
    Covers changes in the world's society due to continuing implementation of computing technologies. Evaluation of technological expansions in aread of governments, business/industry, education, medicine, transportation, communication, and entertainment. Topics include: intellectual property, software piracy, computer crimes and ethics. Students must research a societal topic and present in written and oral forms.
CS 312 Internet Concepts
    Lecture 3 hours; 3 credits
    Prerequisites: CS 252
    Laboratory work required.
    An in-depth introduction to the Internet and the World Wide Web for CS or similar majors as a basis for more advanced studies in Web programming, Internet tools, and Web document publishing including HTML and Cascading Style Sheets. Internet design and communication protocols including: TCP/IP, FTP, HTTP, SMTP, telnet and the tools that use them. Internet search tools and their design will be studied. Internet issues such as netiquette, copyright, spam, computer viruses, cookies, security, and future of the Internet will be addressed.
CS 330 Object Oriented Programming and Design
    Lecture 3 hours; 3 credits
    Prerequisites: Math 163, CS 252, and either CS 250 or CS 333
    Laboratory work required.
    The techniques and idioms of Object-oriented programming C++ and Java. Methods of object-oriented analysis and design with the Unified Modeling Language. Multi-thread programs and synchronization.
CS 333 Programming and Problem Solving in C++
    Lecture 4 hours; 4 credits
    Prerequisites: CS 150 (or the equivalent course in high level language) and MATH 163
    Corequisites: CS 252 Laboratory work required.
    Topics include C++ syntax and semantics, principles of design and basic software engineering skills. This course satisfies the requirements of both CS 150 and 250. It is intended for the student who has already been introduced to programming, possibly in another language. This web-based course requires considerable maturity and independent responsibility on the part of the student.
CS 334 Computer Architecture Fundamentals
    Lecture 4 hours; 4 credits
    Prerequisites: CS 150 (or an equivalent course in a high level language) and MATH 163
    Topics include: number representation, base conversion, Boolean algebra, combinatorial circuits, arithmetic units, registers, memory, hardwired and microprogrammed control units, architecture of typical microcomputers, and the development of systems from basic components. The performance of competing architectures will be a major concern. This course satisfies the requirements of both CS 170 and 270. This web-based course requires considerable maturity and independent responsibility on the part of the student.
CS 350 Introduction to Software Engineering
    Lecture 3 hours; 3 credits
    Prerequisite: CS 330 or CS 361
    Laboratory work required.
    Topics include: use of a defined software process (such as PSP), software costing methods, software metrics, quality assurance, inspection teams, testing methodologies, formal specifications, schedules and budgets, and configuration management. The course requires each student to participate as a member of a team in a significant team project. Each student will be required to demonstrate proficiency in several software development tools.
CS 355 Principles of Programming Languages
    Lecture 3 hours; 3 credits.
    Prerequisites: CS 250 and 381.
    Laboratory work required.
    Survey of significant features of programming languages. Language types including imperative, functional, logical, and object-oriented are covered. Concepts include type systems, environments, flow control, and parallel programming. Small programs in several languages required.
CS 361 Advanced Data Structures and Algorithms
    Lecture 3 hours; 3 credits.
    Prerequisites: Math 163, CS 252, and either CS 250 or CS 333.
    Laboratory work required.
    Common abstract data types, including vectors, lists, stacks, queues, sets, maps, heaps, and graphs. Standard C++ interfaces for these ADTs. Generic programming via iterators and templates. Choosing data structures and algorithms to implement ADTs after analysis of their time and space requirements.
CS 367 Cooperative Education
    1-3 credits.
    Prerequisite: Approval by the CS Department and Career Management in accordance with the policy for granting credit for Cooperative Education programs.
    Available for pass/fall grading only. Student participation for credit based on the academic relevance of the work experience, criteria, and evaluative procedures as formally determined by the department and Career Management prior to the semester in which the work experience is to take place. Written report required.
CS 368 Computer Science Internship
    3 credits.
    Prerequisites: Approval by the CS Department and Career Management.
    Available for pass/fall grading only. Academic requirements will be established by the department and will vary with the amount of credit desired. Allows students to gain short duration career-related experience. An academic project may be required by the department to enhance the value of the educational experience. Written report required.
CS 381 Introduction to Discrete Structures
    Lecture 3 hours; Recitation 1 hour: 3 credits
    Prerequisites: CS 150 and MATH 163
    Topics include prepositional and predicate logic, rules of inference, methods of proof, set operations, functions, complexity of algorithms, growth of functions, induction, counting, relations, equivalence relations and graphs.
CS 390 Introduction to Theoretical Computer Science
    Lecture 3 hours; 3 credits
    Prerequisites: CS 250, 381
    Elementary study of theoretical aspects of computer science. Topics in formal languages and automata theory are covered including regular languages, regular expressions, finite automata, context-free languages, pushdown automata, grammars, Turing machines, and unsolvable problems.
CS 394 Introduction to ORACLE and PL/SQL Programming.
    Lecture 1.5 hours; 1.5 credits
    Laboratory work required.
    An overview of the ORACLE Database architecture, and an introduction to programming in SQL and PL/SQL. Basics of the ORACLE database architecture. Querying data in ORACLE. Creating the ORACLE database and other database objects. PL/SQL basic programming constructs.
CS 395 Topics in Programming Languages
    1-3 credits
    This course provides instruction in a selected programming language. Prior knowledge of programming is assumed (e.g. C S 150, or equivalent). Introduction to language principles, constructs, syntax, and applications. Includes an informal laboratory with programming assignments. May be repeated for credit in different languages.

CS 410 Professional Workforce Development I

    Lecture 3 hours; Recitation 1 hour: 3 credits
    Prerequisites: CS 300 and 350
    Laboratory work required
    Provide students with challenges of business environment 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 specifications. Students make formal technical project presentations and develop web documentation. Students prepare a draft grant proposal.
CS 411W Professional Workforce Development II
    Lecture 3 hours; 3 credits
    Prerequisite: CS 410
    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.
CS 417 Computational Methods and Software
    Lectures 3 hours; 3 credits
    Prerequisites: CS 250, MATH 316
    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, nonlinear equations, iterative solution of linear systems.
CS 418 Web Programming
    Lectures 3 hours; 3 credits
    Prerequisites: CS 312 and CS 330
    Laboratory work required.
    Overview of internet and world wide web; Web server and security, HTTP protocol; Web page design using JavaScript, dynamic HTML, etc; server side scripts and database integration, Java and PHP programming for the web.
CS 419 Internet Databases
    Lectures 3 hours; 3 credits
    Prerequisites: CS 312 and CS 450
    Laboratory work required.
    Database applications of the Internet. Explore database management systems suitable for implementing database applications over the Web. Database issues: design, human computer interface (HCI) techniques, WWW user survey results, and Web-site evaluation criteria for designing web database applications. Dynamic web page creation, and Semantic Web. Using database tools on the Internet such as Oracle Developer Forms.
CS 450 Database Concepts
    Lectures 3 hours; 3 credits
    Prerequisites: CS 381 and either of CS 330 or CS 361
    Laboratory work required.
    Database Architecture. The relational model and relational algebra. SQL. Embedded SQL and PL/SQL. Entity Relationship Modeling. Functional dependencies and normalization. Network and object-oriented databases. Transactions, concurrency and recovery.
CS 451 Software Engineering Survey
    Lecture 3 hours; 3 credits
    Prerequisites: CS 330 or CS 361
    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 452 Database Software Development Methodology
    Lecture 3 hours; 3 credits
    Prerequisites: CS 450/550
    Laboratory work required.
    Investigate advanced methodologies for the design and development of software in database environments. Focus on component-based architectures, and/or object-oriented paradigms. Applying elements of these methodologies to modern database application environments, such as data marts, data warehousing, and data mining. Projects include constructing multi-tier application software applying these methodologies using a state-of-the-art database platform.
CS 454 Network Management
    Lecture 3 hours; 3 credits
    Prerequisite: CS 270
    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 455 Introduction to Networks and Communications
    Lecture 3 hours; 3 credits
    Prerequisites: CS 270, STAT 330
    Laboratory work required.
    OSI and TCP/IP reference models and protocols. Hardware survey, datalink, network, and transport layers. Broadcast and point-to-point networking techniques, routing, switching, and LAN media access. Internetworking, ATM, Gigabit Ethernet, wireless networks, and network security.
CS 456 Database Administration I
    Lecture 3 hours; 3 credits
    Prerequisites: CS 381 and either CS 330 or CS 361
    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 457 Database Administration II
    Lecture 3 hours; 3 credits
    Prerequisites: CS 456
    Laboratory work required.
    Advanced DBA administration skills in the Oracle database environment. Overview and advanced 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 458 Unix System Administration
    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 460 Computer Graphics
    Lecture 3 hours; 3 credits
    Prerequisites: CS 361
    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.
CS 461 Computer Vision
    Lecture 3 hours; 3 credits
    Prerequisite: CS 361
    Laboratory work required.
    Image formation, extraction of structures and information from images, mathematical methods in computer vision, 2D and 3D reconstruction and visualization, model building from images, edge detection, shape from shading, stereo vision, structure from motion, range finders and range images, feature tracking, object representation and object recognition.
CS 464 Advanced Network Design
    Lecture 3 hours; 3 credits
    Prerequisite: CS 454
    Laboratory work required.
    Wide area network design with emphasis on routing protocols. Topics include TCP and its stack, IP including addressing schemes, RIP, OSPF, BGP, EIGRP, ATM, QOS, MPLS, Frame-Relay, routers, switches and WAN security design.
CS 471 Operating Systems
    Lecture 3 hours; 3 credits
    Prerequisites: CS 270 and CS 361
    Laboratory work required.
    Operating system structures. Multiprogramming and multiprocessing. Process management. Memory management. Storage management, I/O systems, distributed systems. Protection and security. The concepts will be illustrated through example systems such as Unix and Windows.
CS 472 Network and Systems Security
    Lecture 3 hours; 3 credits
    Prerequisite: CS 361
    Basic protocols, techniques and programming issues to secure network and computer systems. Topics include: cryptographic algorithms and concepts (Secret Key Cryptography, Hashes and Message Digests, Public Key and Authentication); Security Standards (Kerberos, Public Key Infrastructure, IPsec, SSL/TLS); Security applications (PEM, S/MIME, PGP, HTTP, Firewalls); Hands-on programming using OpenSSL.
CS 475 Introduction to Computer Simulation
    Lecture 3 hours; 3 credits
    Prerequisites: STAT 330 and either of CS 330 or CS 361
    Laboratory work required.
    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 476 Systems Programming
    Lecture 3 hours; 3 credits
    Prerequisite: CS 330 and CS 361
    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 477 System Programming in Windows Operating Systems
    Lecture 3 hours; 3 credits
    Prerequisite: CS 330 and CS 471
    Laboratory work required.
    Gain a basic understanding of systems programming for the Microsoft Windows® system programming platforms. This course covers the software architecture of current Windows® programming environments. Topics include desktop and network application programming.
CS 480 Introduction to Artificial Intelligence
    Lecture 3 hours; 3 credits
    Prerequisites: CS 361
    Laboratory work required.
    Introduction to concepts, principles, challenges, and research in major areas of technical AI research. Areas of discussion include: natural language and vision processing, machine learning, machine logic and reasoning, expert systems, and robotics.
CS 483 Analysis of Algorithms
    Lecture 3 hours; 3 credits
    Prerequisites: CS 361, MATH 316 or equivalent courses
    Time and space complexity of algorithms, algorithms on graphs, string matching, fast Fourier transforms, evaluating polynomial functions, matrix multiplication, parallel algorithms, NP-complete problems and approximation algorithms.
CS 486 Introduction to Parallel Computing
    Lecture 3 hours; 3 credits
    Prerequisites: MATH 316 ; Knowledge of a high level language
    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 487 Applied Parallel Computing
    Lecture 3 hours; 3 credits
    Prerequisites: CS 270 and either CS 361 or CS 330. (CS 417 or Linear Algebra is recommended)
    Laboratory work required.
    Fundamental concepts of parallel computing: Machine models, architectures, parallel topologies and languages, parallel algorithm design and parallel programming, architecture independent message passing interface (MPI) communication library, and scaled-speedup.
CS 488 Principles of Compiler Construction
    Lecture 3 hours; 3 credits
    Prerequisite: CS 361
    Laboratory work required.
    Course will include theoretical and practical aspects of compiler design and implementation. Topics will include lexical analysis, parsing, translation, code generation, optimization, and error handling.
CS 495 Topics in Computer Science
    1-3 credits.
    Prerequisite: permission of the instructor.
CS 497 Independent Study in Computer Science
    1-3 credits.
    Prerequisite: permission of the instructor.
    Independent study under the direction of an instructor.