Old Dominion University
A to Z Index   |   Directories

College of Sciences


Computer Science


Resources

Department Of Computer Science

Computer Science Course Description: Catalog 2009-2010

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 106 Intermediate Wordprocessing
    Lecture 1 hour; 1 credit
    Intermediate coverage of wordprocessing to produce professional quality papers and reports. Computer-based training and a project-based approach is used to teach students to solve technical problems of organization, formatting and display as they practice and learn the features of word processing.
CS 107 Intermediate Spreadsheets
    Lecture 1 hour; 1 credit
    Intermediate use of application software for creation of spreadsheets, graphs, and macros. Integration with other application software packages is also reviewed.
CS 108 Intermediate Presentation S/W
    Lecture 1 hour; 1 credit
    Intermediate use of application software for creation of professional quality presentation materials. Integration with other software application packages is also reviewed.
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 120G Introduction to Information Literacy and Research
    Lecture 3 hours; Recitation 1 hour; 3 credits.
    Laboratory work required.
    Students will learn to locate, manage, critically evaluate and use information for problem solving, research and decision making. Includes collaborative tools for document development and office productivity tools for presentation. Information security, laws and etiquette related to use and access of information are covered.
CS 121G Introduction to Information Literacy and Research for Scientists
    Lecture 3 hours; Recitation 1 hour; 3 credits.
    Laboratory work required.
    Students will learn to locate, manage, critically evaluate and use information for problem solving, research and decision making. Includes collaborative tools for document development and office productivity tools for presentation. Information security, laws and etiquette related to use and access of information are covered.
CS 126G, Honors, Introduction to Information Literacy and Research
    Lecture 3 hours; Recitation 1 hour; 3 credits.
    Laboratory work required.
    Open only to students in the Honors College . A special honors version of CS 101D.
CS 133 Introduction to Programming in Java

    Lecture 3 hours; Labratory 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. Java language concepts include variables, data types and expressions, assignment, control-flow statements, functions, arrays, and classes. Algorithms covered include sorting, searching, and linked list manipulation.
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, functions, arrays, pointers, structs, and classes.
CS 170 Computer Organization and Architecture I
    Lecture 3 hours; 3 credits
    Prerequisites: MATH 102M and a grade of C or better in CS 150.
    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: MATH 162M and a grade of C or better in CS 148 or 150.
    Corequisite: CS 252
    Laboratory work required.
    Design issues arising in software systems and C++ programming techniques aiding in their solution. Topics include the software life cycle, methods of functional decomposition, design documentation, abstract data types and classes, commone data structures, dynamic data structures, algorithmic patterns, and testing and debugging techniques. Term project required.
CS 252 Introduction to Unix for Programmers
    Lecture 1 hour; 1 credit
    Prerequisites: A grade of C or better in 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: A grade of C or better in 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 300T Computers in Society

    Lecture 3 hours; 3 credits
    Prerequisites: ENGL 110C and completion of oral communication requirement.
    Covers changes in the world's society due to continuing implementation of computing technologies. Evaluation of technological expansions in areas 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. Topics include: historical and current development of the Internet Web document publishing. Internet design, communication, and application protocols and the tools that use them. Internet search tools and their design. Internet issues such as netiquette, copyright, spam, computer viruses, cookies, security, and future of the Internet.
CS 330 Object Oriented Programming and Design
    Lecture 3 hours; 3 credits
    Prerequisites: Math 163, CS 252, and a grade of C or better in 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: a grade of C or better in 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. Laboratory work required.
CS 355 Principles of Programming Languages
    Lecture 3 hours; 3 credits.
    Prerequisites: a grade of C or better in 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 a grade of C or better in 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. (qualifies as a CAP experience).
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. (qualifies as a CAP experience).
CS 381 Introduction to Discrete Structures
    Lecture 3 hours; Recitation 1 hour: 3 credits
    Prerequisites: MATH 163 and a grade of C or better in CS 150
    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: a grade of C or better in CS 250 and CS 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 395 Topics in Programming Languages
    1-3 credits
    Prequistie: permission of the instructor.

CS 410 Professional Workforce Development I

    Lecture 3 hours; Recitation 1 hour: 3 credits
    Prerequisites: a grade of C or better in CS 300 and CS 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. Labatory work required.
CS 411W Professional Workforce Development II
    Lecture 3 hours; 3 credits
    Prerequisite: a grade C or better in CS 410 and CS 330
    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 protoype, 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).
CS 417 Computational Methods and Software
    Lectures 3 hours; 3 credits
    Prerequisites: MATH 316 and a grade of C or better in CS 250
    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: A grade of C or better in CS 312 and CS 330
    Laboratory work required.
    Overview of internet and world wide web; Web server and security, HTTP protocol; web application and design; server side scripts and database integration, and programming for the Web.
CS 450 Database Concepts
    Lectures 3 hours; 3 credits
    Prerequisites: a grade of C or better in 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: a grade of C or better in 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 454 Network Management
    Lecture 3 hours; 3 credits
    Prerequisite: a grade of C or better in 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: STAT 330, and a grade of C or better in CS 270.
    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: a grade of C or better in 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: a grade of C or better in 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: a grade of C or better in 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. Requires project involving OpenGL programming.
CS 462 Cyber Security Fundamentals
    Lecture 3 hours; 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 463 Mathematical Foundations
    Lecture 3 hours; 3 credits
    Information theory, number theory, factoring, and prime numbergeneration; 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.
CS 464 Authentication
    Lecture 3 hours; 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 465 Introduction to Information assurance
    Lecture 3 hours; 3 credits
    Metrics; Planning and Deployment; Incident Response; Regulation, policy languages, and enforcement; Legal, ethical, and social implications; privacy and security trade-offs; System survivability; intrusion detection; fault and security management; IA in the corporate and defense environments.
CS 471 Operating Systems
    Lecture 3 hours; 3 credits
    Prerequisites: a grade of C or better in 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: a grade of C or better in CS 361
    Laboratory work required.
    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 a grade of C or better in 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: a grade of C or better in 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 480 Introduction to Artificial Intelligence
    Lecture 3 hours; 3 credits
    Prerequisites: a grade of C or better in 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 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: a grade of C or better in 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. Group project required.
CS 488 Principles of Compiler Construction
    Lecture 3 hours; 3 credits
    Prerequisite: a grade of C or better in 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.