Computer Science (CSCN)
Prerequisite: MATH 121 (may be taken concurrently) or MATH 122 (may be taken concurrently) or MATH 125 (may be taken concurrently) or MATH 126 (may be taken concurrently) or MATH 128 (may be taken concurrently) or MATH 131 (may be taken concurrently) or MATH 132 (may be taken concurrently) or MATH 133 (may be taken concurrently) or MATH 200 (may be taken concurrently) or MATH 201 (may be taken concurrently) or BUSI 230 or MATH 217 (may be taken concurrently) or MATH 227 (may be taken concurrently) or MATH 250 (may be taken concurrently) or ACT Math with a score of 25 or (pre2016 post1995)SAT Math with a score of 570 or SAT Section Math with a score of 590 or Assessment - Mathematics II with a score of 15 or Placement Score-Math with a score of 075
A breadth-first introduction to the computing disciplines, with an emphasis on computer ethics and how computing technology impacts the world. Topics include: computing history; discrete mathematics; computer architecture and organization; algorithm design; languages; compilers; operating systems; applications; networks; databases; intellectual property; privacy; free speech; social consequences; computer crime; and codes of conduct.
Offered: Resident
Prerequisite: ((ENGR 110 and ENGR 133) or CSCN 110 (may be taken concurrently) or CSIS 110 (may be taken concurrently))
This class will introduce you to C++, algorithms, structured and object-oriented programming, and software engineering. The class will cover the flow of control, input/output, functions, classes, and objects. Software engineering will include problem-solving approaches, incremental development, and testing. Programming assignments are required.
Offered: Resident
This class builds upon the foundations of the C++ language taught in CSCN 111. Its topics include advanced examination of functions, recursion, simple data structures, various sort/search algorithms, classes, objects, composition, inheritance, dynamic memory allocation, vectors, virtual functions, polymorphism, pointers, class and function templates, exception handling, and operator overloading. Programming assignments in C++ are required.
Offered: Resident
Introduction of algorithms and data structures used to store, access, and manipulate large quantities of data. This class will introduce common data structures used by software engineers to build applications. Structures include lists, stacks, queues, trees, graphs, files, indexes, searching (sequential, binary, hashing, etc.) and probabilistic structures. Asymptotic Analysis will be introduced as the mechanism for measuring and comparing algorithm complexity/performance. Programming exercises in C++ reinforce lessons learned.
Offered: Resident
Prerequisite: MATH 121 (may be taken concurrently) or Placement Score-Math with a score of 75
Business Data Communications begins with foundational groundings in the basics of telecommunications technologies and terminology including various transmission media. It continues by exploring the basics of networking--past, present, and future. The introduction and dive into the OSI 7-Layer model and the internal 4-Layer IP model.
Offered: Resident
Application procedures processed through the Career Center. Must apply semester prior to internship. (Previously BMIS/CSCI 299)
Registration Restrictions: Sophomore status, 2.00 GPA, two courses in major, declared major, not more than one CSER behind
Offered: Resident
This course teaches fundamental web programming using HTML and CSS.
Offered: Resident
This course teaches the concept of progressive enhancement (simple to complex) through the use of front-end programming techniques using JavaScript and jQuery.
Offered: Resident
This course provides an introduction to the various languages and tools used in back-end programming. The fundamentals of back-end programming will be emphasized. Due to the particularly dynamic nature of Internet technologies, course content will change as appropriate.
Offered: Resident
Python and R have become invaluable to a modern data science practice. This course provides a data science-specific introduction to the Python and R languages. This introduction includes modern data analysis techniques and popular libraries encountered in this discipline related to these languages.
Offered: Resident
The ability to analyze large and complex data often requires significant aggregation and pre-processing to make it acceptable for advanced analysis. This course provides an overview of current data engineering methods to aggregate, curate, and present data for analysis, including modern distributed processing systems.
Offered: Resident
Prerequisite: CSCN 322
Presenting and visualizing information to support decision-making is key to maturing organizations. This course provides an overview of current data visualization techniques, tools, and dashboards.
Offered: Resident
The abilities to design, implement, and maintain an enterprise database are beneficial skills for computer science professionals. This course involves the study of database management systems, database architecture, design, queries, applications, administration and implementation. At least half of the course involves extensive database design with ERDs, normalization, DDL and DML SQL queries, and the use of SQL advanced queries for data analysis. The remainder of the course examines concurrency management, transaction processing, query optimization, security, database recovery, distributed databases, PHP, and XML. Projects are assigned to provide hands-on experience with the SQL language, a relational database management software package, and various ETL (Extract-Transform-Load) techniques for large data sets.
Offered: Resident
This course is a survey of the fundamental concerns and issues regarding the design, development and operation of secure information systems. Topics include threat analysis, cyber resilience, network & application security, social engineering, secure systems operation, compliance, as well as policy development & implementation. Additionally, the methods used by attackers to circumvent these protections and defenses are explored.
Offered: Resident
This course provides an in-depth review of current and historical computer architecture designs. Students learn the fundamentals of architectural elements used in processor design, arithmetic logic units, memory structures, and I/O systems. Several assembly languages are heavily emphasized as well as how data structures are natively stored in memory and used for computation.
Offered: Resident
This course provides an introduction to the Linux operating system from a computer science perspective. Topics covered include: system overview and structure, administration, shell scripting, compilation, troubleshooting and debugging.
Offered: Resident
Principles of Windows system administration activities, applications, operating systems, and domains; analysis of computing applications, infrastructures, architectures, firmware, hardware, disaster recovery, security, and enterprise deployment.
Offered: Resident
Using Python as the base language, this course examines the integration of systems and applications across global businesses; explores programming interfaces, data mapping and exchange, and scripting, to support the configuration, maintenance, integration, and security of systems.
Offered: Resident
A study of how computer networks and internets operate. Investigates networking from the level of data transmission and wiring through the level of application software that provides networking functionality including theoretical foundations; topics include: data and packet transmission, LANs and WANs, and internet concepts, including architecture, protocol layering, and application software.
Offered: Resident
This course provides a study and application of the concepts, theory, and practice of effective user interface design, including user-centered design principles. Cognitive and social aspects of human interaction will be examined in conjunction with elements of technological devices. Human interaction with mobile applications, internet applications, social networking technology, cloud computing, and stand-alone applications concepts will be explored. Additional emphasis will be placed on exploring the field of design thinking.
Offered: Resident
This course teaches concepts of mobile programming using web languages.
Offered: Resident
Learning from data has become vitally important in modern organizations. This course provides an introduction to machine learning techniques to allow organizations to leverage their data. This course examines various supervised and unsupervised learning techniques, dimensionality reductions, neural networks and deep learning and commonly used associated libraries.
Offered: Resident
This course provides a broad introduction to the modern artificial intelligence field. Areas covered include modern search techniques, optimization, knowledge representation, and decision-making.
Offered: Resident
This course builds upon the student’s knowledge of formal languages and provides a grand tour of computation and programming language design, culminating in compiler design. Beginning by reviewing computability and formal languages, students progress to programming language design principles, and examine the steps involved in compilation and compiler construction both from a software design perspective and theoretical approach.
Offered: Resident
This course provides an in-depth review of current and historical operating system designs. Students learn how operating systems have evolved over time from real-mode systems to modern virtual memory-based operating systems. This course also includes an extensive introduction to bootloaders, system calls, system libraries, relocatable code, linkers and loaders, kernel drivers, and file systems, both from a theoretical perspective and from the software design and implementation perspective.
Offered: Resident
This course introduces the following issues and principles of information system security: security policies and their mechanisms of implementation, methods used by attackers attempting to circumvent these protections, and specific defenses against these attackers.
Offered: Resident
This course introduces the following issues and principles of information system security: security policies and the technical mechanisms of implementation methods used by attackers to circumvent these protections, with a focus on specific advanced technical, administrative, and physical attack tactics, techniques, and procedures.
Offered: Resident
Study of modern cryptographic techniques. Covers basic cryptographic concepts, including symmetric key, public key, hash functions, digital signatures, and message authentication codes.
Offered: Resident
Study of the management and performance of the software development process. Topics include: phases of a software project, life-cycle models, metrics, tools, methodologies, techniques, management, and ethical and professional issues.
Registration Restrictions: 30 credit hours of Computer Science (CSIS or CSCN) coursework and permission of the Department Chair
Offered: Resident
This is the application of all that the student has learned of software development and engineering. In small teams students will develop real-world applications or application products, often working with external clients and/or functional domain experts.
Registration Restrictions: Permission of Department Chair
Offered: Resident
This class is the follow-on to CSCN 481 and continues the application of all that the student has learned of software development and engineering. Remaining in the same teams established during CSCN 481, students will continue developing their applications and working with their clients culminating in the closeout customer briefing and the delivery of software and supporting documentation at the end of the semester.
Registration Restrictions: Permission of Department Chair
Offered: Resident
Prerequisite: ((CSIS 352 or CSCN 352) and (CSIS 355 or CSCN 355) and (CSIS 461 or CSCN 461) and (CSIS 326 or CSCN 326))
This course is a comprehensive review of the computer science cybersecurity program and integrates all concepts of software cybersecurity, from a secure software development lifecycle (SDLC) point of view.
Registration Restrictions: Permission of Department Chair
Offered: Resident
This course is a continuation of the Cybersecurity Capstone I course and serves as the culmination of the computer science cybersecurity program which integrates all concepts of enterprise cybersecurity, from an offensive and defensive point of view.
Registration Restrictions: Permission of Department Chair
Offered: Resident
Study of advanced topics in computer science on an individual basis. Periodic meetings with instructor.
Registration Restrictions: Permission of instructor
Offered: Resident
Selected topics in various areas of computer science. May be repeated for credit when topic varies. (Formerly CSCI 497)
Registration Restrictions: Permission of instructor
Offered: Resident
Applications are processed through the department Faculty Intern Advisor. Applicants must apply the semester prior to starting the internship. (Formerly CSCI 499)
Registration Restrictions: Junior Status, required GPA permission of Faculty Intern Advisor
Offered: Resident