2024-2025 Academic Catalog

Computer Science

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