CPSC-Computer Science

CPSC 1105 First Year Experience for CPSC/IFSC Majors
A survey of the Computer and Information Science majors with coverage of Interpersonal and Team Communication skills, Time Management & Goal Setting, Techniques for Discovering, Organizing & Presenting Information, Self-Initiated Learning, and Overview of Campus-based resources. Activities include service learning projects, field trips, guest speakers, demonstrations, faculty presentations, and social networks. Two hour lab per week. One credit hours.

CPSC 1175 Introduction to Computer Science Laboratory
Prerequisite: MATH 1302 or equivalent. Corequisite: CPSC 1375. A laboratory course to accompany CPSC 1375. Introduction to editing, compiling, and executing programs on various platforms; UNIX operating system; number systems and number conversions; presentation software, and the internet resources. Successful completion of this course requires a grade of C or greater. Two hours laboratory per week. One credit hour.

CPSC 1310 Internet Technologies
See IFSC 1310. Internet Technologies.

CPSC 1370 Computer Literacy
The fundamental concepts of computing in a personal computer environment. Introduction to hardware and software and system configurations. The focus is on practical problem solving using popular PC application software for word processing, spreadsheets, and databases. This course may not be counted for credit toward a computer science major or minor. Three hours lecture per week. Three credit hours. (ACTS Course Number CPSI 1003)

CPSC 1372 RPG Programming
Prerequisite: CPSC 1375, MGMT 1310, or equivalent. Report Program Generator is a nonprocedural language for data processing. Input, output, arithmetic, comparison, control breaks, arrays, sequential files, direct-access files. This course may not be counted for credit toward a computer science major or minor. Three hours lecture per week. Three credit hours.

CPSC 1375 Programming I
Prerequisite: MATH 1302 or equivalent. Corequisite: CPSC 1175. Introduction to algorithm development and implementation using control structures, functions, arrays, pointers, and basic object-oriented concepts. Successful completion of this course requires a grade of C or greater. Three hours lecture per week. Three credit hours.

CPSC 2376 Programming II
Prerequisite: CPSC 1375. Advanced programming concepts including structures, abstract data types, details of object-oriented concepts including encapsulation and polymorphism in current object-oriented language. Successful completion of this course requires a grade of C or greater. Three hours lecture per week. Three credit hours.

CPSC 2377 Introduction to Game Programming
Prerequisites: CPSC 1375, IFSC 2300 SYEN 1302. Advanced programming concepts including structures, abstract data types, recursive techniques, game based hands-on experiences for students to learn and understand details of advanced object-oriented concepts in a current object-oriented language. Successful completion of this course requires a grade of C or greater. Three hours lecture per week. Three credit hours.

CPSC 2380 Data Structures and Algorithms
Prerequisite: CPSC 2376 or CPSC 2377. A systematic study of the main data structures of computer science: arrays, stacks, queues, linked lists, trees, graphs, hash tables. Implementation and analysis of the algorithms and programming techniques for searching sorting, inserting into, and deleting form these structures; efficiency considerations. Successful completion of this course requires a grade of C or greater. Three hours lecture per week. Three credit hours.

CPSC 2382 Introduction to Computer Systems and Assembly Language
Prerequisite: CPSC 1375 or equivalent. Introduction to machine architecture, detailed study of the PC instruction set and addressing modes. Assembling, linking, executing, and debugging of assembly language programs. Additional topics include keyboard and screen handling, string processing, interrupts, binary and decimal arithmetic. Three hours lecture per week. Three credit hours.

CPSC 2391 Cooperative Education
Prerequisites: major in computer science, CPSC 2376 or CPSC 2377, and consent of department chairperson. Designed to complement and extend the classroom learning experience through the application of theoretical concepts in a professional work environment. A minimum of 200 hours of work with a participating employer. The exact number of work hours, activities, and responsibilities are dependent on the nature of the work experience and must be specified in written agreements coordinated with the Office of Cooperative Education. Three credit hours.

CPSC 2399 Special Topics
Prerequisite: CPSC 1370, 1375, or equivalent or the consent of the instructor. Introduction to a programming language to be selected from the following list: Visual BASIC, C, ADA, Perl, XML, scripting languages, Internet programming. This course may be repeated with a different language. This course is not accepted for credit in the computer science major or minor. Three hours lecture per week. Three credit hours.

CPSC 3370 Net-centric Computing: Systems Concepts
Prerequisites: CPSC 2380 and CPSC 2382. Coverage of systems programming of net-centric computing systems. Hands-on experiences for students to learn how net-centric computing systems work and writing net-centric computing applications. Three hours lecture per week. Three credit hours.

CPSC 3371 Net-centric Computing: Language Concepts
Prerequisites: CPSC 2380 and CPSC 2382. Coverage of language design issues for net-centric computing systems. Hands-on experiences for students to learn and understand tradeoffs between applicative needs compared to language design and implementation issues. Three hours lecture per week. Three credit hours.

CPSC 3372 System Utilities
Prerequisite: CPSC 2376 or CPSC 2377. Job steps, file identification, program storage, data storage, cataloged procedures, libraries, utility programs. Three hours lecture. Three credit hours.

CPSC 3375 Database Concepts I
Prerequisites: CPSC 2380, MATH 2310. In-depth study of data models including E-R, EER, Relational, object relational, and other current models; Data language including relational algebra, relational calculus, SQL, and QBE; Database design including functional dependency and normalization; Database implementation using popular DBMSs; Application development using embedded SQL enhanced by web technology. Three hours lecture per week. Three credit hours.

CPSC 3380 Operating Systems
Prerequisites: CPSC 3370; MATH 1452 or equivalent. Buffering, physical input/output, and data management. Loaders, linkage editors, and relocation. Multiprogramming, scheduling resource allocation, and virtual memory. Three hours lecture per week. Three credit hours.

CPSC 3381 Enterprise COBOL Application Development
Prerequisites: CPSC 2376, CPSC 2377, or consent of the instructor. Accelerated programming in COBOL. Includes organization of COBOL programs, input, output, data manipulations, and tables, file organization, and file access methods. Subprogram, introduction to CICS programming. Three hours lecture per week. Three credit hours.

CPSC 3383 Language Structure
Prerequisites: CPSC 3371; MATH 2310. Concepts of syntax and semantics of grammars and languages. Study and comparison of the organization and major constructs of various programming language paradigms, with in-depth study of several specific languages. Implementation and compiler/interpreter-related issues. Three hours lecture. Three credit hours.

CPSC 3385 File Structures and Multimedia
Prerequisites: CPSC 2380 and MATH 1452 or equivalent. In-depth study of sequential, indexed, and direct file structure; buffering, indexing; file systems; markup file structures including XML. Modern file representation including image files and sound files; Multimedia technology including CD-ROM, DVDs, and tape storage. Three hours lecture per week. Three credit hours.

CPSC 3386 Information Storage and Retrieval
Prerequisites: CPSC 2380, MATH 2310, 1452 or equivalent. The analysis of information content by statistical, syntactic, and logical methods. Search and matching techniques. Automatic retrieval systems, question answering systems. Evaluation of retrieval effectiveness. Three hours lecture per week. Three credit hours.

CPSC 3387 Simulation Methods
Prerequisites: CPSC 2380, STAT 3352 or equivalent, MATH 1452. Introduction to the design and analysis of discrete probabilistic systems using simulation. Basic concepts in modeling and analysis for both continuous and discrete systems are covered. Combined simulation methods, including integrated qualitative/quantitative system modeling. Emphasizes model construction and simulation language. Three hours lecture per week. Three credit hours.

CPSC 3391 Cooperative Education
Prerequisites: major in computer science, completion of the computer science freshman and sophomore core, and consent of department chairperson. Further work experiences to complement and extend the classroom learning experience through the application of theoretical concepts in a professional work environment. A minimum of 200 hours work with a participating employer. The exact number of work hours, activities, and responsibilities are dependent on the nature of the work experience and must be specified in written agreements coordinated with the Office of Cooperative Education. Three credit hours.

CPSC 3482 Computer Organization I
Prerequisites: CPSC 2382 and MATH 2310 or equivalents. Computer history and technology. Computer subsystems and components. Instruction Set Architecture. Computer arithmetic, and codes. Hardwired versus microprogrammed control. Memory design. Bus systems and I/O devices. Computer performance. Architecture examples. Three hours lecture and two hours laboratory per week. Four credit hours.

CPSC 4360 Computer Security
Prerequisite: CPSC 3370 or consent of instructor. Junior standing or above. Increasing reliance on our computer-based infrastructure elements along with information-driven nature of today’s business require a solid and in depth understanding of security issues pertinent to the systems. The topics include threats, assumptions, assurance, confidentiality, integrity, availability, access control matrix and policies, security models, requirements imposed by policies, protection models, covert channels, formal methods for security, designing and evaluating systems, intrusion detection, auditing and other contemporary issues. Three hours lecture per week. Three credit hours.

CPSC 4366 Interactive Computer Graphics and Animation
Prerequisite: MATH 2310 and knowledge of C, C++, or Java programming. This course addresses topics such as introduction to computer graphics and all the details of design of modern graphics architectures. The topics covered include two and three dimensional modeling and transformation, lighting and shading, animation techniques, introduction to OpenGL. Dual-listed in the UALR Graduate Catalog as CPSC 5366. Three hours lecture per week. Three credit hours.

CPSC 4370 Theory of Computation
Prerequisites: CPSC 3371, MATH 2310. A study of the main areas of theoretical computer science and their hierarchical interconnections. Basic results relating to formal models of computation, with emphasis on grammars and languages, finite automata, Turning machines, and computational complexity. Three hours lecture per week. Three credit hours.

CPSC 4371 Computer Documentation
Prerequisite: Senior standing in computer science and consent of instructor. The design and development of computer system documentation with emphasis on user documentation. Practical experience in writing a user manual using structured design methodology. Discussion of online documentation, hypertext, and emerging documentation technologies. Three hours lecture per week. Three credit hours.

CPSC 4372 Object-oriented Programming
Prerequisites: working knowledge of a procedural programming language and UNIX operating system, or consent of the instructor. Concepts of object-oriented analysis, design, and implementation. Object-oriented programming in C++, Smalltalk, Java, and/or another current object-oriented programming language. Dual-listed in the UALR Graduate Catalog as CPSC 5372. Three hours lecture. Three credit hours.

CPSC 4373 Fundamentals of Software Engineering
Prerequisites: CPSC 3370, CPSC 3371, and MATH 1452. Requirements definition, analysis and modeling including use cases and use case paths, domain models, state transition diagrams; techniques to increase robustness and avoid disastrous defects; object-oriented architecture and design patterns and specifications in UML; performance impact of design choices; analysis of designs regarding maintainability and testability; security engineering; practical system test and glass-box testing fundamentals; verification of test coverage via decision tables and state transition table . Dual-listed in the UALR Graduate Catalog as CPSC 5373. Three hours lecture per week. Three credit hours.

CPSC 4375 Fundamentals of Database Management Systems
Prerequisites: CPSC 3375 or equivalent. Advanced topics related to the design and efficient implementation of modern database management systems. Concurrency and transaction management, database security, query processing, query optimization, physical database storage, and indexing. Dual-listed in the UALR Graduate Catalog as CPSC 5375. Three hours lecture per week. Three credit hours.

CPSC 4376 Applied Cryptography
Prerequisites: CPSC 2380, MATH 2310, and STAT 3352 or equivalents. A survey and study of the major cryptographic techniques, algorithms, and implementations, with emphasis on applications to communications and network security. Intended as a practical introduction to the current state-of-the-art of cryptographic usage. Dual-listed in the UALR Graduate Catalog as CPSC 5376. Three hours lecture. Three credit hours.

CPSC 4381 Computer Architecture and Design
Prerequisite: CPSC 3482. Formal description of computer architecture and design, instruction set architectures, processor design of modern computers, pipeline and instruction level parallelism, memory system design, and input and output system design. Dual-listed in the UALR Graduate Catalog as CPSC 5381. Three hours lecture per week. Three credit hours.

CPSC 4382 Compiler Construction and Theory
Prerequisites: CPSC 3371. Fundamental principles of compiler design such as finite state machine and context-free grammar. Compilation techniques include compile and run-time symbol tables, lexical analysis, syntax analysis, semantic analysis, object code generation, error diagnostics, and optimization. Dual-listed in the UALR Graduate Catalog as CPSC 5382. Three hours lecture. Three credit hours.

CPSC 4383 Artificial Intelligence
Prerequisites: CPSC 3371; MATH 1452 and MATH 2310. Introduction to machine intelligence. Emphasis upon different paradigms for problem solving such as various state-space search strategies and other approaches. Exposure to one or more key areas such as robotics, logic programming, machine learning, expert systems, planning, neural networks, natural language processing, reasoning, under uncertainty, etc. Three hours lecture per week. Three credit hours.

CPSC 4384 Computer Networks
Prerequisites: CPSC 3370 and CPSC 3482. Introduction to design and analysis of computer networks. Computer communications architecture and protocols, local and wide area networks, IP networks, bridging and routing, Ethernet, wireless LANs, sockets programming, and distributed applications. Dual-listed in the UALR Graduate Catalog as CPSC 5384. Three credit hours.

CPSC 4387 Distributed Computing
Prerequisites: CPSC 3370. Network-based client/server computing. Topics include TCP/IP, object-oriented technology, distributed objects and their interfaces, JDBC, remote method invocation, CORBA, and web-based software system architecture. Three credit hours.

CPSC 4388 Smart Software Systems
Prerequisite: CPSC 3375, MATH 1452. Study of the concept, design, and implementation of rule-based systems, agent-based systems, reasoning, reasoning under uncertainty; belief systems, explanation systems; knowledge representation, knowledge acquisition, and knowledge discovery; and application of knowledge engineering in web technology. Dual-listed in the UALR Graduate Catalog as CPSC 5388. Three hours lecture per week. Three credit hours.

CPSC 4389 E-commerce: Analysis, Design, and Implementation
Prerequisites: CPSC 3371, 3375. E-commerce site analysis and design. Web-based system architecture, client/server computing, network protocols, software engineering for web based systems, computer networks, web-based databases, script languages (Java, VB), XML, ASP, SQL, and DSN. Three credit hours.

CPSC 4391 Cooperative Education
Prerequisites: major in computer science, CPSC 3391, and consent of department chairperson. Continuation of CPSC 3391. Work experiences to complement and extend the classroom learning experience through the application of theoretical concepts in a professional work environment. A minimum of 200 hours work with a participating employer. The exact number of work hours, activities, and responsibilities are dependent on the nature of the work experience and must be specified in written agreements coordinated with the Office of Cooperative Education. Three credit hours.

CPSC 4392 Capstone Project
Prerequisites: CPSC 3370, CPSC 3371, and CPSC 4373 or IFSC 3360. Capstone course in which student individually design a software system, document and present their conclusions. Students also develop a detailed undergraduate portfolio for a comprehensive review of their undergraduate work. Project work involves the development of design alternatives, development of an appropriate software architecture, and design and test the implemented system. The software design focuses on addressing overall design goals while understanding constraints of cost, etc. Deliverables and schedule are determined by the instructor. Three credit hours.

CPSC 4395, 4495, 4595 Internship
Prerequisites: senior standing in computer science, approval of assignment by advisor. Professional experience related to student’s discipline under supervision of advisor. Sixty hours work per credit hour. Three, four, or five credit hours.

CPSC 4399 Special Topics
Prerequisite: consent of instructor. Advanced topics in areas of current interest in computer science. Refer to the semester schedule for specific topics offered. Dual-listed in the UALR Graduate Catalog as CPSC 5399. Three hours lecture. Three credit hours.

CPSC 4100, 4200, 4300, 4400, 4500 Independent Study
Prerequisites: senior standing, at least 20 hours in computer science, consent of instructor. Designed for students who want to carry out special investigations. Topic and method of procedure must have approval of the supervising faculty member. Dual-listed in the UALR Graduate Catalog at the 5000-level. Sixty hours work per credit hour. One, two, three, four, or five credit hours.