Computer Science - CPSC

Courses

CPSC 1210 INTRODUCTION TO COMPUTER SCIENCE I (3) LEC. 45. Admission into Bachelor of Computer Science Program. Introduces the fundamental concepts of object-oriented programming.

CPSC 1220 INTRODUCTION TO COMPUTER SCIENCE II (3) LEC. 45. Pr. CPSC 1213 or CPSC 1210. Admission into Bachelor of Computer Science Program. Continues the development of programming from an object-oriented perspective. Emphasizes sound software engineering principles and best practices.

CPSC 1230 DATA STRUCTURES (3) LEC. 45. Pr. CPSC 1223 or CPSC 1220. Admission into Bachelor of Computer Science Program. Developing programs that use data structures and collections to efficiently store data. Emphasis will be placed on the interplay between effective data structures and efficient algorithms.

CPSC 2010 INTRODUCTION TO COMPUTER SCIENCE I (3) DSL. 45. Admission into Bachelor of Computer Science Program. Introduces the fundamental concepts of object-oriented programming.

CPSC 2710 SOFTWARE CONSTRUCTION FUNDAMENTALS (3) LEC. 45. Pr. CPSC 1233 or CPSC 1230. Admission into Bachelor of Computer Science Program. Development of graphical user interface-based, event-driven desktop/laptop computer application using a modern object-oriented language. Systematic testing, debugging, documentation, and maintenance programming.

CPSC 3220 PROGRAMMING LANGUAGES AND TRANSLATION (3) DSL. Pr. (CPSC 1230 or CPSC 1233) and (CPSC 3300 or CPSC 3303). Admission into Bachelor of Computer Science Program. Fundamental concepts of programming language design, interpretation, and compilation.

CPSC 3240 DISCRETE STRUCTURES (3) LEC. 45. Admission into Bachelor of Computer Science Program. Basics of set theory, propositional and predicate logic as used to describe algorithms, recurrence relations. Proving correctness and estimating running time for algorithms. Mathematical and structural induction.

CPSC 3270 ALGORITHMS I (3) LEC. 45. Pr. CPSC 1233 or CPSC 1230. Admission into Bachelor of Computer Science Program. Introduction to algorithms as tools for computational l problem solving, language of algorithms, understanding algorithms, approximately analyzing correctness and efficiency of algorithms, algorithms that solve fundamental computational problems, basic algorithm design techniques, steps of computational problem solving.

CPSC 3280 ALGORITHMS II (3) LEC. 45. Pr. CPSC 3270 or CPSC 3273. Admission into Bachelor of Computer Science Program. Advanced complexity analysis techniques, notions of computational complexity, polynomial time hierarchy, computability, algorithms that solve advanced computational problems, advanced algorithm design techniques, computational problem solving.

CPSC 3300 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING (3) LEC. 45. Pr. (CPSC 3243 or CPSC 3240) and (CPSC 1213 or CPSC 1210). Admission into Bachelor of Computer Science Program. Stored program computers, hardware and software components, data representations, instruction sets, addressing modes, assembly language programming, loaders, linkers and operating systems.

CPSC 3320 COMPUTER ARCHITECTURE (3) LEC. 45. Pr. CPSC 3333 or CPSC 3330. Admission into Bachelor of Computer Science Program. Design of Computer Systems, emphasizing the relationship between computer hardware and software. Includes processor control and data path organization, memory subsystem design, instruction set design, processor simulation, and quantitative analysis of computer performance.

CPSC 3330 OPERATING SYSTEMS (3) LEC. 45. Pr. (CPSC 1230 or CPSC 1233) and (CPSC 3300 or CPSC 3303). Admission into Bachelor of Computer Science Program. Structure and functions of operating systems; processes and process scheduling; synchronization and mutual exclusion; memory management; auxiliary storage management; resource allocation and deadlock; security, privacy, and ethical concerns; design tradeoffs.

CPSC 3340 PARALLEL SYSTEMS (3) LEC. 45. Pr. CPSC 3333 or CPSC 3330. Admission into Bachelor of Computer Science Program. Overview of hardware and software issues in parallel systems: fundamental parallel architectures, programming languages, tools and algorithms, and parallel applications.

CPSC 3350 COMPUTER NETWORKS I (3) LEC. 45. Pr. CPSC 3330 or CPSC 3333. Admission into Bachelor of Computer Science Program. Fundamentals of computer networks, TCP/IP layered model: application layer, transport layer, network layer, link layer, with examples of each layer, and explanation of design issues. IPv6.

CPSC 3360 COMPUTER NETWORKS II (3) LEC. 45. Pr. CPSC 3353 or CPSC 3350. Admission into Bachelor of Computer Science Program. Computer network design, including multiplexing, switching, routing, internetworking, transport protocols, congestion control, and performance evaluation.

CPSC 3370 WIRELESS AND MOBILE NETWORKS (3) DSL. Pr. CPSC 3353 or CPSC 3350. Admission into Bachelor of Computer Science Program. Mobile IP, wireless routing, location management, ad-hoc wireless networks, wireless, wireless TCP personal communication systems, and current mobile phone OTA protocols.

CPSC 3700 SOFTWARE ENGINEERING I (3) LEC. 45. Pr. CPSC 2713 or CPSC 2710. Admission into Bachelor of Computer Science Program. Current processes, methods, and tools related to modeling and designing software systems.

CPSC 3710 SOFTWARE ENGINEERING II (3) DSL. Pr. CPSC 3703 or CPSC 3700. Admission into Computer Science Online Program. Current processes, methods, and tools related to modeling and designing software systems.

CPSC 4000 SYSTEM ADMINISTRATION (3) LEC. 45. Pr. CPSC 3330 or CPSC 3333. Admission into Bachelor of Computer Science. Basics of system administration for Windows and Unix machines, including configuration of Performance measurement and enhancement.

CPSC 4200 FORMAL LANGUAGES (3) DSL/LEC. 45. Pr. (CPSC 3273 or CPSC 3270) and (CPSC 3243 or CPSC 3240). Admission into Bachelor of Computer Science Program. Fundamentals of formal languages including mathematical models of regular sets, context-free languages and Turing machines; deterministic and non-deterministic models. Basics of interpretation and compilation.

CPSC 4730 COMPUTER ETHICS (3) LEC. 45. Admission into Bachelor of Computer Science Program. Application of ethical principles to computing-related topics, including privacy, property rights, autonomy, access, and diversity.

CPSC 4970 SPECIAL TOPICS (3) LEC. 3. Investigation of current topics in computer science. Course may be repeated for a maximum of six credit hours. Departmental approval required.

CPSC 5120 DATABASE I (3) LEC. 45. Pr. CPSC 1230 or CPSC 1233. Admission into Bachelor of Computer Science Program. The design and implementation of database applications, with a focus on relational database management systems.

CPSC 5130 DATABASE II (3) LEC. 45. Pr. CPSC 5123 or CPSC 5120. Admission into Bachelor of Computer Science Program. Theory, design, and implementation of database systems.

CPSC 5200 DEVELOPING WEB APPLICATIONS WITH XML (3) LEC. 45. Pr. CPSC 1230 or CPSC 1233. Admission into Bachelor of Computer Science Program. Comprehensive introduction to XML, working with XML and Databases, event-driven programming with XML, implementing Communication and Web Services with XML, working with XML, JQuery, XHTML and HML5.

CPSC 5210 WEB APPLICATION DEVELOPMENT WITH JSP (3) LEC. 40. Pr. CPSC 5203 or CPSC 5200. Admission into Bachelor of Computer Science Program. Advanced course in web development using JSP, includes JCP fundamentals, JAP and web server software development, and applying JSP in the real world.

CPSC 5330 MOBILE APPLICATIONS I (3) LEC. 45. Pr. CPSC 2710 or CPSC 2713. Admission into Computer Science Online Program. Software development for wireless applications: specification, process, testing, and performance evaluation. Design and development of wireless application layer software, including current protocols.

CPSC 5340 MOBILE APPLICATION DEVELOPMENT II (3) LEC. 3. Pr. CPSC 5330 or CPSC 5333. Admission into Bachelor of Computer Science Program. Builds mastery of mobile application development and the skills necessary to stay current in this fast-moving field throughout one’s career by introducing a new programming language and application programmer interface and interface and requiring the student to master them.