|
Other Courses |
|
-
CSCI 2500 - Discrete Structures Credit Hours 3 Prerequisite: (C or better in CSCI 1010 or C or better in CSCI 2000) and MATH 1530 Description: An introduction to discrete mathematical concepts and their practical applications to computing. |
|
-
CSCI 3900 - Internship Credit Hours 3 Prerequisite: Permission of department chair Description: Designed to provide academic credit for meaningful computer-related experience gained while working in a business or industry. Satisfactory employer evaluation and detailed written documentation of the work performed is required. |
|
-
CSCI 4100 - Operating Systems and Architecture Credit Hours 3 Prerequisite: CSCI 3400 Description: This course provides an overview of the principles and practical aspects of operating systems. Students will learn how operating systems provide virtualization, concurrency, and persistent storage and apply these concepts in systems programming assignments. |
|
-
CSCI 4230 - Programming Languages Credit Hours 3 Prerequisite: CSCI 3250 Description: This course provides an overview of the principles and practical aspects of programming languages. Students will learn how programming languages are designed and implemented and will complete programming assignments using different languages and programming paradigms. |
|
-
CSCI 4603 - Requirements and Project Management Credit Hours 3 Prerequisite: CSCI 2010 or CSCI 2000 Description: Introduces students to project management for software systems. Requirement concepts include elicitation, functional and non-functional requirements, prototyping, and requirement tracking. Project management topics include project planning, organizing, tracking, scheduling, and risk management. |
|
-
CSCI 4613 - Cryptography Credit Hours 3 Prerequisite: CSCI 2500 and CSCI 4200 Description: This course introduces students to the methods of cryptography and cryptanalysis. Students will learn how to use symmetric and asymmetric cryptographic primitives to ensure confidentiality, data integrity, authentication, and non-repudiation. Weaknesses of and attacks on cryptographic systems will also be discussed. |
|
|
Computer Science |
|
-
CSCI 1000 - Introduction to Computer Applications Credit Hours 3 Description: History of computers and computing; social and ethical issues in computing; networks, communications, and the internet; computer hardware; system software; application software involving web browsers, word processing, spreadsheets, database management systems and presentation software. |
|
-
CSCI 1001 - Introduction to Building Webpages Credit Hours 1 Description: An introductory course in web development for those new to computer science. This course focuses on the fundamentals of building websites and good coding practices. Topics include learning HTML markup language and Cascading Style Sheets (CSS) style sheet language. |
|
-
CSCI 1002 - Introduction to Java Language Basics Credit Hours 1 Description: This is an introduction to coding using the Java programming language. Topics include overview of the Java syntax and structure; the use of integrated development environments for the creation and compilation of Java programs; the processes and methods for writing well-structured, well-documented, and well-performing computer programs to implement common information processing tasks. |
|
-
CSCI 1004 - Introductory Computing Experience Credit Hours 1 -3 Variable Credit Hours 1-3 Description: This is an introduction to computing experience course. Topics will include a selection from one or more popular areas of computing, such as (but not limited to) web development, application development, and video game development. |
|
-
CSCI 1005 - Introduction to Information Technology Credit Hours 3 Description: An introductory course with a focus on computer information technology. Topics include computer hardware and software, operating systems, networking, databases, and ethical issues in computing. An introduction to some programming and programming concepts is included. |
|
-
CSCI 1010 - Introduction to Programming I Credit Hours 3 Corequisite: CSCI 1011 Description: A first course in computer programming. Students will use a high-level object-oriented programming language to design, implement, debug, and test interactive software. |
|
-
CSCI 1011 - Introduction to Programming I Lab Credit Hours 1 Corequisite: CSCI 1010 Description: Laboratory component of Introduction to Programming I. Students will use a high-level object-oriented programming language to design, implement, debug, and test interactive software.
|
|
-
CSCI 1017 - Introduction to Python Programming Credit Hours 3 Description: Introduction to programming with the Python language. Topics include basic input/output, mathematical calculation, graphics, strings, files, functions, decision structures, loop structures, and Booleans. |
|
-
CSCI 1300 - Introduction to Web Development Credit Hours 3 Description: Introduction to web development using HTML, CSS, and JavaScript. Topics include creating page layouts using HTML, using CSS to style pages, responsive web design, JavaScript data types, and manipulating the DOM. |
|
-
CSCI 1899 - Undergraduate Work Experience Credit Hours 1 Prerequisite: Permission of department chair Description: Students will have a computer-related work assignment in a business environment. Students will document their experience according to standards established by the department. Students may repeat the course up to a total of 12 hours credit upon approval of the department chair. |
|
-
CSCI 2000 - Programming for STEM Credit Hours 4 Variable Credit Hours 0 Prerequisite: MATH 1910 and permission of instructor Description: This course is an introduction to computer programming for students in STEM-related disciplines. Course material ranges from introductory topics such as how computers represent numbers to more advanced topics such as object-oriented programming and data structures. |
|
-
CSCI 2010 - Introduction to Programming II Credit Hours 3 Prerequisite: CSCI 1010 /CSCI 1011 with a C or better. Corequisite: CSCI 2011 Description: Continuation of CSCI 1010. Students will learn to use object-oriented design, exception handling, recursive programming, and standard data structures to design, implement, test and debug software.
|
|
-
CSCI 2011 - Introduction to Programming II Lab Credit Hours 1 Prerequisite: CSCI 1010 / 1011 with a grade of “C” or higher Corequisite: CSCI 2010 Description: Laboratory component of Introduction to Programming II. Students will learn to use object-oriented design, exception handling, recursive programming, and standard data structures to design, implement, test and debug software. |
|
-
CSCI 2600 - Computer Ethics Credit Hours 3 Prerequisite: CSCI 1005 or 1010 or 2000 Description: Study and analysis of the social, legal and ethical issues that arise from the presence of computers in society. Problems are posed and solutions discussed from the viewpoint of the computer professional. Topics include computer viruses, spyware, spam, life-critical systems and privacy issues. |
|
-
CSCI 2700 - Data Communications and Networking Credit Hours 3 Prerequisite: CSCI 1005 or CSCI 1010 or CSCI 2000 Description: Fundamental concepts, definitions and theory of telecommunications and networking with practical applications. Special emphasis is on Internet Technology including the study of TCP/IP protocols. Other topics include LAN and WAN management, security and quality of service issues. |
|
-
CSCI 3005 - Object Oriented Programming Credit Hours 3 Prerequisite: CSCI 2000 or 2010 Description: An introduction to object-oriented programming. Topics include classes, encapsulation, inheritance, polymorphism, templates, container classes, object-oriented design, and the use of class libraries. |
|
-
CSCI 3090 - Parallel Programming Credit Hours 3 Prerequisite: ( CSCI 2010 and CSCI 2011 ) or CSCI 2000
Description: This course introduces the fundamentals of parallel programming and computing implemented in the shared and distributed system models. Course covers primarily programming of multithreaded applications using threads and OpenMP; other topics discussed include: implementing parallel algorithms, serial versus parallel algorithm performance, and MPI. |
|
-
CSCI 3250 - Data Structure and Algorithms Credit Hours 3 Prerequisite: CSCI 2000 or 2010 Description: Advanced data structures and their computer implementation. Binary trees, general trees, graphs, sorting algorithms, merging algorithms, hash codes, hash tables, file and memory allocation procedures. |
|
-
CSCI 3300 - Client-Side Web Development Credit Hours 3 Prerequisite: CSCI 1010 with a grade of “C” or higher, or
CSCI 1300 with a grade of “C” or higher, or
CSCI 2000 with a grade of “C” or higher Description: This class introduces students to creating interactive and dynamic web-pages using the three core technologies of the modern web: HTML, CSS, and JavaScript. Topics will include areas such as form validation, DOM manipulation, and single page applications. |
|
-
CSCI 3350 - User Experience Design Credit Hours 3 Prerequisite: CSCI 1010 or CSCI 2000 Description: This course covers user experience design in the form of a combination of design principles, tools, methods, and frameworks, with which students can solve design problems in a principle-centered way. While focusing on the users of computer hardware and software, human-centered design principles are introduced for a chosen application domain, focusing on user experiences, and effective user interface design based on universal design principles and current computing technologies. |
|
-
CSCI 3400 - Computer Organization I Credit Hours 3 Prerequisite: CSCI 2000 or 2010 Description: Basic digital circuits, Boolean algebra and combinatorial logic, data representation and transfer, digital arithmetic, digital storage and accessing, control functions, input/output facilities, system organization and reliability, computer structure and programming at the machine language and assembler language level. |
|
-
CSCI 3410 - Computer Organization II Credit Hours 3 Prerequisite: CSCI 3400 Description: Continuation of 3400. Continued study of micro-processors, advanced logic design, sequential circuits, digital and switching waveforms, encoding of information, number representation and arithmetic, logical operations, computer architecture for very large and very small computer systems, memory systems, and CPU design. |
|
-
CSCI 3500 - Automata Theory and Formal Languages Credit Hours 3 Prerequisite: CSCI 3400 or MATH 3000 ; Description: Introduction to the theory of automata and formal languages. Topics include regular expressions, grammars, deterministic and nondeterministic finite automata, stack-based automata, Turing machines, and undecidable
problems. |
|
-
CSCI 3550 - Introduction to Game Development Credit Hours 3 Prerequisite: CSCI 2000 or 2010 Description: This course introduces state of the art techniques for computer game design and development with an emphasis on the 2D and 3D graphics and interaction through practical, example driven approaches of game development. |
|
-
CSCI 3770 - Windows Server Administration Credit Hours 3 Prerequisite: CSCI 2700 Description: This course covers the fundamental Windows system administration and Windows network administration principles. Topics covered include: directory structures, file management, user management, domains, group policy, networking services provided as part of Windows, including IIS, RRAS, DNS, WINS, and DHCP. |
|
-
CSCI 3870 - Wireless Communication and Networking Credit Hours 3 Prerequisite: CSCI 2700 Description: This course covers data communications as well as voice communications in wireless networks. Topics covered include: wireless standards in data and voice communications, radio frequency technologies, wireless LAN hardware and software, wireless network design, installation and management including security and site surveys. |
|
-
CSCI 4000 - Database-Driven Web Development Credit Hours 3 Dual Listed: CSCI 5060 Prerequisite: CSCI 3300 Description: This course covers the development of web-based data management and information retrieval applications that connect to databases using a server-side programming language. This course also covers the configuration and maintenance of databases and web servers, for the purpose of deploying dynamic web applications. |
|
-
CSCI 4010 - Mobile Software Development I Credit Hours 3 Prerequisite: CSCI 2010 Description: An introduction to application development for small, mobile devices such as cell phones and smart phones. The class will examine topics including user interface design, application portability, web protocols, data storage, and security on platforms such as Android and iOS. All software development will be for the Android platform. |
|
-
CSCI 4018 - Cloud Computing Credit Hours 3 Prerequisite: CSCI 2010 or CSCI 2000 Description: Introduction to cloud computing and developing applications for the cloud. Topics include basic cloud concepts, cloud services and platforms, distributed processing frameworks, and cloud security. |
|
-
CSCI 4020 - Mobile Software Development II Credit Hours 3 Prerequisite: Description: Continuation of CSCI 4010. The class will cover concepts such as custom components in user interfaces, multi-threaded programming, game programming, sound, and simultaneous development of apps for phones, tablets, and other devices. All software development will be for the Android platform. |
|
-
CSCI 4050 - Multimedia Tools and Technique Credit Hours 3 Prerequisite: CSCI 3300 Description: This course provides the student with hands-on experience using current versions of popular multimedia software on the PC. Static and dynamic images are created, manipulated, and integrated into applications. Video conferencing, and streaming audio and video are also examined. Three hours per week. |
|
-
CSCI 4200 - Principles of Information Security Credit Hours 3 Dual Listed: CSCI 5200 Prerequisite: CSCI 2700 Description: This course is an introduction to the technical and management aspects of information security and assurance. The course provides a foundation in understanding issues associated with security in computing including security threats and controls, protection of computer systems and data, use of technology such as firewalls, cryptography, and intrusion detection systems, response to security incidents, laws and ethics relating to information security, and an overview of the development of an Information Security Plan. |
|
-
CSCI 4270 - Algorithm Design and Analysis Credit Hours 3 Prerequisite: CSCI 3250 Description: Algorithm design techniques and computational complexity analysis. Divide-and-conquer, dynamic programming, greedy approach, backtracking, branch-and-bound, complexity theory, P and NP problems. |
|
-
CSCI 4350 - Compiler Design Credit Hours 3 Prerequisite: CSCI 3250 Description: Review of program language structures, translation, loading execution, and storage allocation. Compilation of simple expressions and statements. Organization of a compiler including compile-time and run-time tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization techniques, and overall design. A simple compiler is designed and implemented as a group project. |
|
-
CSCI 4400 - Principles of Database Management Credit Hours 3 Prerequisite: CSCI 2000 or 2010 or 3300 Description: Database development process, data structures and database methods of file storage, primitive databases, Relational model approach to database management, hierarchy, network and object oriented models, data security, discussion of sample databases such as DBASE, RDB, and SQL. |
|
-
CSCI 4405 - Database Administration Credit Hours 3 Prerequisite: CSCI 4400 Description: This course covers the fundamentals of database administration concepts, procedures, and practices. |
|
-
CSCI 4450 - Artificial Intelligence Credit Hours 3 Prerequisite: CSCI 3250 Description: Progress and procedures in the field of artificial intelligence. Natural language models, machine translation, simulation of belief systems, models of memory and cognition, games and game playing, winning strategies, robotics. |
|
-
CSCI 4460 - Content Management Systems Credit Hours 3 Prerequisite: CSCI 3300 and CSCI 4000 Description: This course introduces the concept of data and content management to the students. Students are to install, setup, configure, and use a content management system to create full-fledged data and content rich websites with customizable add-on features. Students will learn how to program and configure this content management system to tap into its programmable development potentials. In addition, the course covers an introduction to strategic management. |
|
-
CSCI 4520 - Network Security Credit Hours 3 Prerequisite: CSCI 2700 Description: An examination of the tools techniques, and technologies used in the securing of information assets via networks. Topics covered include network operating system security, security of transmissions, firewall configurations, vulnerabilities and hardening of network components. Web and distributed system security, and procedures dealing with storage and disposition of sensitive data. |
|
-
CSCI 4550 - Computer Graphics Credit Hours 3 Prerequisite: CSCI 2000 or 2010 and MATH 3450 or 2110 Description: Computer graphics for computer science or mathematics students with emphasis on implementation details, algorithms, transformations, coordinates, color models, interactive graphics, and graphics standard languages. Raster and vector graphics, color and black and white, will be studied using various hardware devices. PostScript and device-dependent languages may be explored. |
|
-
CSCI 4560 - Robotics I Credit Hours 3 Prerequisite: CSCI 3250 , MATH 1910 ; Corequisite: CSCI 4562 Description: An introduction to software development for intelligent robots capable of acting independently. Students will work with simulators and real robots. Topics include robotic operating systems and programming, sensors, control, and computer vision. |
|
-
CSCI 4561 - Robotics II Credit Hours 3 Prerequisite: CSCI 4560 , CSCI 4562 Corequisite: CSCI 4563 Description: A continuation of CSCI 4560 . More advanced robotics systems will be developed. Topics will include sensor fusion, localization, mapping, planning, and cooperation among robots. |
|
-
CSCI 4562 - Robotics I Lab Credit Hours 1 Corequisite: CSCI 4560 Description: This is the lab component of CSCI 4560. An introduction to software development for intelligent robots capable of acting independently. Students will work with simulators and real robots. Topics include robotic operating systems and programming, sensors, control, and computer vision. |
|
-
CSCI 4563 - Robotics II Lab Credit Hours 1 Prerequisite: CSCI 4560 , 4562 Corequisite: CSCI 4561 Description: This is the lab component of CSCI 4561. Advanced robotics systems will be developed. Topics will include sensor fusion, localization, mapping, planning, and cooperation among robots. |
|
-
CSCI 4570 - High Performance and Parallel Computing Credit Hours 3 Prerequisite: (ENGR 4000 or PHYS 4000 or MATH 4670 ) and (ENGR 3005 or PHYS 3005 or MATH 3450 ) Description: Covers single processor optimization, shared memory parallelism using OpenMP, and distributed memory parallelism using MPI within the context of writing software for numeric computation. Course focuses on writing and optimizing codes in FORTRAN, C/C++ for large computational resources. |
|
-
CSCI 4600 - Software Engineering Credit Hours 3 Prerequisite: CSCI 3005 Description: An introduction to software engineering. Introduces topics such as requirements, design, testing, and documentation. A software system is designed, developed and presented as a team project during the course. |
|
-
CSCI 4601 - Testing and Quality Assurance Credit Hours 3 Prerequisite: CSCI 3005 Description: Theory and practice for determining whether a software system conforms to its specification and intended use. Topics include methods of testing, verification and validation, performance evaluation, unit and system level testing, quality assurance processes and techniques. |
|
-
CSCI 4602 - Software Design and Architecture Credit Hours 3 Prerequisite: CSCI 3005 Description: Introduction to the design and architecture of large-scale software systems.Topics include software architecture, methodologies, model representation, patterns, frameworks, and documenting a system’s design and architecture. |
|
-
CSCI 4611 - Computer Forensics and Incident Response Credit Hours 3 Dual Listed: CSCI 5611 Prerequisite: CSCI 4200
Description: This course addresses the topics of computer forensics, incident response, cyber-crime and terrorism, cyber-crime investigation and prosecution. Students will learn about computer forensics, extracting and proper handling of evidence, and how an organization can setup a security response team, prepare for and manage security incidents. |
|
-
CSCI 4612 - Securing Cyber Space (Web, DB, and Platform) Credit Hours 3 Dual Listed: CSCI 5612 Prerequisite: CSCI 4200
Description: In this course students will learn how to secure an organization’s technological infrastructure, including topics on operating system platforms/hardware, virtual machines, mobile devices, web servers, database servers, additional network components, anti-malware, public facing applications, host-based intrusion detection/prevention, firewalls and audit and compliance. Course includes laboratory work using Linux and Windows. |
|
-
CSCI 4617 - Security Policy and Governance Credit Hours 3 Dual Listed: CSCI 5617 Prerequisite: CSCI 4200 Description: This course covers policy development through monitoring and governance stages - policies such as privacy, acceptable use, physical security, breach disclosure, data collection and retention policies, cloud security, and supply chain are covered. Best-in-class methodologies will be used to create security policy that will communicate the organization’s asset protection objectives. |
|
-
CSCI 4619 - Ethical Hacking and Offensive Security Credit Hours 3 Dual Listed: CSCI 5619 Prerequisite: CSCI 4611 or CSCI 4612 Description: This course will instruct students in techniques used by hackers to identify vulnerabilities and facilitate the development of solutions for hardening systems and improving system and network security. Effective use of penetration testing tools and the use of proactive offensive security tactics will be emphasized. |
|
-
CSCI 4624 - Risk Management Credit Hours 3 Dual Listed: CSCI 5624 Prerequisite: CSCI 4200
Description: This course addresses the broad topic of risk management and how risk, threats, and vulnerabilities impact information systems. Areas of instruction include how to assess and manage risk based on defining an acceptable level of risk for information systems. Elements of a business impact analysis, business continuity plan, and disaster recovery plan will also be discussed. |
|
-
CSCI 4625 - Intrusion Detection and Prevention Credit Hours 3 Dual Listed: CSCI 5625 Prerequisite: CSCI 4611 or CSCI 4612 Description: This course covers an in-depth study of the theory and practice of intrusion detection and prevention in cyberspace. Topics include network security, monitoring, auditing, intrusion detection, intrusion prevention, and ethical penetration testing. Emphasis is on methods to identify threats and prevent attacks. |
|
-
CSCI 4628 - Defensive Programming Credit Hours 3 Dual Listed: CSCI 5628 Prerequisite: (CSCI 4611 or CSCI 4612) and (CSCI 2010 or CSCI 2000) Description: This course provides in-depth coverage of defensive programming techniques. Topics include: input validation and data sanitization, choice of programming language and type-safe languages, examples of common vulnerabilities and coding errors, and secure coding practices. |
|
-
CSCI 4629 - Information Security Certification Workshop Credit Hours 1 Prerequisite: CSCI 4200 Description: This workshop course prepares students for information security certification examinations such as the Comp TIA Security+. Instructional materials cover test requirements, questions drills, and preparation resources. |
|
-
CSCI 4630 - Web Server Administrator Credit Hours 3 Prerequisite: CSCI 3300 Description: An introduction to the setup and maintenance of Web server software. Both Internet Information Server (IIS) and Apache will be used as examples. |
|
-
CSCI 4632 - Secure Software Engineering Credit Hours 3 Dual Listed: CSCI 5632 Prerequisite: (CSCI 4611 or CSCI 4612) and (CSCI 2010 or CSCI 2000) Description: This course covers the fundamentals of secure coding practices focusing on building security into the software development lifecycle. Topics include: software development lifecycle, secure design principles and patterns, secure software specifications and requirements, secure software development practices, and secure testing and quality assurance. |
|
-
CSCI 4635 - Malware Analysis and Countermeasures Credit Hours 3 Dual Listed: CSCI 5635 Prerequisite: (CSCI 4611 or CSCI 4612) and (CSCI 2010 or CSCI 2000) Description: This course covers the fundamentals of malware analysis and countermeasures. Topics include: anti-malware analysis techniques, debugging concepts and tools, an examination of malware behavior, network indicators and malware countermeasures. Students will learn how to detect, analyze, reverse-engineer and eradicate malware. Real-world examples of malware will be studied. |
|
-
CSCI 4640 - Information Assurance and Security Leadership Credit Hours 3 Dual Listed: CSCI 5640 Prerequisite: CSCI 4200 Description: This course presents the latest approaches in information security and a practicum to demonstrate competency in the design and implementation of a successful cyber-security organization. Learning objectives are met through a combination of faculty instruction, current content, and active exchange with other leaders in information security management. |
|
-
CSCI 4670 - Enterprise Virtualization Credit Hours 3 Dual Listed: CSCI 5670 Prerequisite: CSCI 2700 Description: This course covers the concepts of virtualization and enterprise-level virtual infrastructure management. |
|
-
CSCI 4750 - Systems Analysis and Design Credit Hours 3 Prerequisite: CSCI 4400 and senior status Description: Study of business information systems including the design, development and implementation of a complete system working in a small group. |
|
-
CSCI 4760 - Linux System Administration Credit Hours 3 Dual Listed: CSCI 5760 Prerequisite: CSCI 2700 Description: This course provides a comprehensive introduction to the Linux operating system, and Linux system administration principles and practices. |
|
-
CSCI 4770 - Routing and Switching Credit Hours 3 Prerequisite: CSCI 2700
Description: This course is an advanced study of telecommunications and networking. Topics include an in-depth study of TCP/IP protocols, switching, routing, WAN technology, network design and management, and emerging technologies.
|
|
-
CSCI 4800 - Senior Seminar Credit Hours 1 Prerequisite: Senior standing and permission of department chair Description: Problem solving using techniques from all areas of the Computer Science and Information Systems curriculum. Research on an assigned topic culminating in a written paper and oral presentation. Review of all basic areas of study in preparation for entry into the job market. Overview of job opportunities in the computer field. |
|
-
CSCI 4805 - Computer Science Capstone Credit Hours 3 Prerequisite: Department Chair approval and senior classification; Description: Students will work in teams on a large project of their own design using the knowledge and skill gained from their classes. Teams will design, document, implement, and present their projects to the faculty. |
|
-
CSCI 4900 - Special Problems in Computer Science Credit Hours 3 Prerequisite: Advanced standing in computer science Description: Selected topics of general interest. |
|
-
CSCI 4905 - Programming Team Credit Hours 1 Prerequisite: Permission of instructor Description: A course for the preparation and training for the programming contests in which APSU participates, and for which the student wishes credit. The student is required to participate in at least one contest during the semester. Discussion of strategies and solutions is expected. |
|
-
CSCI 4910 - Topics Computer Science Credit Hours 1 Prerequisite: Advanced standing in computer science Description: Selected topics of general interest. May be repeated for credit. |
|