1470 COMPUTER SCIENCE I An introductory course for computer science majors and minors with major emphasis on problem solving and programming. The programming component covers data types, input/output statements, control statements, pointers, subprograms and functions, and structures. Prerequisite: MATH 1390. Fall, spring, summer.
1480 COMPUTER SCIENCE II A continuation of Computer Science I for majors and minors that emphasizes problem solving and programming using dynamic memory management and object-oriented programming (OOP) paradigm. Prerequisites: C or better in CSCI 1470. Fall, spring.
2320 DATA STRUCTURES A required course for majors and minors. The fundamental data structures including sets, lists, trees, and graphs are studied. Various methods of implementing these structures are investigated and analyzed. Prerequisite: CSCI 1480. Fall, spring.
2440 ASSEMBLY LANGUAGE AND COMPUTER ORGANIZATION A required course for majors and minors. Introduction to the organization and design of digital computers with an emphasis on assembly languages, number systems and internal codes, Boolean algebra and the simplification of Boolean functions. Also included are low-level hardware configurations and instruction sets, addressing modes, interrupts, and sequential logic. Prerequisite: CSCI 1480. Fall, spring.
3190 SOCIAL IMPLICATIONS OF TECHNOLOGY A required course for majors that introduces the affects of computer technology on society and individuals, and to the ethics of computer professionals. Topics include privacy, the nature of work, centralization versus decentralization, and the need for human factor analysis in the development of new computer systems. Prerequisites: CSCI 2320 or consent of instructor. Fall, spring.
3330 ALGORITHMS A required course for majors and minors that studies algorithmic development strategies including divide-and-conquer, greedy method, dynamic programming, search and traversal techniques, backtracking, and branch-and-bound. The theory of NP-Hard and NP-Complete problems is introduced. Analysis of algorithms is also included. Prerequisites: CSCI 2320, MATH 2330. Fall or spring.
3345 HUMAN-COMPUTER INTERACTION This course introduces fundamentals of human-computer interaction: human processes, computer processes, design processes, task analysis and evaluation, prototyping, multimedia, and user-centered interface design and development. Prerequisite: CSCI 2320. Fall or spring.
3375 INTERNSHIP IN COMPUTER SCIENCE An elective for majors. The student enrolled in this course will work for a local industry, business, or government entity for approximately 20 hours per week related to computer science for a semester. This course is reserved for upper-division computer science majors. Prerequisites: junior or senior status, and approval by the department. Fall, spring, summer.
3381 OBJECT-ORIENTED SOFTWARE DEVELOPMENT WITH JAVA A required course for majors. This course introduces object-oriented programming design and implementation. It covers the object oriented programming basics, building applets, multimedia, network programming techniques, and multi-thread programming techniques in an object-oriented language. The emphasis of this course is object-oriented programming techniques and network-related programming techniques. Prerequisites: CSCI 2320. Spring or fall.
3385 ARTIFICIAL INTELLIGENCE An elective for majors. The course introduces the elements of artificial intelligence covering knowledge representation and pattern matching, search techniques, natural language processing, logic and inference, machine learning, problem solving, expert systems, and programming in PROLOG/LISP. Prerequisite: CSCI 2320. Spring.
4300 OPERATING SYSTEMS A required course for majors. Introduction to operating systems, historical development, serial batch systems, multiprogramming systems, time-sharing systems, real-time systems, control programs, job control language, job management, task management, data management, interrupt handling, and concepts of telecommunication. Prerequisites: CSCI 2440, 3330. Fall.
4340 INTRODUCTION TO PARALLEL PROGRAMMING An elective course for majors that introduces algorithms, data structures, and techniques of parallel computation. Topics include: common types of parallel hardware, principles of parallel system design, communication topologies, development and testing of parallel programs, design of parallel algorithms, and problems associated with distributed parallelism. Prerequisite: CSCI 2440, 3330. Spring or fall.
4353 INTRODUCTION TO MULTIMEDIA COMPUTING This course introduces the concepts, principles, and the state-of-the-art technologies related to multimedia computing, including graphics, audio, image, video, animation, text, etc. Topics will include multimedia information capture, digitization, compression, network communication, and practical applications. Prerequisite: CSCI 3330. Fall or spring.
4360 SPECIAL TOPICS IN COMPUTER SCIENCE An elective for majors that studies new and advanced topics in computer science. Prerequisite: upper level status and consent of instructor. Fall or spring.
4370 DATA MINING An elective course for majors. This course introduces the basic concepts, principles, and the state-of-the-art technologies for Data Mining including Introduction of Data Mining, Data Preprocessing, Data Warehouse, Association Rules, Classification, and Clustering. Specific applications in financial data and Bioinformatics are included. Prerequisite: CSCI 3360. Fall and spring.