2023-2024 Academic Catalog

Computer Science (CSC)

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.