Department of Computer Science

Undergraduate Course Descriptions

1150 Computer Orientation. Three credits. A general introduction to computers with an emphasis on personal computing, database, word processing, presentation graphics, spreadsheets, and Internet tools. Does not count for Computer Science major or minor.

1160 Multimedia Computation. Four credits. Prerequisite: sufficient background in algebra. Computer science concepts and computer software development using a multimedia approach to program development. Algorithms, programming, and documentation of media computation problems including modification, editing and creation of picture and sound files. Computer science hardware and software terminology. This course counts toward a computer science major or minor upon successful completion of the course with a grade of A or B and approval by the Computer Science Chairperson.

1170 Computer Science I. Four credits. Prerequisite: Sufficient background in algebra and trigonometry. The first of a two-semester sequence using a high-level language; language constructs and simple data structures such as arrays and strings. Emphasis on problem solving using the language and principles of structured software development. Three lectures and one two-hour laboratory.

2170 Computer Science II. Four credits. Prerequisite: CSCI 1170 or equivalent. A continuation of CSCI 1170. Topics include introductory object-oriented programming techniques, software engineering principles, records, recursion, pointers, stacks and queues, linked lists, trees, and sorting and searching. Three lectures and one two-hour laboratory.

3031-3038 A-Z Computer Languages. One to three credits. Prerequisite: CSCI 2170 or consent of instructor. An opportunity for a Computer Science major or minor to gain experience and training in a secondary language. Covers the syntax, advantages, disadvantages, limitations, and selected applications of a language. Credit will not be given toward a computer science major or minor if credit has been received for the same language in another course. May be repeated for up to three hours credit in the major or minor.
3031 C Language. Two credits.
3032 FORTRAN. Two credits.
3033 Java. Three credits.
3034 Pascal. Three credits.
3035 Smalltalk. Two credits.
3036 UNIX C-Shell Programming. One credit.
3037 Visual Programming. Three credits.
3038 Python Programming. Three credits.

3080 Discrete Structures. Three credits. Prerequisites: CSCI 1170 and MATH 1910 or consent of instructor. Topics include formal logic, proof techniques, matrices, graphs, formal grammars, finite state machines, Turing machines, and binary coding schemes.

3110 Advanced Data Structures. Three credits. Prerequisite: CSCI 2170; corequisite: CSCI 3080. Topics include additional object-oriented programming techniques, algorithm design, analysis of algorithms, advanced tree structures, indexing techniques, internal and external sorting, graphs, and file organizations.

3130 Introduction to Computer Architecture. Four credits. Prerequisite: CSCI 3160. Organization and basic architecture of computer systems. Topics include hardware components of digital computers, microprogramming, and memory management. Laboratory exercises involve logical, functional properties of components from gates to microprocessors. Three lectures and one two-hour laboratory.

3150 Technology Tools. One to three credits. Prerequisite: CSCI 1000 or equivalent or permission of instructor. The use, history, and impact of technology tools. Hands-on laboratory exercises. Does not count for Computer Science major or minor.

3160 Introduction to Assembly Language. Three credits. Prerequisite: CSCI 1170 or equivalent. Computer architecture and assembly language. Major emphasis on addressing techniques, macros, and program segmentation and linkage.

3180 Introduction to Numerical Analysis. Three credits. (Same as MATH 3180). Prerequisites: MATH 1920 and CSCI 1160. Topics include series approximation, finite differences interpolation, summation, numerical differentiation and integration, iteration, curve fitting, systems of equations and matrices, and error analysis.

3210 Theory of Programming Languages. Three credits. Prerequisite: CSCI 2170 and COMM 2200; corequisite: CSCI 3080. Syntax and theory of multiple languages covered with emphasis on binding times, parsers, grammars, finite automata, regular expressions, type checking and equivalence, scope of variables, exception handling, parameter passing, and storage management.

3250 Operating Systems. Three credits. Prerequisites: CSCI 2170 and 3160. Concepts and facilities of an operating system. Major concepts in memory, processor, device, and information management are covered as well as interrelationships between the operating system and the architecture of the computer system.

3420 Social, Ethical, and Legal Implications of Computing. Two credits. Prerequisites: A three-hour course in computing, COMM 2200 and junior standing. Introduction to the impact of computers on society and the ethical and legal issues confronting computer users and professionals. Does not count toward a minor in Computer Science.

4110 Advanced Commercial EDP. Three credits. Prerequisite: CSCI 2170 or equivalent. File management in business applications. Structuring and identification of files stressed along with software engineering principles. COBOL language used as the implementation tool.

4130 Microprocessor Operation and Control. Three credits. Prerequisite: CSCI 2170. Digital systems based around microprocessors and microcontrollers; including their architecture, logic, memory design, input/output, timing and interfacing.

4160 Compiler Design and Software Development. Three credits. Prerequisites: CSCI 3080, 3110 and 3160. The various phases of a compiler along with grammars, finite automata, regular expressions, LR parsing, error recovery, backward and forward flow analysis and code optimization. A term project consisting of the design and construction of a functional compiler required.

4250 Computer Graphics. Three credits. Prerequisite: CSCI 2170 and 3080 or consent of instructor. Topics include vector drawing displays, raster scan displays, input devices and techniques, graphics software, transformations, projections, interpolation, and approximation.

4280 Undergraduate Research. One to four credits. Prerequisite: Permission of instructor and Department. Independent investigation of a selected research problem under the guidance of a faculty member resulting in an oral and written report of results. Does not count toward a minor in Computer Science. May be repeated for a maximum of 4 credits. A maximum of three credits in the major may come from CSCI 3970, 4280, 4600, and 4910.

4300 Data Communication and Networks. Three credits. Prerequisite: CSCI 3250. Computer network architectures, protocol hierarchies, and the open systems interconnection model. Modeling, analysis, design, and management of hardware and software on a computer network.

4330 Parallel Processing Concepts. Three credits. Prerequisites: CSCI 3130 or 3250, and a working knowledge of either C or C++. Basic concepts in parallel processing and programming in a parallel environment. Topics include classification of parallel architectures, study of actual parallel architectures, design and implementation of parallel programs, parallel software engineering.

4350 Introduction to Artificial Intelligence. Three credits. Prerequisite: CSCI 3110 and 3080 or equivalent. Principles include search strategies, knowledge representation, reasoning, and machine learning. Applications include expert systems and natural language understanding.

4360 Intelligent Robot Systems. Three credits. Prerequisites: CSCI 2170 and 3080. Principles and applications of intelligent mobile robotics. Various architectures used in the basic AI robotics development paradigms and basic techniques used for robot navigation. Strong emphasis on hands-on mobile robot design, construction, programming, and experimentation using a variety of robot building platforms.

4410 Web Technologies. Three credits. Prerequisite: CSCI 3080 and CSCI 3110. An intensive introduction into current Web technologies including basic HTML, tools for Web-page design, XML, client-side methods, and server-side methods. Students will be required to implement several web-based projects.

4560 Data Base Management Systems. Three credits. Prerequisite: CSCI 3080 and 3110. The relational and object models of database design along with relational algebras, data independence, functional dependencies, inference rules, normal forms, schema design, modeling languages, query languages, and current literature.

4600 Independent Study in Computer Science. One to six credits. Prerequisites: Senior standing and consent of instructor. Students wishing to enroll must submit a written course/topic proposal to the department prior to the semester in which CSCI 4600 is taken. Proposal must be approved prior to taking the course. At the course conclusion, each enrollee must submit a written report to the department. May count up to 3 hours toward Computer Science major. May not be used in conjunction with CSCI 3970.

4700 Software Engineering. Three credits. Prerequisite: CSCI 3080, 3110 and COMM 2200. Consists of a theoretical component and a practical component. Topics include the history of software engineering, software development paradigms and life cycles, and computer-aided software engineering (CASE). Team project developed in parallel with the theory.

4800 Software Testing. Three credits. Prerequisites: CSCI 2170 and 3080. Integrates theory and applications of software testing techniques. Provides actual hands-on testing experience. Considers multiple testing paradigms.

4850 Neural Nets. Three credits. Prerequisite: CSCI 3080. Various neural net architectures, theory, and applications including models such as Perceptron, back propagation, Kohonen, ART, and associative memory. Learning and conditioning methods also studied.

4900 Selected Topics in Computer Science. Three credits. Prerequisite: CSCI 2170. Advanced topics in computer science to be selected and announced at time of class scheduling. May be repeated for up to six credits total.

4910 Internship. One to six credits. Prerequisites: CSCI 2170 and 3160. Must be at least a junior with a minimum overall average of 2.75 and 3.00 in computer science. Employment experience in a computer-related function in a firm, governmental agency, etc. Must be approved by the department.