Computer Science Programs
B.S. PROGRAMS
- Bachelor of Science in Computer Science - Standard Track
- Bachelor of Science in Computer Science - Computer Engineering Track
- Bachelor of Science in Computer Science - IA Track
- Bachelor of Science in Computer Science - Cybersecurity Track
- Bachelor of Science in Computer Science - Software Engineering Track
- Bachelor of Science in Information Technology
- Minor in Game Design and Development
- Minor in Computer Science
B.S./M.S. ACCELERATED PROGRAMS
Computer Science Courses
Computer Science
CSC 101 Intro to Computer Science Profession (1 Credits)
An introduction to career opportunities for computer scientists and strategies to improve academic performance in the discipline. Course topics include lectures by computer science professionals and seminars on active coping, collaborative learning, and the development of inclusive relationships.
CSC 150 Computer Literacy (3 Credits)
This is an introductory course to prepare students for the technological demands of the workforce. Students gain hands-on experience using Internet applications and current word processing, spreadsheet, and presentation applications.
CSC 150H Honors Computer Literacy (3 Credits)
This is an introductory course to prepare students for the technological demands of the workforce. Students gain hands-on experience using Internet applications and current word processing, spreadsheet, and presentation applications.
CSC 169 Introduction to Computer Science (3 Credits)
Study of the fundamental concepts of the discipline with emphasis on information representation, algorithms and problem solving, computer hardware and software, data representation and the impact of computers in society.
CSC 170 Computer Programming I (3 Credits)
Introduction to programming and problem solving in an object-oriented language with emphasis on basic programming constructs, arrays, debugging, software engineering practices, and the fundamentals of file handling.
Prerequisites: Take MTH-151. Take CSC-169.
CSC 170L Computer Programming I Laboratory (1 Credits)
The focus of this course is to provide further support in learning C++ programming language syntax, semantics, and developing students' abilities to apply the knowledge in transforming algorithms into C++ code. This course is a supplementary course to CSC 170. It is structured as a closed computer laboratory where students complete specific programming tasks within a fixed time.
Prerequisites: Take MTH-151.
CSC 200 Advanced Computer Concepts (3 Credits)
This advanced computer course equips students with the necessary skills to enhance critical thinking, information literacy, and problem-solving abilities. The course primarily focuses on utilizing email, wireless networking, web searching, internet security, web page creation, and presentation tools.
CSC 260 Computer Programming II (3 Credits)
Introduction to data structures, algorithms and building objects. Topics include linked lists, stacks and queues, recursion, and binary trees.
Prerequisites: Take CSC-170.
CSC 260L Computer Programming II Laboratory (1 Credits)
Supplementary course to CSC 260 structured as a closed computer laboratory to complete specific programming tasks within a fixed time.
Prerequisites: Take MTH-151.
CSC 268 Computer Organization (3 Credits)
Fundamentals of the architecture and operation of modern computers. Computer arithmetic: number systems, number conversions including IEEE binary floating point number standard. Basic computer logic gates: combinational and sequential circuits, adders, ALU, SRAM and DRAM. Basic assembly language programming, basic Instruction Set Architecture (ISA), and the design of single cycle CPU. The MIPS based computers are used as example architecture, and alternative architectures are also discussed.
Prerequisites: Take CSC-170.
CSC 275 Fundamentals of Cybersecurity (3 Credits)
This course is designed for IT and computer professionals to learn computer and network security theories and practices that can be used to significantly reduce the security vulnerability of computers on internal networks or the Internet. Topics include cryptography, program security, operating systems security, database security, network security, security administration, computer ethics, and legal issues.
Prerequisites: Take CSC-260.
CSC 290 Survey of Video Gaming (3 Credits)
This course provides an overview of computer and video games, including evaluation and analysis of the cultural, historical, literary, psychological, and technological impact of games on society, education, and industry. Critical play is an important aspect of this course. Students conduct surveys of different game genres and study design, implementation, and testing issues that confront game developers. The course explores interactivity, learning, and storytelling as it relates to games.
CSC 292 Unix and C Programming (3 Credits)
An introduction to C programming in a UNIX environment. Course content includes the UNIX command interpreter Shell; the use of Shell scripts to create powerful tools and applications; and the development of application and systems programs using C.
Prerequisites: Take CSC-260.
CSC 295 Java Applications Programming (3 Credits)
Introduction to the core JAVA language with emphasis on application development using the latest JAVA class libraries such as Swing, JavaBeans, Java2D, Java3D. This course is designed for students who are familiar with object-oriented programming. The prerequisite course is Computer Programming II or equivalent knowledge.
CSC 312 Topics in Information Technology (3 Credits)
Advanced Information Technology topics that are not generally covered in the curriculum. Designed as a Computer Science Applied Computing elective, not as a replacement for any specific required course. Course topic and syllabus must be approved by the Department Head.
Prerequisites: Take CSC-311.
CSC 313 Network Administration (3 Credits)
This course provides essential knowledge and skills required of network administrators. It includes an overview of TCP/IP protocols and how to properly configure and manage network services based on the protocols (including DNS, DHCP, AD/LDAP directory services, print and file servers, NFS/NIS, and routing services). It also has practical lab components for students to learn how to set up, configure, troubleshoot, and administer the network services in both Windows and Linux environments.
Prerequisites: Take CSC-311.
CSC 314 Advanced Internet Programming (3 Credits)
A second Internet programming course concentrating on advanced Internet application development. Creation of relatively sophisticated web pages and applications that allow interactions between web page users and the web page as well as network programming, JSP, JDBC, XML processing are the focus of the course. Different Internet programming language and tools will also be included.
Prerequisites: Take CSC-195. Take CSC-260.
CSC 316 Introduction to Cloud Computing (3 Credits)
Introduction to core concepts in cloud computing. Students gain knowledge required for understanding cloud computing and becoming cloud practitioners. Concepts include essential characteristics of cloud computing, its history, and the business and emerging technology use cases enabled by cloud computing. Students are introduced to some of the current prominent service providers, the services they offer, and review of some case studies of cloud computing across the industry.
CSC 360 Interface Design (3 Credits)
An introduction to the techniques used for designing, implementing, and testing human-computer interfaces. Topics include design methods for creating user centered interfaces, interface implementation, techniques and tools for event driven programming, and interface testing and evaluation.
Prerequisites: Take CSC-260.
CSC 361 Survey of Programming Languages (3 Credits)
This course prepares students to survey, analyze, and evaluate programming languages such as C, C++, Python, Java, Prolog, and Lisp. Topics include data structures and storage, control structures, execution environment, input/output, and the syntax and semantics of the languages.
Prerequisites: Take CSC-260.
CSC 369 Intro to 3D Animation & Visual Effect (3 Credits)
This course is an applied introduction to the techniques used for modeling, animating, texturing, lighting, rendering, and creating 3-D content for games, animation, and visualizations in a team environment.
CSC 372 Data Structures (3 Credits)
Analysis of data structures and algorithms using C++ as the implementation language. Detailed examination of lists, heaps, trees, graphs, file structures, and the use of formal methods with emphasis on the development and analysis of efficient algorithms.
Prerequisites: Take CSC-260.
CSC 373 Algorithms Design and Analysis (3 Credits)
This course focuses on the practical applications of computer algorithm design and analysis, emphasizing correctness and efficiency. Well-known data structures, problem-solving, paradigms and algorithms are explored to illustrate alternative ways to develop automated solutions to argue the correctness of implementations and to recognize opportunities to attain greater efficiencies versus naive approaches.
Prerequisites: Take CSC-372.
CSC 380 Software Engineering (3 Credits)
This course is an introduction to the design of software projects and the phases of the software development lifecycle (system requirements and analysis, design, implementation, testing, and maintenance). Emphasis is placed on the development of artifacts (documents and code) for software projects.
Prerequisites: Take CSC-372.
CSC 390 Technical Strategies in Game Design (3 Credits)
This course introduces students to the basic concepts of Game User Interface Design, process flowcharts, storytelling, storyboarding, and the basics of project management with respect to game design.
Prerequisites: Take CSC-290.
CSC 395 Mobile App Development Using Android (3 Credits)
This course provides basic concepts necessary to understand, design and develop Android mobile applications. Students will learn the structure, services, and activities of Android applications by using the Android, Software Development Kit (SDK), the Java programming language, and Android Studio Integrated Development Environment (IDE). Students will be able to build a complete and publishable Android application that includes most of the key concepts presented in the course.
CSC 411 Web Server Administration (3 Credits)
An introductory course providing individuals with the core skills needed to meet the demands of the Web development and Internet community. The three key skill areas focused on this course are Web management, content management, and technical management.
Prerequisites: Take CSC-313.
CSC 420 Database Principles and Design (3 Credits)
An introductory course emphasizing the basic concepts and principles of database systems. Topics include an introduction to database systems and databases, different database system models, basic system and language support for database systems, relational modes, relational algebra, introduction to relational database design as well as overview of common database system issues.
Prerequisites: Take CSC-260.
CSC 422 Database Implementation (3 Credits)
Introduction to database design methodology and tools, designing and building of forms and reports, database programming using embedded SQL, Internet/Web database and database administration.
Prerequisites: Take CSC-292. Take CSC-372. CSC-420.
CSC 430 Data Communications (3 Credits)
Study of principles of computer communication as well as hardware and software designs, including transmission media, data encoding, transmission techniques, protocols, switching networks, broadcast networks, and local area networks.
Prerequisites: Take CSC-372.
CSC 432 Wireless Internet of Things (3 Credits)
The Internet of Things (IoT) is a platform where smart devices sense the environment, act and respond to needs closely or remotely through actuators. The course encompasses wireless data networking, embedded systems, and electronics. It further examines concepts of IoT, wireless technologies for IoT, cloud computing services, and object-oriented programming. Topics include data analytics for IoT, security and privacy, and IoT markets emphasizing hands-on experience with smart applications.
Prerequisites: Take CSC-260.
CSC 435 Computer Security I (3 Credits)
Introduction to Information Assurance concepts in addition to logging, encryption and decryption, effects on operating systems and machine architecture, countermeasures, risk analysis, security administration, legality and ethics, and computer forensics.
CSC 445 Computer Network Defense (3 Credits)
Solid foundation in network defense fundamentals covering conceptual and practical aspects of network security. Reviews threats to network security, defense-in-depth strategy and technologies, and network security policy design and implementation. Explores three key network defense technologies: firewalls, intrusion detection and prevention systems, and virtual private networks. Labs provide hands-on learning of network defense techniques to protect networks and communications.
Prerequisites: Take CSC-260.
CSC 449 Cryptography and Network Security (3 Credits)
Introduces the principles of number theory and the practice of network security and cryptographic algorithms. Topics include number theory, cryptography, key management, network security, web security, and protocols for secure electronic commerce.
Prerequisites: Take ITE-111. Take CSC-430.
CSC 464 Operating Systems (3 Credits)
Introduction to the history and evolution of operating systems, the concepts behind and structure of various operating systems, process scheduling, interprocess communication, input and output, multiprogramming, memory management and file systems. Concepts of distributed operating systems are also introduced.
Prerequisites: Take CSC-372.
CSC 466 Advanced Computer Topics I (3 Credits)
The Advanced Computer Topics courses are not generally covered in the curriculum. They are designed as a Computer Science elective, not as a replacement for any specifically required course.
CSC 467 Advanced Computer Topics II (3 Credits)
The Advanced Computer Topics courses are not generally covered in the curriculum. They are designed as a Computer Science elective, not as a replacement for any specifically required course.
CSC 468 Computer Architecture (3 Credits)
Study of computer organization and architecture that deals with processors, their architectures, memory, input, output, the micro architectural level, instruction set architectural level, and the operating system machine level.
Prerequisites: Take CSC-268.
CSC 470 Artificial Intelligence (3 Credits)
In-depth study of concepts and problem-solving techniques of artificial intelligence, including knowledge representation, functional and logic programming, machine learning, natural language understanding, computer vision, robotics, and societal impact.
CSC 471 agame Design and Development (3 Credits)
This course introduces students to game design and development concepts. Topics include the history of games, genres, play elements, story and character development, game play and storyboard design, level and user interface design, and the game design document.
CSC 472 3D Game Programming (3 Credits)
This is a project-oriented course on 3D Game Programming. Students will work in teams to design, implement and test a three-dimensional game with interactivity, game state diagrams, animation, sound, and constraints.
Prerequisites: Take EEN-470.
CSC 476 Advanced Computer Topics III (3 Credits)
The Advanced Computer Topics courses are not generally covered in the curriculum. They are designed as a Computer Science elective, not as a replacement for any specifically required course.
CSC 477 Advanced Computer Topics IV (3 Credits)
The Advanced Computer Topics courses are not generally covered in the curriculum. They are designed as a Computer Science elective, not as a replacement for any specifically required course.
CSC 485 Software Quality Assurance and Testing (3 Credits)
This course is an introduction to concepts and techniques for testing and modifying software applications. Emphasis is placed on quantitative and practical software methods applied within phases of the software development life cycle (SDLC). Topics include testing techniques (test first, development, graph coverage and criteria, logic-based and syntax-based techniques), automatic and manual testing, testing measurability, design of test plans, and validation of software changes.
Prerequisites: Take CSC-380.
CSC 486 Software Project Management (3 Credits)
This course introduces the student to the different aspects of software project management. It will emphasize the main activities and techniques that characterize the development of software products and project management body of knowledge (PMBOK). The main knowledge areas are covered including scope, time, cost, team, risk, and communication management with focus on software development. Agile Management (e.g., SCRUM) and other emerging practices will be covered.
CSC 487 Engineering Secure Software Systems (3 Credits)
This course explores the foundations of software security considering important software vulnerabilities.
Prerequisites: Take CSC-380.
CSC 488 Distributed Software Systems (3 Credits)
This course covers the use of large-scale computing platforms, including desktop multicore processors, SMPs, message passing platforms, and virtualized cloud computing environments. It consists of topics on parallel/distributed programming platforms, algorithms, and applications. Design and implementation of distributed software components include process and memory management underlying software applications, sockets, protocols, threads, XML, serialization, reflection, security, and events.
Prerequisites: Take CSC-380.
CSC 490 Game Design Capstone (3 Credits)
This course represents the capstone experience of the Game Design and Development minor and serves to prepare students to pursue further game education or possibly enter the game design and development workforce. Students work to form teams (e.g., 3-5 members) to design, develop, and publish an original video or mobile game. Final projects are judged by a curated group of faculty and industry professionals.
Prerequisites: Take CSC-472.
CSC 492 Independent Study (3 Credits)
Supervised independent project designed to explore a single topic in a one-to-one learning relationship with a faculty member.
CSC 494 Digital Forensics (3 Credits)
This course focuses on the fundamentals of Digital and Network Forensics introducing students to the applicable laws, ethical responsibilities, and the technical skills required of digital forensics professionals. Students gain knowledge of network memory, hard drive analysis, criminal behavior, chain of custody, data acquisition, proper handling of evidence, image and file analysis, digital forensic reporting, and courtroom preparation.
Prerequisites: Take CSC-445.
CSC 498 Computer Science Seminar I (2 Credits)
Culminating course designed to synthesize computer science knowledge and experiences through participation in a research project of the student's choice. Results of the research are presented to peers and other interested members of the computer science community.
Prerequisites: Take CSC-380.
CSC 499 Computer Science Seminar II (2 Credits)
Culminating course designed to synthesize computer science knowledge and experiences through participation in a research project of the student's choice. Results of the research are presented to peers and other interested members of the computer science community.
Information Technology
ITE 111 Information Technology Principles (3 Credits)
An introductory course that exposes students to the academic discipline of Information Technology (IT). Pervasive IT themes, such as IT history, organizational, social, and ethical issues, and relationship of IT to other computing disciplines, will be covered.
ITE 195 Introduction to Internet Programming (3 Credits)
Introduction to high level internet programming techniques and Java with emphasis on internet programming basics for creating static Web pages and dynamic Web pages in HTML and XML through the addition of scripts. Utilizes the latest Java Development Kit.
Prerequisites: Take CSC-192.
ITE 211 It Operating Systems (3 Credits)
An introduction to the basics of computer operating systems including file systems, configuration, interprocess communication, security, administration, interfacing, multitasking, and performance analysis.
Prerequisites: Take CSC-111. Take CSC-260.
ITE 311 Fundamentals of Networking (3 Credits)
This is an introductory course that covers the basics of how networks work, including the topics of OSI model, Internet model, network components, LANs, WANs, routers, switches, wireless communication, network security, TCP/IP Internet protocols, and network applications such as web and email. It also covers the fundamental aspects of configuring and troubleshooting network features on a Windows or Unix workstation.
Prerequisites: Take CSC-111