Computer Science and Software Engineering

Software Engineering

The focus of the software engineering curriculum, which leads to the bachelor of software engineering, is on software design and construction, requirements analysis, security, verification, and validation, as well as software engineering processes and tools appropriate for the development of complex software systems. The degree program prepares students for professional careers and graduate study with a balance of computer science theory and practical application of software engineering methodology. The curriculum is based on a strong core of computing topics and also enriches each student’s general education with a range of courses from science, mathematics, the humanities and the social sciences. Through advanced elective courses, the curriculum allows students to specialize in core areas of computer science and software engineering. Engineering design theory and methodology, as they apply to software systems, form an integral part of the curriculum, beginning with the first course in computing and culminating with a comprehensive senior design project, which gives students the opportunity to work in one or more significant application domains. The curriculum also emphasizes oral and written communication skills, the importance of ethical behavior, and the need for continual, life-long learning. The overall educational objectives of the Software Engineering program are for graduates of the program to attain success in their chosen profession and/or post-undergraduate studies.

The undergraduate Software Engineering program is accredited by the Engineering Accreditation Commission of ABET, http://www.abet.org.

Computer Science

The computer science curriculum, which leads to the bachelor of science in computer science degree, provides an excellent preparation for students seeking careers as software professionals and in computing-related fields, as well for those planning to pursue graduate study. The curriculum builds on a strong foundation in science, mathematics, social sciences, humanities and computer science with advanced course work in theoretical computer science, database systems, and computer networks. Course work ensures that students receive hands-on exposure to a variety of computer systems, tools and techniques. Elective courses allow students to specialize in areas of computer science such as cybersecurity, and artificial intelligence. The curriculum also emphasizes oral and written communication skills, the importance of ethical behavior, and the need for continual, lifelong learning. The overall educational objectives of the Computer Science program are for graduates of the program to attain success in their chosen profession and/or post-undergraduate studies.

The undergraduate Computer Science program is accredited by the Computing Accreditation Commission of ABET, http://www.abet.org.

Computer Science (online)

The Bachelor of Computer Science (CPSC) program prepares students for careers as software professionals and in computing-related fields via an entirely online distance-education-based curriculum.  The curriculum builds on a foundation of science, mathematics, social science, and humanities. It provides basic coursework in computer software development and theoretical foundations of computer science. This is followed by advanced coursework in computer systems, software engineering, and applications development, including web software design, database, and mobile applications development (such as smartphone and tablet software). The curriculum is rounded out by advanced electives in areas such as wireless and mobile networks, parallel computing, computer architecture, and formal languages.

The program can be completed in two ways: (1) as a second bachelor’s degree, requiring only the 60 hours of CPSC content outlined in the curriculum model, or (2) as a first bachelor’s degree, by completing the other requirements outlined in the curriculum model in addition to the CPSC content. These other requirements can be completed either by transfer credit or by completing the relevant Auburn University courses either online (if available) or on-campus.  Courses from the CPSC curriculum cannot be transferred to any other graduate or undergraduate program in the Samuel Ginn College of Engineering. Likewise courses from the on-campus Computer Science and Software Engineering department programs, such as Computer Science (CSCI), Software Engineering (SWEN), and Wireless Engineering, Software Option (WIRS) cannot be given transfer credit in the CPSC program.  Students in the CPSC program do not have to take the pre-engineering required courses.

The CPSC content is delivered online in the form of recorded presentations, multimedia content, websites, programming exercises, quizzes and examinations, online discussions, and any other electronic means the instructor finds appropriate. The courses are offered in eight-week terms, with five terms per year. The start dates of the five terms are roughly: start of fall semester, middle of fall semester, start of spring semester, middle of spring semester, and during summer semester.  Each 8-week course is worth 3 semester credit hours. Thus, taking two courses per 8-week term would correspond in workload to taking four courses on-campus during a regular semester. An 8-week online 3-credit-hour CPSC course will have the same academic work load as an on-campus 3-credit-hour course (roughly twice as many hours per week as a fall or spring semester course). Whereas an on-campus student is expected to complete an average of 3-3.5 hours of academic work per week over the length of a 15 week semester, a student in the CPSC degree program will be expected to complete an average of 6-7 hours of academic work per week over the length of an 8 week semester. Students are expected to watch all recorded content in a timely fashion, interact with the instructor and teaching assistants as needed via electronic means, and complete and submit all assignments electronically. A student must have access to a computer on which they can access the internet to view content, complete programming assignments, download and install needed software, and access remote resources such as virtual machines necessary to complete some programming projects and lab assignments.

Taking two courses per term, the CPSC content can be completed in ten 8-week terms, or two years. The coursework consists of eighteen required courses and two electives.

Computer Sci & Software En Courses

COMP 1000 PERSONAL COMPUTER APPLICATIONS (2) LEC. 2. Introduction to personal computers and software applications, including word processing, spreadsheets, databases, and presentation graphics; generation and retrieval of information with the Internet; integration of data among applications.

COMP 1200 INTRODUCTION TO COMPUTING FOR ENGINEERS AND SCIENTISTS (2) LEC. 2. Computer programming in a high-level language, with emphasis on use of the computer as a tool for engineering or science.

COMP 1201 INTRODUCTION TO COMPUTING LABORATORY (1) LAB. 1. SU. Coreq. COMP 1200. Laboratory activities focused on computer programming in a high-level language.

COMP 1210 FUNDAMENTALS OF COMPUTING I (3) LEC. 2. LAB. 3. Introduction to the fundamental concepts of programming from an object-oriented perspective. Emphasis on good software engineering principles and development of the fundamental programming skills in the context of a language that supports the object-oriented paradigm.

COMP 1AA0 COMPUTER COMPETENCY TEST (0) TST. SU. A comprehensive test of all material covered in COMP 1000 and COMP 1003. Course may be repeated with change in topics.

COMP 2000 NETWORK PROGRAMMING WITH HTML AND JAVA (3) LEC. 3. Pr. COMP 1000 or COMP 1003 or ENGR 1110 or ENGR 1113. Introduction to network programming using HTML and Java to build web pages and web-based applications; presentation graphics; retrieval of information from the Internet; integration of data among applications. Pr., COMP 1000 or higher, or ENGR 1110.

COMP 2210 FUNDAMENTALS OF COMPUTING II (4) LEC. 3. LAB. 3. Pr. COMP 1210 or COMP 1213. Software development in the context of collections (e.g., lists, trees, graphs, hashtables). Communication, teamwork, and a design experience are integral course experience.

COMP 2710 SOFTWARE CONSTRUCTION (3) LEC. 3. Pr. COMP 2210 or COMP 2213. Intensive experience in software construction, to include topics such as testing, debugging, and associated tools; configuration management; low-level file and device I/O; systems and event-driven programming.

COMP 3000 OBJECT-ORIENTED PROGRAMMING FOR ENGINEERS AND SCIENTISTS (3) LEC. 3. Pr., Departmental approval. Fundamentals of object-oriented design and programming principles; data abstraction, identifying objects, problem decomposition, design and implementation of classes. Credit for the major will not be given to CSCI and SWEN, and WIRS majors.

COMP 3220 PRINCIPLES OF PROGRAMMING LANGUAGES (3) LEC. 3. Pr. COMP 2210 or COMP 2213. Study of programming language principles supporting procedural abstraction, data abstraction, storage allocation, and parallel execution; language types and examples; language translations.

COMP 3240 DISCRETE STRUCTURES (3) LEC. 3. Pr. COMP 1210 or COMP 1217 or COMP 1213. Characterization of computer science data structures and algorithms in terms of sets and relations, functions, recurrence relations. Use of propositional and predicate calculus to describe algorithms. Proving correctness and running time bounds for algorithms by induction and structural induction.

COMP 3270 INTRODUCTION TO ALGORITHMS (3) LEC. 3. Pr. (COMP 3240 or COMP 3243) and (COMP 2210 or COMP 2213). Algorithms for standard computational problems and techniques for analyzing their efficiency; designing efficient algorithms and experimentally evaluating their performance.

COMP 3350 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING (3) LEC. 3. Pr. ELEC 2200 or ELEC 2210. Stored Program Computers, hardware and software components; data representation, instruction sets, addressing modes; assembly language programming; linkers, loader, and operating systems.

COMP 3500 INTRODUCTION TO OPERATING SYSTEMS (3) LEC. 3. Pr. (COMP 2710 or COMP 2713) and (COMP 3350 or COMP 3353 or ELEC 2220). Structure and functions of operating systems; processes and process scheduling; synchronization and mutual exclusion; memory management; auxiliary storage management; resource allocation and deadlock; security, privacy, and ethical concerns; design tradeoffs.

COMP 3510 EMBEDDED SYSTEMS DEVELOPMENT (3) LEC. 3. Pr. COMP 2710 and (COMP 3350 or ELEC 2220). Operating system design and analysis for embedded systems: Real-time issues, resource management, scheduling, exception handling, device driver development, kernel development, synchronization, network support.

COMP 3700 SOFTWARE MODELING AND DESIGN (3) LEC. 3. Pr. COMP 2710. Current processes, methods, and tools related to modeling and designing software systems. Communication, teamwork, and a design experience are integral course experiences.

COMP 3710 WIRELESS SOFTWARE ENGINEERING (3) LEC. 3. Pr. COMP 2710. Software engineering for wireless applications: specification, process, testing, and performance evaluation. Design and development of wireless application layer software, including current protocols.

COMP 4200 FORMAL LANGUAGES (3) LEC. 3. Pr. COMP 3240. Fundamentals of formal languages including mathematical models of regular sets, context-free languages and Turing machines; deterministic and non-deterministic models.

COMP 4300 COMPUTER ARCHITECTURE (3) LEC. 3. Pr. COMP 3350 or COMP 3353. Comparison of computer architectures, emphasizing the relationships between system software and hardware. Includes processor control and datapath organization, memory subsystem design, instruction set design, processor simulation, and quantitative analysis of computer performance.

COMP 4320 INTRODUCTION TO COMPUTER NETWORKS (3) LEC. 3. Pr. COMP 2710 and (COMP 3350 or ELEC 2220) or Departmental approval. Fundamentals of computer networks, OSI model, LAN, WAN, packet transmission, interworking, Internet Protocol, WWW and Java technology.

COMP 4710 SENIOR DESIGN PROJECT (3) LEC. 3. Pr. COMP 3700 or COMP 3710 or COMP 3703. Development of requirement definitions, architectural design specification, detailed design specification, testing plan and documentation for the software and/or hardware components of a comprehensive project.

COMP 4730 COMPUTER ETHICS (2) LEC. 2. Pr. PHIL 1020 or PHIL 1023 or PHIL 1027 or PHIL 1110 or PHIL 1113. Application of ethical principles to computing-related topics, including privacy, property rights, autonomy, access, and diversity. Communication and teamwork are integral course experiences.

COMP 4960 SPECIAL PROBLEMS (1-4) IND. Course may be repeated for a maximum of 6 credit hours.

COMP 4970 SPECIAL TOPICS (1-3) LEC. 1-3. Investigation of current topics in computer science and software engineering. Departmental approval Course may be repeated for a maximum of 12 credit hours.

COMP 5000 WEB APPLICATION DEVELOPMENT (3) LEC. 3. Departmental approval. Design and implementation of web sites and associated applications. Emphasis on user interface design and information organization and presentation. Fall, Spring.

COMP 5020 ADVANCED WEB APPLICATION DEVELOPMENT (3) LEC. 3. Pr. COMP 5000. Departmental approval. Design and implementation of interactive web applications in Java as applets and servlets. Use of concepts like security, internationalization, multi-threading and server/client architectures.

COMP 5120 DATABASE SYSTEMS I (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Theoretical and applied issues related to the analysis, design, and implementation of relational database systems.

COMP 5130 DATA MINING (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Advanced concepts, techniques, and applications of data mining with an algorithmic and computational focus, including data visualization, data warehousing, data cube computation, pattern and rule mining, classification, belief networks, clustering, outlier detection, graph matching, and parallel and distributed computation.

COMP 5320 DESIGN AND ANALYSIS OF COMPUTER NETWORKS (3) LEC. 3. Pr. COMP 4320 or COMP 4323. Departmental approval. Computer networks design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.

COMP 5350 DIGITAL FORENSICS (3) LEC. 3. Pr. COMP 2710 or ISMN 3080 or (MNGT 3080 or MNGT 3087) or COMP 2713. Departmental approval. Computer compromise and forensics, with focus on computer crime and ways to uncover, protect, and exploit digital evidence.

COMP 5360 WIRELESS AND MOBILE NETWORKS (3) LEC. 3. Pr. COMP 4320. Departmental approval. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless TCP personal communication systems, and GSM. A

COMP 5370 COMPUTER AND NETWORK SECURITY (3) LEC. 3. Pr. COMP 4320. Fundamentals of computer security. Access Control. Authentication. Digital signatures and watermarks. Modeling and performance assessment. Viruses and worms. Identification of avenues for compromising systems.

COMP 5520 NETWORK AND OPERATING SYSTEM ADMINISTRATION (3) LEC. 3. Pr. COMP 4320. Studies of the installation, configuration and management of traditional, distributed and networked system software. Network integration of different systems. Performance monitoring, safety and security issues together with policies, politics and the laws regarding system software management.

COMP 5530 SECURE CLOUD COMPUTING: PRINCIPLES, PRACTICE, AND APPLICATIONS (3) LEC. 3. Pr. COMP 3220 and COMP 3500. Cloud concepts and issues including architecture, service models, security, and implementation. Hands-on experience in both using, managing, and deploying clouds.

COMP 5600 ARTIFICIAL INTELLIGENCE (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Departmental approval. Introduction to intelligent agents, search knowledge representation and reasoning, machine learning.

COMP 5620 USER INTERFACE DESIGN AND EVALUATION (3) LEC. 3. Pr. COMP 3270 or COMP 3273. Departmental approval. Theory and practice of designing interfaces for interactive systems, usability engineering techniques; implementing and evaluating interfaces.

COMP 5630 MACHINE LEARNING (3) LEC. 3. Pr. COMP 3270. An exploration of current concepts, techniques, and applications in machine learning including abductive learning, case-based learning, deep learning, and reinforcement learning.

COMP 5650 DEEP LEARNING (3) LEC. 3. Pr. COMP 5630. Convolutional neural networks (CNNs); visualizing CNNs; detection CNNs; segmentation CNNs; recurrent neural networks; machine translation; unsupervised learning; and generative adversarial networks.

COMP 5660 EVOLUTIONARY COMPUTING (3) LEC. 3. Pr. (COMP 3270 or COMP 3273) and (STAT 3600 or STAT 3603). This course covers in depth the fundamentals of evolutionary computing and surveys the most popular types of evolutionary algorithms (e.g., genetic programming), a class of stochastic, population-based algorithms inspired by natural evolution theory, genetics, and population dynamics, capable of solving complex optimization and modeling problems. It applies them to solve a series of challenging assignments involving intensive programming, experimentation, statistical analysis, and technical writing.

COMP 5700 SECURE SOFTWARE PROCESS (3) LEC. 3. Pr. COMP 3700 or COMP 3710 or COMP 3703. Process models of the software life cycle as well as methods and tools for software development with a special emphasis on secure software engineering.

COMP 5710 SOFTWARE QUALITY ASSURANCE (3) LEC. 3. Pr. COMP 3700 or COMP 3710 or COMP 3703. Departmental approval. Processes, methods, and tools associated with the production of robust, high-quality software.

COMP 5720 REAL TIME AND EMBEDDED SYSTEMS (3) LEC. 3. Pr. COMP 3500 or COMP 3510. Concepts of real-time and embedded computer systems. Studies of real-time algorithm issues such as timeliness, time-constrained scheduling and communication. Embedded system issues such as limited memory, low power, and high latency communication. Fall, Spring.

COMP 5830 CYBERSECURITY THREATS AND COUNTERMEASURES (3) LEC. 3. LAB. 0, DSL/LEC. 0. Pr. COMP 4320. Analysis of methods used by ethical hackers to identify security threats against networks, systems, and personnel. Examination of tactics, techniques, and procedures employed by threat actors and defensive countermeasures.

COMP 5870 SECURITY INTEGRATION AND APPLICATION (1) LEC/LST. Coreq. COMP 4710. Departmental approval. Exploration of the integration and application of state-of-the-practice cybersecurity topics.

COMP 5970 SPECIAL TOPICS (1-3) LEC. Departmental approval. Investigation of current topics in computer science and software engineering. Course may be repeated for a maximum of 9 credit hours.

COMP 6000 WEB APPLICATION DEVELOPMENT (3) LEC. 3. Departmental approval. Design and implementation of web sites and associated applications. Emphasis on user interface design and information organization and presentation. Fall, Spring.

COMP 6120 DATABASE SYSTEMS I (3) LEC. 3. Departmental approval. Theoretical and applied issues related to the analysis, design, and implementation of relational database systems.

COMP 6130 DATA MINING (3) LEC. 3. Advanced concepts, techniques, and applications of data mining with an algorithmic and computational focus, including data visualization, data warehousing, data cube computation, pattern and rule mining, classification, belief networks, clustering, outlier detection, graph matching, and parallel and distributed computation.

COMP 6320 DESIGN AND ANALYSIS OF COMPUTER NETWORKS (3) LEC. 3. Departmental approval. Computer networks design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.

COMP 6350 DIGITAL FORENSICS (3) LEC. 3. Departmental approval. Computer compromise and forensics, with focus on computer crime and ways to uncover, protect, and exploit digital evidence.

COMP 6360 WIRELESS AND MOBILE NETWORKS (3) LEC. 3. Departmental approval. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless TCP personal communication systems, and GSM.

COMP 6370 COMPUTER AND NETWORK SECURITY (3) LEC. 3. Departmental approval. Fundamentals of computer security. Access Control. Authentication. Digital signatures and watermarks. Modeling and performance assessment. Viruses and worms. Identification of avenues for compromising systems.

COMP 6520 NETWORK AND OPERATING SYSTEM ADMINISTRATION (3) LEC. 3. Departmental approval. Studies of the installation, configuration and management of traditional, distributed and networked system software. Network integration of different systems. Performance monitoring, safety and security issues together with policies, politics and the laws regarding system software management.

COMP 6530 SECURE CLOUD COMPUTING: PRINCIPLES, PRACTICE, AND APPLICATIONS (3) LEC. 3. Cloud concepts and issues including architecture, service models, security, and implementation. Hands-on experience in both using, managing, and deploying clouds.

COMP 6600 ARTIFICIAL INTELLIGENCE (3) LEC. 3. Departmental approval. Introduction to intelligent agents, search knowledge representation and reasoning, machine learning.

COMP 6620 USER INTERFACE DESIGN AND EVALUATION (3) LEC. 3. Departmental approval. Theory and practice of designing interfaces for interactive systems, usability engineering techniques; implementing and evaluating interfaces.

COMP 6630 MACHINE LEARNING (3) LEC. 3. An exploration of current concepts, techniques, and applications in machine learning including abductive learning, case-based learning, deep learning, and reinforcement learning.

COMP 6650 DEEP LEARNING (3) LEC. 3. Pr. COMP 6630. Convolutional neural networks (CNNs); visualizing CNNs; detection CNNs; segmentation CNNs; recurrent neural networks; machine translation; unsupervised learning; and generative adversarial networks.

COMP 6660 EVOLUTIONARY COMPUTING (3) LEC. 3. Departmental approval. This course covers in depth the fundamentals of evolutionary computing and surveys the most popular types of evolutionary algorithms (e.g., genetic programming), a class of stochastic, population-based algorithms inspired by natural evolution theory, genetics, and population dynamics, capable of solving complex optimization and modeling problems. It applies them to solve a series of challenging assignments involving intensive programming, experimentation, statistical analysis, and technical writing.

COMP 6700 SECURE SOFTWARE PROCESS (3) LEC. 3. Pr. COMP 3700. Process models of the software life cycle as well as methods and tools for software development with a special emphasis on secure software engineering.

COMP 6710 SOFTWARE QUALITY ASSURANCE (3) LEC. 3. Departmental approval. Processes, methods, and tools associated with the production of robust, high-quality software.

COMP 6720 REAL TIME AND EMBEDDED SYSTEMS (3) LEC. 3. Departmental approval. Concepts of real-time and embedded computer systems. Studies of real-time algorithm issues such as timeliness, time-constrained scheduling and communication. Embedded system issues such as limited memory, low power, and high latency communication. Fall, Spring.

COMP 6830 CYBERSECURITY THREATS AND COUNTERMEASURES (3) LEC. 3. Pr. COMP 4320. Analysis of methods used by ethical hackers to identify security threats against networks, systems, and personnel. Examination of tactics, techniques, and procedures employed by threat actors and defensive countermeasures.

COMP 6970 SPECIAL TOPICS (1-3) DSL/LEC. Investigation of current topics in computer science and software engineering. Course may be repeated for a maximum of 9 credit hours.

COMP 7120 DATABASE SYSTEMS II (3) LEC. 3. Pr. COMP 6120 or COMP 6126. Departmental approval. Theoretical and applied issues related to the analysis, design, and implementation of object-oriented database systems.

COMP 7270 ADVANCED TOPICS IN ALGORITHMS (3) LEC. 3. Departmental approval. In-depth study of advanced topics in algorithms.

COMP 7300 ADVANCED COMPUTER ARCHITECTURE (3) LEC. 3. Departmental approval. Modern instruction level parallel computer design, including superscalar and very-long instruction word processor design.

COMP 7370 ADVANCED COMPUTER AND NETWORK SECURITY (3) LEC. 3. Pr. COMP 6370 or COMP 6376. Departmental approval. Advanced, research-based examination of computer network attack and defense techniques, viruses and other malware; operating system vulnerabilities and safeguards.

COMP 7500 ADVANCED TOPICS IN OPERATING SYSTEMS (3) LEC. 3. Departmental approval. Advanced topics in operating system concepts, design and implementation.

COMP 7620 HUMAN-COMPUTER INTERACTION (3) LEC. 3. Departmental approval. Coreq. COMP 6620. Theoretical principles and practical aspects of interaction between humans and computers, design and evaluation of interactive systems.

COMP 7700 SOFTWARE ARCHITECTURE (3) LEC. 3. Pr. (COMP 6700 or COMP 6706) and (COMP 6710 or COMP 6716). Departmental approval. Methods and tools related to the analysis, specification and design of software architecture.

COMP 7720 SOFTWARE REVERSE ENGINEERING (3) LEC. 3. Pr. P/C COMP 6370 or COMP 6376. Process, methods and tools associated with software reverse engineering. Course covers static and dynamic analysis techniques applied to analyze malware (i.e., malicious software).

COMP 7800 ARTIFICIAL INTELLIGENCE FOR SECURITY (3) LEC. 3. Exposes students in mixed-discipline teams to applying concepts and techniques in the AI domain to real-world problems of the security domain. In addition to practical experience with both domains, it will also provide students the opportunity to apply a multidisciplinary perspective conveying the “conventional wisdom” and mindsets of both AI and security through project-based learning. This course mimics R&D environments where teams extract requirements from customers, identify the state-of-the-art, design and propose solutions, implement and evaluate those solutions, and culminates in both customer and technical communication of project artifacts.

COMP 7930 DIRECTED STUDY (1-3) IND/RES. Course may be repeated with change in topics.

COMP 7970 SPECIAL TOPICS (1-3) DSL. Course may be repeated with change in topics.

COMP 7980 CAPSTONE ENGINEERING PROJECT (3) LEC. 3. Planning, implementation, and completion of a design project. Project culminates in both a written report and an oral presentation.

COMP 7990 RESEARCH AND THESIS (1-15) DSL. May count either COMP 7990 or COMP 7996. Course may be repeated with change in topics.

COMP 8930 DIRECTED STUDY (1-3) IND. Course may be repeated for a maximum of 6 credit hours.

COMP 8970 SPECIAL TOPICS (1-3) IND. Course may be repeated with change in topics.

COMP 8990 RESEARCH AND DISSERTATION (1-20) DSL/DSR. Course may be repeated with change in topics.

CPSC Courses

CPSC 1210 INTRODUCTION TO COMPUTER SCIENCE I (3) LEC. 45. Admission into Bachelor of Computer Science Program. Introduces the fundamental concepts of object-oriented programming.

CPSC 1220 INTRODUCTION TO COMPUTER SCIENCE II (3) LEC. 45. Pr. CPSC 1213 or CPSC 1210. Admission into Bachelor of Computer Science Program. Continues the development of programming from an object-oriented perspective. Emphasizes sound software engineering principles and best practices.

CPSC 1230 DATA STRUCTURES (3) LEC. 45. Pr. CPSC 1223 or CPSC 1220. Admission into Bachelor of Computer Science Program. Developing programs that use data structures and collections to efficiently store data. Emphasis will be placed on the interplay between effective data structures and efficient algorithms.

CPSC 2010 INTRODUCTION TO COMPUTER SCIENCE I (3) DSL. 45. Admission into Bachelor of Computer Science Program. Introduces the fundamental concepts of object-oriented programming.

CPSC 2710 SOFTWARE CONSTRUCTION FUNDAMENTALS (3) LEC. 45. Pr. CPSC 1233 or CPSC 1230. Admission into Bachelor of Computer Science Program. Development of graphical user interface-based, event-driven desktop/laptop computer application using a modern object-oriented language. Systematic testing, debugging, documentation, and maintenance programming.

CPSC 3220 PROGRAMMING LANGUAGES AND TRANSLATION (3) DSL. Pr. (CPSC 1230 or CPSC 1233) and (CPSC 3300 or CPSC 3303). Admission into Bachelor of Computer Science Program. Fundamental concepts of programming language design, interpretation, and compilation.

CPSC 3240 DISCRETE STRUCTURES (3) LEC. 45. Admission into Bachelor of Computer Science Program. Basics of set theory, propositional and predicate logic as used to describe algorithms, recurrence relations. Proving correctness and estimating running time for algorithms. Mathematical and structural induction.

CPSC 3270 ALGORITHMS I (3) LEC. 45. Pr. CPSC 1233 or CPSC 1230. Admission into Bachelor of Computer Science Program. Introduction to algorithms as tools for computational l problem solving, language of algorithms, understanding algorithms, approximately analyzing correctness and efficiency of algorithms, algorithms that solve fundamental computational problems, basic algorithm design techniques, steps of computational problem solving.

CPSC 3280 ALGORITHMS II (3) LEC. 45. Pr. CPSC 3270 or CPSC 3273. Admission into Bachelor of Computer Science Program. Advanced complexity analysis techniques, notions of computational complexity, polynomial time hierarchy, computability, algorithms that solve advanced computational problems, advanced algorithm design techniques, computational problem solving.

CPSC 3300 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING (3) LEC. 45. Pr. (CPSC 3243 or CPSC 3240) and (CPSC 1213 or CPSC 1210). Admission into Bachelor of Computer Science Program. Stored program computers, hardware and software components, data representations, instruction sets, addressing modes, assembly language programming, loaders, linkers and operating systems.

CPSC 3320 COMPUTER ARCHITECTURE (3) LEC. 45. Pr. CPSC 3333 or CPSC 3330. Admission into Bachelor of Computer Science Program. Design of Computer Systems, emphasizing the relationship between computer hardware and software. Includes processor control and data path organization, memory subsystem design, instruction set design, processor simulation, and quantitative analysis of computer performance.

CPSC 3330 OPERATING SYSTEMS (3) LEC. 45. Pr. (CPSC 1230 or CPSC 1233) and (CPSC 3300 or CPSC 3303). Admission into Bachelor of Computer Science Program. Structure and functions of operating systems; processes and process scheduling; synchronization and mutual exclusion; memory management; auxiliary storage management; resource allocation and deadlock; security, privacy, and ethical concerns; design tradeoffs.

CPSC 3340 PARALLEL SYSTEMS (3) LEC. 45. Pr. CPSC 3333 or CPSC 3330. Admission into Bachelor of Computer Science Program. Overview of hardware and software issues in parallel systems: fundamental parallel architectures, programming languages, tools and algorithms, and parallel applications.

CPSC 3350 COMPUTER NETWORKS I (3) LEC. 45. Pr. CPSC 3330 or CPSC 3333. Admission into Bachelor of Computer Science Program. Fundamentals of computer networks, TCP/IP layered model: application layer, transport layer, network layer, link layer, with examples of each layer, and explanation of design issues. IPv6.

CPSC 3360 COMPUTER NETWORKS II (3) LEC. 45. Pr. CPSC 3353 or CPSC 3350. Admission into Bachelor of Computer Science Program. Computer network design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.

CPSC 3370 WIRELESS AND MOBILE NETWORKS (3) DSL. Pr. CPSC 3353 or CPSC 3350. Admission into Bachelor of Computer Science Program. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless, wireless TCP personal communication systems, and current mobile phone OTA protocols.

CPSC 3700 SOFTWARE ENGINEERING I (3) LEC. 45. Pr. CPSC 2713 or CPSC 2710. Admission into Bachelor of Computer Science Program. Current processes, methods, and tools related to modeling and designing software systems.

CPSC 3710 SOFTWARE ENGINEERING II (3) DSL. Pr. CPSC 3703 or CPSC 3700. Admission into Computer Science Online Program. Current processes, methods, and tools related to modeling and designing software systems.

CPSC 4000 SYSTEM ADMINISTRATION (3) LEC. 45. Pr. CPSC 3330 or CPSC 3333. Admission into Bachelor of Computer Science. Basics of system administration for Windows and Unix machines, including configuration of Performance measurement and enhancement.

CPSC 4200 FORMAL LANGUAGES (3) DSL/LEC. 45. Pr. (CPSC 3273 or CPSC 3270) and (CPSC 3243 or CPSC 3240). Admission into Bachelor of Computer Science Program. Fundamentals of formal languages including mathematical models of regular sets, context-free languages and Turing machines; deterministic and non-deterministic models. Basics of interpretation and compilation.

CPSC 4730 COMPUTER ETHICS (3) LEC. 45. Admission into Bachelor of Computer Science Program. Application of ethical principles to computing-related topics, including privacy, property rights, autonomy, access, and diversity.

CPSC 4970 SPECIAL TOPICS (3) LEC. 3. Investigation of current topics in computer science. Course may be repeated for a maximum of six credit hours. Departmental approval required.

CPSC 5120 DATABASE I (3) LEC. 45. Pr. CPSC 1230 or CPSC 1233. Admission into Bachelor of Computer Science Program. The design and implementation of database applications, with a focus on relational database management systems.

CPSC 5130 DATABASE II (3) LEC. 45. Pr. CPSC 5123 or CPSC 5120. Admission into Bachelor of Computer Science Program. Theory, design, and implementation of database systems.

CPSC 5200 DEVELOPING WEB APPLICATIONS WITH XML (3) LEC. 45. Pr. CPSC 1230 or CPSC 1233. Admission into Bachelor of Computer Science Program. Comprehensive introduction to XML, working with XML and Databases, event-driven programming with XML, implementing Communication and Web Services with XML, working with XML, JQuery, XHTML and HML5.

CPSC 5210 WEB APPLICATION DEVELOPMENT WITH JSP (3) LEC. 40. Pr. CPSC 5203 or CPSC 5200. Admission into Bachelor of Computer Science Program. Advanced course in web development using JSP, includes JCP fundamentals, JAP and web server software development, and applying JSP in the real world.

CPSC 5330 MOBILE APPLICATIONS I (3) LEC. 45. Pr. CPSC 2710 or CPSC 2713. Admission into Computer Science Online Program. Software development for wireless applications: specification, process, testing, and performance evaluation. Design and development of wireless application layer software, including current protocols.

CPSC 5340 MOBILE APPLICATION DEVELOPMENT II (3) LEC. 3. Pr. CPSC 5330 or CPSC 5333. Admission into Bachelor of Computer Science Program. Builds mastery of mobile application development and the skills necessary to stay current in this fast-moving field throughout one’s career by introducing a new programming language and application programmer interface and interface and requiring the student to master them.

Computer Sci & Software Engr.

  • AN, MYOUNG, Associate Research Professor
  • BASKIYAR, SANJEEV, Professor
  • BIAZ, SAAD, Professor
  • CHAPMAN, RICHARD, Associate Professor
  • DOZIER, GERRY, Charles D. McCrary Eminent Chair Professor
  • HEATON, HAYNES, Assistant Professor
  • HENDRIX, T. DEAN, Associate Professor and Associate Chair
  • KARMAKER, SANTU, Assistant Professor
  • KU, WEI-SHINN, Professor
  • KWON, HUGH, Lecturer
  • LI, XUECHAO, Lecturer
  • LIM, ALVIN, Professor
  • LIU, BO, Associate Professor
  • MARGHITU, DANIELA, COMP 1000 Coordinator
  • MULDER, SAMUEL, Associate Research Professor
  • NARAYANAN, N. HARI, John H. and Gail Watson Professor and Chair
  • NGUYEN, ANH, Assistant Professor
  • NGUYEN, TUNG, Assistant Professor
  • QIN, XIAO, Alumni Professor
  • SARDINAS, RODRIGO, Lecturer
  • SEALS, CHERYL, Charles W. Barkley Professor
  • SHAFFER, CHARLES, Lecturer
  • SHAIK, SHEHENAZ, Lecturer
  • SHU, TAO, Associate Professor
  • SPRINGALL, DREW, Assistant Professor
  • TAURITZ, DANIEL, Associate Professor; Interim Director, Auburn Cyber Research Center
  • THOMAS, JAKITA, Philpott-WestPoint Stevens Associate Professor
  • UMPHRESS, DAVID, COLSA Corporation Cyber Security and Information Assurance Professor
  • YAMPOLSKIY, MARK, Associate Professor
  • YILMAZ, LEVENT, Alumni Professor
  • ZHOU, YANG, Assistant Professor