Software Development
A strong programming foundation across multiple languages prepares students for software engineering, application development, and full-stack development roles.
Joan P. Brock School of Mathematics & Natural Sciences
Department Chair: Dr. Margaret Reese
Computer Science is the study of how to design, build, and reason about software and algorithms — skills that apply everywhere from business and medicine to entertainment and manufacturing. The program covers everything from entry-level programming to advanced topics, supported by dedicated computing labs and resources.
Students choose between a B.A., a broad foundation in computer science fundamentals, and a B.S., which adds a stronger science and mathematics foundation along with a required undergraduate research experience. Both options prepare students well for graduate study. Upper-level electives let students specialize in areas like databases, numerical methods, programming language design, or cybersecurity.
The department also offers minors in Computer Science, Data Science, and Cybersecurity for students in other majors who want a technical credential alongside their primary field of study.
A 2.0 GPA and a grade of C- or higher is required for all courses in the Computer Science minor.
Data Science is an emerging field that combines computer science and statistics. The minor in Data Science teaches programming skills, programming languages Java, Python and R, data analytics, models, and visualizations.
Computer Science coursework spans programming fundamentals, data structures, systems, and theory, with upper-level electives in databases, numerical methods, programming languages, and cybersecurity. Relevant Mathematics and Information Systems (ISP) courses required by the degree are listed below alongside core CS coursework.
Computer Concepts and Applications
Topics include basic concepts of computer hardware and software; the development of the computer, networks, and the Internet; programming logic; Web page development with HTML/CSS; application software such as word processing, spreadsheet, database, and presentation software; and social concerns associated with the widespread use of computers. Prerequisite: placement level H, A, B, or C. Students with credit for CS 112 or higher by consent only. Offered every spring.
Introduction to Python Programming
The basic components of Python programming language are studied. Topics include variables and types, expressions, statements, conditions with selection and looping, functions. Concepts and basics on lists, tuples, sets and dictionaries are also presented. Prerequisite: placement level H, A, B, or C. Students with credit for CS 112 or higher by consent only. Offered every fall.
Introduction to Programming with Visual BASIC
An introductory programming course that uses Visual BASIC programming language. Topics include the program development process, structured programming, data types, assignment, selection, looping, subroutines, one-dimensional arrays, files, and random numbers. Prerequisite: placement level H, A, or B, or MATH 104 with a grade of C- or higher, or consent. Students with credit for CS 112 or higher by consent only. Offered every spring.
Computer Programming I
An introduction to computer programming using a modern programming language. Topics include the program development process, structured programming, data types, variables and expressions, input/output, assignment, selection, looping, functions, and arrays. Prerequisite: placement level H, A, or B, or MATH 104 with a grade of B or higher, or consent. CS 107, CS 110 or a high school programming class is strongly recommended. Offered every semester.
Intro to 3D Modeling/Printing
Introduction to 3D modeling and printing. Several software packages are used to create and manipulate 3D models. Topics also include a survey of current applications of 3D printing, the mechanics of basic 3D printing technology, and factors involved in achieving a successful 3D print. Prerequisite: sophomore status or higher, and placement level B or higher or MATH 104 with a grade of C or higher. Offered intermittently.
Foundations of Logic and Proof
Introduction to abstract mathematical thinking and logical reasoning skills needed in upper-level Math/CS courses. Topics include logic, argument, proofs, induction, sets, and abstract functions and relations. Emphasizes mathematical writing. Identical to MATH 205. Prerequisite: MATH 217 with a grade of C- or higher, or CS 212 with a grade of C or higher, or consent. Recommended spring of sophomore year. Offered every spring.
Computer Programming II
A continuation of CS 112. Topics include advanced programming design in static methods (void and value-returning methods), arrays used in methods, classes, array-based lists, selection sort, binary search, object-oriented programming techniques (inheritance, polymorphism, and composition), and recursion. Prerequisite: CS 202 with a grade of C- or higher, CS 112 with a grade of C or higher, or consent. Offered every semester.
Teaching Experience
Qualified students assist computer science instructors in the teaching of CS courses and laboratories assigned in the classroom. May be repeated for credit, but students may apply no more than 4 semester hours towards the major or minor. Prerequisite: a grade of B or higher in CS 212, and consent. Students may repeat this course pending satisfactory performance in previous enrollment(s). Offered every semester.
Data Science Using Python
The advanced Python programming techniques and applications in data science are studied. Topics include control structures, lists, tuples, sets and dictionaries, as well as the popular Python modules in data science including math, statistics, NumPy, and Pandas. Case studies on data analysis, visualization, series and frames are also covered. Prerequisite: A grade of C or higher in MATH 210 and a grade of a B or higher in either CS 107 or CS 212, or consent. Offered fall of even-numbered years.
Introduction to Computer Systems
Introduces the basic concepts of computer organization and assembly language. Specific topics include CPU and memory organization, machine language, addressing techniques, macros, program segmentation and linkage, and assembler construction. Satisfies the oral competency requirement for computer science majors. Prerequisite: CS 212 with a grade of C or higher and consent. Offered fall of odd-numbered years.
Data Structures
An introduction to commonly used computer data structuring techniques. Topics include abstract data types, classes, queues, stacks, linked lists, algorithm analysis, sorting, searching, trees, and graphs. Prerequisite: CS 212 with a grade of C or higher or consent. Offered every fall.
Systems Analysis and Design
Introduces the concepts, principles, and stages of computer-based information systems analysis and design. Topics include the system development environment, project management, system requirements definition, interface and structure design, and system implementation and administration. Prerequisite: CS 212 with a grade of C or higher or consent. Offered intermittently.
Numerical Methods
Examines methods used in solving numerical problems with the aid of a computer. Topics include floating-point arithmetic, interpolation, integration, roots of non-linear equations, ordinary differential equations, and systems of linear equations. Identical to MATH 350. Students enrolled in the pre-engineering program with ODU cannot receive credit for this course and the cross-registered courses MAE 340 or CEE 305. Prerequisites: MATH 172 with a grade of C- or higher and CS 212 with a grade of C- or higher, or consent. Offered spring of even-numbered years.
Programming Languages
Introduces students to the historical development of programming languages and to the decisions involved in the design and implementation of such programming language features as elementary, structured, and user-defined data types, subprograms, sequence control, data control, and storage management. Selected features of several existing languages are examined in the context of these issues. Prerequisite: CS 212 with a grade of C or higher or consent. Offered intermittently.
Advanced Topics in Computer Science
Explores an area of computer science which is not otherwise included in the curriculum. Students may repeat the course for credit as the topic varies. Prerequisite: CS 212 with a grade of C or higher and consent. Offered intermittently.
Database Management Systems Design
Emphasizes the concepts and structures necessary to design and implement database systems using a relational database management system. Various database management system architectures illustrating hierarchical, network, and relational models are discussed. Physical data storage techniques, file security, data integrity, and data normalization are also explored. Prerequisite: CS 212 with a grade of C or higher or consent. Offered intermittently.
Operating Systems
Introduces the principles of operating systems emphasizing intersystem communication. Examines concepts and techniques necessary for understanding and designing these systems. Topics include I/O and interrupt structure, concurrent processes, process scheduling, and memory management and protection. Prerequisite: CS 212 with a grade of C or higher or consent. CS 310 is recommended. Offered intermittently.
Internship in Computer Science
An intensive computer science project conducted in a professional setting. Pass/Fail grading. Prerequisite: junior/senior status, cumulative GPA of at least 2.5, and consent. Offered intermittently.
Research in Computer Science
Offers students the opportunity to conduct original scientific research in an area of interest. Students work closely with one or more members of the natural science faculty to develop and conduct a research project, then present their findings orally during the semester's undergraduate research symposium and as a formal research paper. Students are encouraged to present their findings at a conference. Prerequisites: junior/senior status and a major in Computer Science, prior approval by the project advisor, and consent of the instructor. Students may enroll for 2 or 4 hours in a given semester. May be repeated for a maximum total of 8 semester hours. Identical to BIO 489, CHEM 489, EES 489, and MATH 489. Offered intermittently.
Fundamentals of Information Systems
Introduces students to the fundamental principles and practices of utilizing information systems to help organizations achieve their goals and carry out their missions. While the course serves as the introductory course in the Information Systems Program curriculum, it is a suitable elective for any student interested in the subject. Students should have a working knowledge of Internet use and computer applications such as word processing, spreadsheets, presentation graphics, and e-mail. Offered every semester.
Cybersecurity Basics
An entry-level exploration into the world of cybersecurity, introducing students to critical threats (e.g., malware, phishing), fundamental principles (e.g., authentication, authorization), and foundational technologies (e.g., antivirus, firewalls, and intrusion detection systems), making it ideal for beginners seeking a smooth start into the cybersecurity field. Prerequisite: Math placement level B or higher or MATH 104 with a grade B or higher. Offered every fall.
Unix Operating System
An introduction to Unix operating system covering the Unix file system, Unix shell, and basic utilities used for file management, process monitoring, and text processing. Through practical exercises, students will master file navigation and management, use VI editor, and effectively perform tasks within a Unix environment. Prerequisite: Math placement level B or higher or MATH 104 with a grade B or higher. Offered every spring.
Cybersecurity Essentials and Tools
The course examines the concepts, principles, and applications of cybersecurity in the IT infrastructure and explores the knowledge and skills needed to ensure security of information and information systems within organizations. Prerequisite: CYB 101 with a grade of C- or higher and consent. Offered spring of even-numbered years.
Cyber Networks and Communication
Networks and Cybersecurity is an introductory course that provides students with the foundational knowledge in networking necessary for cybersecurity. The curriculum encompasses a study of network infrastructures, OSI Model layers, Internet Protocol suites, and network security protocols. Aimed at equipping students with the knowledge and competencies essential for further studies and advancement in networks and cybersecurity. Prerequisite: CYB 101 with a grade of C- or consent. Offered fall of odd-numbered years.
Advanced Topics in Cybersecurity
Explores an area of cybersecurity which is not otherwise included in the curriculum. Students may repeat the course for credit as the topic varies. Prerequisite: CYB 101 with a grade of C- or higher and CYB 230 with a grade of C- or higher. May be repeated up to two times for credit as topics change. Offered spring of even-numbered years.
Operating Systems Security and Administration
This course provides and in-depth examination of operating system security. Students will learn about vulnerabilities, file permissions, kernel security, and various security tools. The course combines theoretical concepts with practical exercises for securing local and remote systems. Prerequisite: CYB 101 with a grade of C- or higher and CYB 230 with a grade of C- or higher or consent. CYB 301 is recommended. Offered fall of odd-numbered years.
Ethical Hacking and Penetration Testing
This course delves into ethical hacking and penetration testing, with a focus on vulnerability scanning, system, and web security. Through hands-on activities, students learn to assess system security while following ethical and legal guidelines. The curriculum prepares students for cybersecurity roles by blending theory and practice. Prerequisite: CYB 101 with a grade of C- or higher and CYB 230 with a grade of C- or higher or consent. CYB 320 (Cyber Networks and Communication) is recommended. Offered spring of even-numbered years.
Internship in Cybersecurity
An intensive experience in the cybersecurity field conducted in a professional setting where students engage in real-world tasks, challenges, and projects related to cybersecurity. Prerequisites: junior/senior status, cumulative GPA of at least 2.5, and consent. Offered intermittently.
Research in Cybersecurity
Students conduct original research in cybersecurity, working closely with faculty to develop projects. They present findings orally at the research symposium and in a research paper, with encouragement to present at a conference. Prerequisite: Junior/senior status and consent. Can be taken multiple times. Offered intermittently.
Calculus I
Students learn the basic tools of calculus, why they work, and how to apply them in various contexts. Calculus I develops differential calculus through symbolic, graphical, and numerical approaches. Topics include differentiation of algebraic and transcendental functions, applications in modeling and optimization, the Fundamental Theorem of Calculus, and an introduction to differential equations. Prerequisite: placement level A or MATH 170 (grade C- or higher). Offered every semester.
Calculus II
A continuation of Calculus I. More advanced techniques are studied and used to solve quantitative problems in various contexts. Topics include integration techniques, applications of definite integration, polar coordinates, parametric equations, and sequences and series. Prerequisite: MATH 136 or 171 with a grade of C- or higher or consent. Offered every semester.
Introductory Statistics
Introduces students to learning from data. Topics include the basics of data production, data analysis, probability, Central Limit Theorem, and statistical inference. Statistical software is used for data management, calculation, and visualization. No previous knowledge of statistics is required. Students cannot receive credit for both MATH 210 and PSY 210. Prerequisites: sophomore status or higher, and placement level H, A, or B, or MATH 104 with a grade of C- or higher. Not appropriate for first-year students. Students must have a TI-83 or TI-84 graphing calculator. Offered every semester.
Linear Algebra
The study of vector spaces and linear equations in several variables. Topics include systems of linear equations, vector spaces, linear dependence of vectors, bases, dimension, linear transformations, matrices, determinants, and applications. Prerequisite: MATH 172 with a grade of C- or higher, or consent. Offered every fall.
Statistical Models
A course in applied data analysis. Emphasizes construction of models for authentic data sets. Statistical software is used extensively for analyzing real data sets from various contexts. Topics include parametric and non-parametric tests, simple and multiple regression, and ANOVA. Prerequisites: ENG 105 with a grade of C or higher, MATH 172 with a grade C or higher, and MATH 210 with a grade C or higher, or consent. Offered spring of even-numbered years.
University Physics I
CATALOG DESCRIPTION NOT FOUND IN SOURCE MATERIAL. Required for the B.S. track but no course description for PHYS 221 appears anywhere in this source file. Flagged for Academic Affairs — confirm catalog copy before publishing.
Computer Science students have access to a guaranteed admission engineering pathway through Batten University's partnership agreements. Contact your advisor for current eligibility requirements and application deadlines.
Old Dominion University
Batten College of Engineering & Technology
Guaranteed AdmissionPre-Engineering pathway to MS programs in Aerospace, Biomedical, Civil, Computer, Electrical, Environmental, and Mechanical Engineering, plus Modeling & Simulation.
A strong programming foundation across multiple languages prepares students for software engineering, application development, and full-stack development roles.
Coursework in data structures, statistics, and Python-based data science supports careers in data analysis, machine learning, and business intelligence.
Upper-level cybersecurity coursework and the dedicated minor prepare students for roles in information security, network defense, and ethical hacking.
The B.S. track's required research experience prepares students for graduate study in computer science, data science, and related technical fields.

Assistant Professor of Computer Science
