Computer Science (CSCI)

200 Introduction to Computer Science and BASIC (3 - Fall & Spring) Concepts of computer systems, communications, networks, operating systems, systems software and digital media. Beginning programming using Visual Basic. Intended for students proficient in the use of computer applications or students desiring an introduction to programming. Credit may not be received for both CSCI 200 and CSCI 201. Credit does not apply to computer science major or minor requirements.

201 Introduction to Computer Applications (3 - Fall & Spring) Concepts of computer systems and procedures including software applications, input and output, data storage, communications and networks, internet and world wide web, and operating systems and system software. Emphasis on using integrated software tools on the microcomputer which include word processing, spreadsheet, database, presentation graphics, communications, web browsers, electronic mail, personal information management, and multimedia authoring. Credit may not be received for both CSCI 200 and CSCI 201. Credit does not apply to computer science major or minor requirements.

221 Programming Concepts and Problem Solving I (3 - Fall & Spring) Computer history, problem solving algorithms, control structures, representation of data. Introductory programming in the C++ language. Intended for computer science majors.

222 Programming Concepts and Problem Solving II (3 - Fall & Spring) A programming intensive continuation of Comp Sc 221 For computer science majors. Non-computer science majors may be admitted with departmental approval. May be used as one of the programming language requirements for a minor in computer science. Prereq: Grade of C or better in CSCI 221.

226 Intermediate Programming in a Second Language (3 - Spring) Detailed study of programming in a language other than that studied in CSCI 221. Emphasis placed on competent programming in the selected language, understanding the language's main application areas, history, basis for creation, advantages and disadvantages. Prereq: CSCI 221.

230 FORTRAN Programming (3 - As Needed) Concepts of the FORTRAN language including file handling techniques. Prereq: MATH 160, 185, or 251. (Same as previously deleted MATH 230)

231 Computer Programming for Engineers (3 - As Needed) Design and implementation of computer programs for engineering problem solving, algorithm development, basic statistical and numerical methods. Intensive programming in the "C" language. Introduction to program constructs in structured BASIC, FORTRAN, and C++. Coreq: MATH 251.

250 COBOL Programming (3 - Fall) Introduction to Common Business Oriented Language using structured methodology. Problem solving directed toward business applications. Prereq: CSCI 200 or CSCI 201 or CSCI 221 or departmental approval.

260 RPG Programming (2 - Spring) Report Program Generator with applications and programs oriented to commercial fields. Prereq: CSCI 200 or CSCI 201 or CSCI 221 or departmental approval.

290 Special Topics in Computer Science (1-3 - Fall) Lectures and/or laboratory work relating to specialized topics in computer science. Course may be repeated with total credits not to exceed six (6) hours. May be offered on a pass/fail basis. Prereq: Instructor's approval.

301 Discrete Systems (3 - Spring) Logic, sets, relations, functions, Boolean algebra, logic gates, matrices, axioms and proof techniques, induction, graph theory, trees and automata. Prereq: MATH 140 or 160 or 185 or 251. Credit may not be received for both MATH 241 and CSCI 301.

320 Assembler Language and Computer System Organization (3 - Fall) Structure of digital computers, introduction to machine language, number representations, symbolic coding and assembler language, register sets, instruction types, addressing modes, input-output subroutines, segmentation, paging, and introduction to operating systems.. Prereq: CSCI 222.

325 Data Structures (3 - Spring) Detailed study of data structures and their implementations. Strings, lists, queues, stacks, graphs, trees, B-trees, AVL trees, sparse arrays. File structures, recursion, sorting, searching, hashing. Prereq: CSCI 222.

335 Object Oriented Programming (3 - As Needed) Advanced programming using the language C++, data types, pointers, structures, unions, prefix, infix and postfix operators, flow of control, passing parameters, static and automatic variables, recursion, external declarations, and separate compilation, functional programming, the C pre-processor and macros. Creation of software tools and utilities, development of user applications. Prereq: CSCI 222.

340 (540) Numerical Analysis (3 - As Needed) Formulation of numerical problems for solution on a digital computer. Error analysis and control, nonlinear equations, differentiation, integration, systems of equations, differential equations, curve fitting and eigenvalue problems. Prereq: CSCI 221 and MATH 252; CSCI 301 or MATH 310. (Same as MATH 340/540)

350 Advanced COB0L (3 - Spring) Business programming applications using advanced features of COBOL with emphasis on programming style, techniques. and structured programming. Prereq: CSCI 250.

351 Object Oriented System Analysis and Design (3 - Fall) Study of the systems development life cycle system, various types of systems including business and government. Methods of designing systems, data management, input and output design, hardware selection and methods of information processing. Prereq: CSCI 221 or 250.

352 Object Oriented Systems Development (3 - Spring) Practical applications involving an in-depth study of technical issues and design methodologies used in the design of decision support systems. Prereq: CSCI 351.

360 Introduction to Computer Networks (3 - Fall) Fundamentals of Microcomputer connectivity and communications. Local and wide area network basics, networking architecture and standards. Network protocols including TCP/IP. Comparison, installation, and maintenance of Network Operating System. Prereq: CSCI 200 or 201; CSCI 221 or 250.

380 Artificial Intelligence (3 - As Needed) Introduction to artificial intelligence, pattern recognition and classification, fuzzy set logic, natural language user interfaces, learning machines and adaptive systems, object oriented programming inference and rule based systems, arity, expert systems, associative systems, forward and backward chaining backtracking depth first and breadth first searching. Programming in languages appropriate to A.I. Prereq: CSCI 222 and 301.

385 Parallel Computing (3 - As Needed) Introduction to Fundamentals of Parallelism, Parallel computation models which include parallel algorithms and parallel architectures, performance and scalability of parallel systems, parallel algorithms and programming for well known numerical problems. Prereq: CSCI 222 or CSCI 226.

410 (610) Data Base Management Systems (3 - Fall) Fundamentals of data base processing. Network, hierarchical, and relational data bases. Comparison of data base systems. Data base implementation. Prereq: CSCI 222 or CSCI 250.

420 (620) Computer Organization and Architecture (3 - Fall) A study of the organization of modern computer systems, memory organization and management features, virtual memory systems interrupt service, multiprogramming, hardware and software equivalency, RISC and large instruction set machines, logic emulation, variable architectures, multilevel machines, stack and pipeline architectures. Concurrency in computation. The organization of microcomputers, medium and large computer systems. Special architectures. Prereq: CSCI 320 and CSCI 325.

445 (645) Computer Graphics (3 - Fall) Frame buffers, display files, graphics primitives, transformations of two-dimensional spaces, windows, viewports, clipping, covering, transformations of three-dimensional space, parallel and perspective projections, stereoscopic views, hidden line algorithms. Prereq: CSCI 222; CSCI 301 or MATH 241.

458 Decision Support and Expert Systems (3 - As Needed) Introduction to principles of DSS and Expert Systems. Examine different expert systems and expert shells. Development of knowledge bases and expansion of expert shells. Prereq: CSCI 221 or 250.

470 (670) Organization of Programming Languages (3 - Spring) Syntax and basic characteristics of grammars, Backus-Naur form, language constructs, dynamic and static storage allocation, binding time, interpreted versus compiled languages, lexical analysis, parsing, special purpose languages. Prereq: CSCI 320.

475 Compilers, Interpreters, and Language Translators (3 - Fall, Even Numbered Years) Theory of compilable languages, construction of software for compiling, interpreting, and translating computer languages. Study of various types of translators, implementation of a translator for a language. Prereq: CSCI 320 and 325.

485 (685) Computer Operating Systems (3 - Spring) A study of operating systems, processing of l/O and interrupt service, buffering, spooling and memory management services, security and error protection, systems accounting and resource allocation, multiprogramming and multi-processing, inter-process communication, includes the study and use of several operating systems. Prereq: CSCI 320 and CSCI 325.

490 (690) Special Problems (1-3 - As Needed) Individual projects for students exhibiting special interests and abilities in selected areas. Maximum of three hours applicable to minor requirements. Course may be repeated with total credits not to exceed six hours. Prereq: Departmental approval.

495 Senior Seminar Selected Topics: [Title] (1 - Fall) Computer science and information systems, hardware, software. Professional opportunities and issues, employment trends. Students are required to write summary reports and give oral presentations. Graded on a pass/fail basis. Prereq: Senior standing computer science majors.