CS 116 Introduction to Computer Science I• (3)

Study of computers as a tool for information processing, content creation and communication. Topics include: basics of computer systems; productivity tools (word processing, spread- sheets, and presentation generation); multimedia; and information retrieval and sharing. Certain sections may cover topics related to specific fields of study. Two hours of lecture and one hour of lab per week.

CS 117 Introduction to Computer Science II• (3)

Introduction to World Wide Web applications and their design, including Web scripting languages and HTML with hands-on directed laboratory activities. Two hours of lecture and one hour of lab per week. Prerequisite: CS 116.

CS 120 Introduction to Computers and Problem Solving (3)

An integrated introduction to problem solving using computers. Teaches students how real-world problems can be solved using computer programming languages. Concepts and techniques covered include data representation and number systems, basic components of computer systems, problem solving strategies, introduction to algorithms and pseudo code, introduction to programming languages and introduction to operating systems. This course is required for computer science majors and minors. Three hours of lecture per week.

CS 124 Fundamentals of Machine Computation (3)

Study of the theory and applications of discrete mathematical structures as a foundation for topics in computer science. Required for computer science majors and minors. Three hours of lecture per week. Prerequisite: MATH 136.

CS 140 Computer Programming in Java (3)

Introduction to the JAVA programming language that covers the use of object oriented programming methodologies such as class inheritance, polymorphism, multithreading, generics, GUI components, and exceptions. Required for computer science majors and minors. Three hours of lecture per week. Prerequisite: CS 120.

CS 216 Advanced Applications I • (3)

This course is an introduction to computer programming applications for the PC using VISUAL BASIC. The design, implementation, and testing of programs and graphical user interfaces is presented. Process of using VISUAL BASIC to access object oriented model of other applications also considered. Two hours of lecture and one hour of lab per week. Prerequisite: CS 117.

CS 217 Advanced Applications II• (3)

This course is a continuation of CS 216 providing advanced study of software application development in the WINDOWS environment. Development of customized software products with applications to subject matter area studied by students. Two hours of lecture and one hour of lab per week. Prerequisite: CS 216.

CS 241 Object Oriented Programming Using C++ (3)

In depth study of the object oriented programming methodologies using the C++ programming language. Students will work through a number of programming exercises to explore the concepts of structures, pointers, advanced file operations, classes, inheritance, and polymorphism. Upon completion of this course, students will have been able to tackle reasonably sized projects using C++. Required for computer science majors and Track I minors. Three hours of lecture per week. Prerequisite: CS140.

CS 243 Computer Organization (3)

Basic concepts of digital computers: Boolean algebra, combinatorial and sequential logic design, arithmetic/logic units, control units, memory units, and input/output units, flip flops, and counters. Required for computer science majors and minors. Three hours of lecture per week. Prerequisites: CS 124.

CS 246 Data and File Structures (3)

Advanced programming techniques and data structures including tables, linked lists, queues and stacks are studied. Abstract data types, recursion, searching and sorting, hashing, binary trees, external storage devices, file organization, file processing techniques are presented. Required for computer science majors and Track I minors. Three hours of lecture per week. Prerequisites: CS243, CS 241.

CS 248 Theory of Computation (3)

Introduction to graph theory, automata and languages, computability and complexity of algorithms is given. This course covers partial order relations, scheduling PERT, CPM, introduction to graph theory and Euler, Hamiltonian and Djikistra algorithms, finite state automata, regular expressions, grammars, and algorithm definition. Required for computer science majors. Three hours of lecture per week. Prerequisites: MATH 241, CS 243. Co requisite: CS 246.

CS 250 Computer Networks Fundamentals (3)

Introduction to the fundamental networking concepts and technologies focusing on both the conceptual and practical skills needed to understand basic networking. Students will gain an understanding of the “layered” approach to networks and examine the OSI and TCP/IP layers in detail to understand their functions and services. It provides an overview to various network devices, network addressing schemes and, finally, the types of media used to carry data across the network. Required for computer science majors and Track II minors Three hours of lecture per week. Prerequisites: CS 120.

CS 251 Internetworking and Routing Basics (3)

A comprehensive study of internetworking as well as routing concepts and protocols is presented to develop an understanding of how networks are linked together. An introduction to routers, their role in the network, their main hardware and software components, and the packet forwarding process is included. This course covers the foundations of static and dynamic routing protocols. It provides a detailed study of various Distance Vector as well as Link State protocols and examines their characteristics, operations, limitations, configuration, and troubleshooting techniques. Required for computer science Track II majors and Track II minors. Three hours of lecture per week. Prerequisites: CS 250.

CS 342 Programming Languages and Design (3)

Introduction to the structure and design of the programming language paradigm, formal specification of syntax, semantics, functional languages, logic languages, parallel languages, data types and interfacing procedures. Social implications of technology and safety issues are also covered. Required for computer science majors. Three hours of lecture per week. Prerequisites: CS 241, CS 248.

CS 343 Microprocessor Design (3)

This course is a rigorous study of the architecture, applications, programming, and interfacing of current microprocessors, co-processors, and controllers. Hardware and software structures found in modern digital computer systems are presented. A detailed case study using a commercial microprocessor or microcontroller will be covered. Required for computer science majors. Three hours of lecture per week. Prerequisite: CS 243.

CS 344 Compiler Design and Construction (3)

Concepts, design, implementation and construction techniques for programming language translators, simple one-pass compiler; lexical analysis; semantics analysis, top-down, bottom-up and operator precedence parsing, left-left and left-right parser techniques. Three hours of lecture per week. Prerequisite: CS 342.

CS 346 Database Management Systems (3)

Theory and current practices in database management systems, data organizational models, including hierarchical and networked, with relational and semantic models stressed. Required for computer science majors. Three hours of lecture per week. Prerequisites: CS 246, CS 248.

CS 350 Local Area Network Fundamentals (3)

This course covers an introduction to LAN switching and wireless LANs and. in depth examination of the underlying concepts and processes of the common Layer 2 switching protocols and technologies. It provides the necessary knowledge required to implement, verify, and troubleshoot Local Area Networks. It also covers wireless LAN standards and concepts required to design, implement and troubleshoot wireless LANs. Required for computer science Track II majors and Track II minors. Three hours of lecture per week. Prerequisites: CS 250.

CS 351 Wide Area Network Technologies (3)

This course is an introduction to the various wide area networks (WANs) access technologies used to connect small-to medium-sized business networks. This course introduces WAN converged applications and quality of service (QoS). It focuses on WAN technologies including PPP, Frame Relay, broadband links, and WAN security concepts. It covers the principles of traffic control and access control lists and describes how to implement IP addressing services for an Enterprise network, including how to configure NAT and DHCP. Finally, students learn how to detect, troubleshoot and correct common Enterprise network implementation issues. Required for computer science Track II majors and Track II minors. Three hours of lecture per week. Prerequisites: CS 251.

CS 354 Web Application Development (3)

Study of concepts, technologies, and tools required for developing multi-tiered enterprise-level Web applications. The course covers the fundamental architectural elements of programming web sites that produce content dynamically. Topics include database connectivity options; distributed object technologies; n-tier client/server applications architecture; and security issues. Required for computer science Track II majors. Three hours of lecture per week. Prerequisites: CS 250 and CS 346.

CS 356 Numerical Analysis (3)

This course is the study of the difference calculus, polynomial interpolation, extrapolation, data smoothing, numerical differentiation and integration, numerical solution of nonlinear differential equations, and systems of linear and nonlinear equations. Three hours of lecture per week. Prerequisites: MATH 242, MATH 330, and CS 140.

CS 415 Computer Ethics and Society (3)

This course is a study of the ethical and social issues related to computers and computer networks. It provides an introduction to the legal, social, and ethical issues surrounding information technology and to the societal risks addressed in software testing and reliability standards. Safety and relevant legal cases will be covered. Required for computer science majors. Two hours of lecture per week. Prerequisite: Junior level standing.

CS 434 Wireless Programming (3)

This course involves a thorough introduction to wireless device programming with a focus on Wireless application development and Wireless Internet programming. After an overview of the elements and dynamics of the Wireless Internet landscape, the course focuses on the skills required for content development and management of wireless media applications. Emphasis is on developing applications that can be accessed remotely using the Wireless Application Protocol (WAP) and the Wireless Markup Language (WML) as well as standalone applications that run on platforms such as Android. Three hours of lecture per week. Prerequisites: CS 354 or instructor consent.

CS 444 Operating Systems (3)

Introduction to the function, internal data structures, and operations of operating systems and their associated file systems. Required for computer science majors. Three hours of lecture per week. Prerequisites: CS 343.

CS 445 Multimedia Applications (3)

This course focuses on the fast emerging field of multimedia authoring and application development. It covers multimedia representation, storage, and communication. It provides the students with the basics of integrating audio, video, and textual sources into multimedia objects Software and hardware issues related to multimedia are studied in this class. Required for computer science Track II majors. Three hours of lecture per week. Prerequisites: CS 354.

CS 450 Network Management and Security (3)

This course provides an introduction to the basic concepts of the network-management architectures and protocols. It covers, in detail, the implementation, operation, security, management and support of complex LAN and WAN networks to develop an understanding of the tools, procedures and standards needed for network administration. Students will learn common network management concepts and protocols such as Structure of Management Information (SMI), Management Information Base (MIB), Simple Network Management Protocol (SNMP), Remote Monitoring (Rmon), and Common Management Information Protocol (CMIP). Required for computer science Track II majors. Three hours of lecture per week. Prerequisites: CS 351.

CS 451 Introduction to Wireless and Mobile Networks (3)

This course provides an introduction to wireless and mobile networks and covers the following topics: mobile radio propagation; traffic engineering; cellular concepts; multiple radio access; multiple division techniques; channel allocation; mobile communication systems; existing wireless systems; network protocols; Ad Hoc and sensor networks; and wireless LANs and PANS. Required for computer science Track II majors. Three hours of lecture per week. Prerequisites: CS 350.

CS 456 Software Engineering and Testing (3)

Study of the principles and practices of software engineering. Topics include software quality concepts, process models, and analysis of software requirements, design methodologies, software testing, and software maintenance. Required for computer science majors. Three hours of lecture per week. Prerequisite: CS 346.

CS 457 Artificial Intelligence (3)

Introduction to the fundamental theories, algorithms and representational structures underlying Artificial Intelligence and practice techniques for programming AI applications using Prolog. General areas covered include search techniques, production systems, planning, learning, and connectionist systems. Three hours of lecture per week. Prerequisites: CS 342.

CS 460 Computer Graphics (3)

Basic concepts of computer graphics, including programming, hardware, display technology, and data structures for both micros and high-performance workstations. Three hours of lecture per week. Prerequisites: CS 248, and CS 356.

CS 497 Advanced Topics in CS (3)

Consideration of contemporary topics and issues in computer science and associated technology. Three hours of lecture per week. Prerequisites: Senior level standing CS 499 Capstone Project (3) A CS required capstone design course to encourage independent study, project design, and development. Proposal must be submitted and approved during term preceding enrollment. Required for computer science Track I majors. Three hours of lecture per week. Prerequisite: Consent of the Faculty Chair and Senior Level standing.