01303/Computer and Information Sciences

Students must have at least a "C" in the major prerequisite course, in order to continue on to the next major course
 

Lower Level

C055/H095. Computers and Applications (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS. Core: SB.

Prerequisite: First-level Core Science Course.

With the explosion of computer technology, knowledge of computing applications as tools for all disciplines has become a necessary asset. This course will introduce the student to a hardware and software overview, use of the computer as a tool to process information, and ethical and social implications of computing. The laboratory portion of this class will provide students with hands-on experience to supplement the lecture material. Specific applications include word processing, spreadsheets, the resources of the Internet, databases, and presentation software.

C061. Programming in Pascal (4 s.h. 3 hr. lecture, 2 hr. lab) F S. Core: QB.

Prerequisite: First-level Core Mathematics course.

Introduces students to computers and computer programming. Topics covered include the general characteristics of computers, techniques of problem solving and algorithm specifications, and the debugging and testing of computer programs in Pascal. (No credit given to students who have completed CIS C059, 0067, C071, or C081.)

0066. Mathematical Concepts in Computing I (3 s.h.) F S SS.

Prerequisite: strongly recommended one semester of programming (CIS C071).Co-Requisite: Mathematics C075 or C085.

Introduction to the mathematical concepts fundamental to computer science. Topics include number systems, natural numbers, integers, and ratios; set and relations including equivalence, congruence, and order; functions and mappings and Boolean Algebra. Students will also learn formal methods for writing mathematical proofs, including direct and indirect proofs, enumerability, and diagonal proofs, converse and contrapositive, and induction. Additional topics include recursion and recursive algorithms. Applications to computer science will be illustrated. (No credit for students who have completed Mathematics 0141. Students planning to take advanced courses in mathematics should take Mathematics 0141.)

0067. Program Design and Abstraction (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS.

Prerequisite: Mathematics C074 with a "C" or better or two years of high school algebra and one year of trigonometry; strongly recommended one semester of programming (CIS C071).

Introduction to programming methods, software engineering, and procedural and data abstraction. Coverage will include top-down design and modular programming, software development process, module documentation including preconditions and post-conditions, debugging, and testing programs. Data types covered include simple data types, arrays, struts, and strings. Programming techniques include at least one technique for searching and sorting an array and an introduction to file processing. Coverage will include an introduction to the use and implementation of abstract data types as C++ classes. (No credit for students who have completed CIS C081.)

0068. Data Structures (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS.

Prerequisite: CIS 0066 and 0067.

A continuation of CIS 0067. Understanding and use of data abstraction through C++ classes. Understanding and use of the following Abstract Data Types: strings, stacks, queues, linked lists, binary trees, trees. Introduction to expression evaluation and other applications. Introduction to recursion and object-oriented programming in C++ including inheritance.

C071. Computer Programming in C (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS. Core: QB.

Prerequisite: First-Level Core Math Course.

Introduces students to computer and computer programming. Topics covered include the general characteristics of computers, techniques of problem solving, and algorithm specification, and the debugging and testing of computer programs in the C language. (No credit for students who have taken CIS C059, C061, 0067, or 0081.)

0072. Computer Systems and Low-Level Programming (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS.

Prerequisite: CIS 0066 and CIS 0067.

This course introduces computer systems architecture at the level required to understand low-level systems programming. It examines issues of information representation, the form of machine instructions and addressing, the implementation of programming language constructs in terms of machine instructions, the interfaces to peripheral devices. Programming is done in assembly language and in C.

C081. Higher Level Languages Using C & C++ (4 s.h. /3 hr. lecture, 2 hr. lab ) F S SS. Core: QB.

Prerequisite: Mathematics C074 with a C- or better or two years of high school algebra. Strongly recommended: one semester of programming.

Introduction to C++, programming methods, software engineering, and procedural and data abstraction. Coverage will include the C++ programming language, top-down design and modular programming, software development process, module documentation including preconditions and post-conditions, debugging, and testing programs. Data types covered include simple data types, arrays, structs, and C-style strings. Programming techniques include at least one technique for searching and sorting an array and an introduction to file processing. Coverage will include an introduction to the use of abstract types as C++ classes, including the standard C++ String class.

(No credit for students who have taken CIS 0067.)

Note: For Information Science and Technology Track

0083. Object-Oriented Programming (4 s.h. /3 hr. lecture, 2 hr. lab) F S SS.

Prerequisite: CIS C081.

A continuation of CIS C081. Consolidation and extension of C++ programming skills, including recursion, dynamic memory allocation, and the creation and use of C++ classes for data abstraction. Polymorphism in C++ including polymorphism by "cut and paste," by composition, by use of standard template classes, and an introduction to inheritance. The above ideas will be presented in the context of understanding, implementation, and use of the following Abstract Data Types: strings, stacks, queues, linked lists, binary trees, binary search trees. In addition, at least one N Log(N) sorting technique, and binary searching will be introduced and their complexities discussed using big-O notation. Application of these techniques and data abstractions to such problems as expression evaluation or other problems of similar complexity. (No credit for students who have taken CIS 0068.)

Note: For Information Science and Technology Track

Upper Level

0109. Database and File Management Systems (4 s.h. ./3 hr. lecture, 2 hr. lab) F S.

(Formerly: Formerly CIS 0130.)

Prerequisite: CIS C081.Co-Requisite: CIS 0083.

This is an introductory course in database and file management systems. It will help students to develop an understanding of the role of database and file management systems in developing computer-based solutions to a variety of domain problems. At the completion of this course students should: have an appreciation of the role of database and file management systems; be familiar with the data modeling concepts commonly used in database design; be familiar with a variety of file structures and be able to perform basic operations on these file structures; be able to create and modify relational databases, and pose complex queries of relational databases; be familiar with a broad range of data management issues including data integrity and security; understand development of database applications and implementation of database concepts; develop a perspective on emerging issues in database design, development and implementation.

Note: For Information Science and Technology Track

0153. External File Structures (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0068 or 0083.

Illustration of file processing techniques. Sequential access for batch processing; direct access for on-line processing/relative and indexed; sequential file structures. Secondary keys and other retrieval schema for random access. Currently uses the programming language COBOL.

0155/H197. Fluency in Information Technology (4 s.h. ./3 hr. lecture, 2 hr. lab)

Prerequisite: CIS C055 or H095 or equivalent experience or permission of instructor.

Information Technology (IT) is central to modern society. This second-level course provides a strong foundation in IT that is embedded in hands-on use of the technology in different complex, and information rich environments. Case studies developed by scientists who use computers heavily in their research will form the nucleus of the course, which aims to bring students beyond the level of an introductory "computer literacy" course.

Note: This course yields no credit towards the CIS major

0166. Mathematical Concepts in Computing II (3 s.h.) F S SS.

Prerequisite: CIS 0067 and 0066.

Concepts include combinations, permutations, binomial and multinomial coefficients, recurrence relations, big 0 notation, finite probability, introduction to predicate and propositional calculus and program verification, and introduction to trees and graphs. Applications to computer science will be illustrated. May not be taken for mathematics credit. (No credit for students who have completed Math 0205.)

0203. Introduction to Artificial Intelligence (4 s.h. 3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0068, 0066 or permission of the instructor.

Introduction to the issues and ideas of artificial intelligence using LISP and PROLOG. Knowledge of representation, search, problem solving, learning and mathematical reasoning.

0207. Introduction to Systems Programming and Operating Systems (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0068 and 0072.

This course is concept-oriented, not specialized to a particular operating system, and not trying to teach how to code the kernel of an operating system. After reviewing a number of system programming issues, it examines the basic components of modern operating systems in terms of their function, domain, design, principles and implementation techniques, use and impact on systems programming. It describes and uses in programming homework two modern operating systems (UNIX and Windows NT). Design and implementation of a number of concurrent programs is examined. Hardware support for operating system functions is discussed. Performance issues are considered through the course.

0209. Component-Based Software Development (4 s.h. /3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0083 and CIS 0109.

A component is an executable unit of code that provides physical black-box encapsulation of related services. Its services can only be accessed through a consistent, published interface that includes an interaction standard. A component must be capable of being connected to other components through a communication's interface to form a larger group. Components range from user-interface icons and controls, like menu bars and hypertext navigators, to complete software products, like word processors. Students learn to design and develop components to form the underlying fabric of software solutions.

Note: For Information Science and Technology Track.

0211. Automata, Computability, and Languages (3 s.h.) S.

Prerequisite: CIS 0068, 0066, and 0072 or permission of instructor.

Finite automata, their limitations and capabilities, and Kleen's theorem or regular expressions. Other types of automata and their events. Turing machine and computability, computable functions, and halting problems. Introduction to context-free languages. Syntactical analysis of such languages with application to translation.

Note: Offered alternate Springs starting Spring 01

0217. Computer Architecture (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0068, 0066, and 0072.

Concepts include levels of analysis: structure level, program level, register transfer level, logic design level, and circuit level; switching circuit technologies; central processor unit, instruction set architectures, control unit, and data paths ; main memory organizations; arithmetic/logic unit, integer arithmetic, floating-point arithmetic, bus structures including single-bus and multi-bus, bus control, and direct memory access.

0220. Computer Graphics and Image Processing (4 s.h. 3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0068, 0066, and 0072.

An analysis of the techniques used in computer manipulation of two- and three-dimensional images. Hardware and software for displaying images, two- and three-dimensional transformations, the hidden line problem, picture processing, character recognition, and two-dimensional filtering.

0223. Data Structures and Algorithms (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0068 and 0166. CIS 0166 may be taken concurrently.

Program style organization and design with continued emphasis on the use of abstract data types and the object-oriented design paradigm. Comparative analysis of searching and sorting algorithms and data structures. Data structures include strings, heaps, priority queues, binary and general trees, AVL trees, B-trees, and graphs. Sorting algorithms include insertion sort, heapsort, mergesort, and quicksort. Searching algorithms include binary search, hashing, breadth-first search and depth-first sear ch. Program structures include polymorphism, virtual functions, class derivatives and class libraries. Students will gain experience working in a group on at least one moderate-size project.

0230. Operating Systems and Networking (4 s.h. /3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0083 and CIS 0109.

This course provides an introduction to computer system architecture, operating systems concepts, and network organization, structure, and management.

Note: For Information Science and Technology Track.

0242. Discrete Structures (3 s.h.)

Prerequisite: CIS 0068, 0066, and 0072.

Introduction to algebraic structures fundamental to various areas of computer science. Graphs, planar graphs, algorithms on graphs and their analysis, sequential machines and their minimization, semi-groups, and groups and their application to computer science.

W281. Information Systems Analysis and Design (4 s.h. 3 hr. lecture, 2 hr. ) F S. Core: WI.

(Formerly: Formerly CIS W201.)

Prerequisite: CIS 0209 and 0230.

Covers the first two major phases of information systems development: analysis and design. Techniques covered include: user interviewing, data collection and analysis, charting, input, output, process and file design and complete system specification. Students working on information system projects use a structured approach; and well-written documentation is produced which is communicated to users through oral and written reports.

Note: For Information Science and Technology Track.

W301. Information Systems Implementation (4 s.h. /3 hr. lecture, 2 hr. lab) F S SS. Core: WI.

Prerequisite: CIS W281.

This course is a continuation of CIS W281. Information Systems Analysis and Design. It covers the third major phase of information systems development: implementation. Techniques of module design, program development, and program testing. Students work in groups going through the activities of engineering a system design developed in CIS W281, writing the program and constructing the procedures to realize the design, and installing the programmed system.

Note: For Information Science and Technology Track.

0307. Introduction to Distributed Systems and Networks (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS 0207 and 0223.

Introduction to the concepts that are fundamental for understanding distributed systems and the technical infrastructure that makes them possible. Lectures will mostly be expository and conceptual. Directed closed laboratories and home assignments will be applied and involve the solution of distributed programming problems.

0308. Distributed Components Development (4 s.h. /3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0207 and 0223.

The objective of this course is to teach the principles and development of multi-tiered distributed systems. It is introduced with a basic review of internet communications and the architecture of client and server sites, including the functions of and relationships among the browser, web server, operating and file systems, middle-ware, database server, and application servers. Concepts involving various types of client/server side processing and remote connectivity methodologies are reviewed, including scripting languages, HTML, Dynamic HTML, XML, ASP, CGI, and DCOM. About 30% of the course is devoted to the above-described theory. The remainder of the course will be devoted to putting some of these principles and techniques into practice using the DCOM technology. A series of progressively sophisticated problems will be studied and programmed in the lab.

0309. Net-Centric Computing (4 s.h. /3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0209 and 0230.

The objective of this course is to teach the principles and development of multi-tiered distributed systems. It is introduced with a basic review of internet communications and the architecture of client and server sites, including the functions of and relationships among the browser, web server, operating and file systems, middle-ware, database server, and application servers. Concepts involving various types of client/server side processing and remote connectivity methodologies are reviewed, including scripting languages, HTML, Dynamic HTML, XML, ASP, CGI, and DCOM. About 30% of the course is devoted to the above-described theory. The remainder of the course will be devoted to putting some of these principles and techniques into practice using the DCOM technology. A series of progressively sophisticated problems will be studied and programmed in the lab.

Note: For Information Science and Technology Track.

0320. Computer Networks and Communications (4 s.h. 3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0207 and 0223.

Introduction to computer networks and communications. Local and wide area networks. Network topology and routing. Internet and ISO protocols. Applications including remote procedure calls, remote logon, and file transfer. Network operating systems.

0330. Client/Server Computing (4 s.h. /3 hr. lecture, 2 hr. lab)

Prerequisite: CIS 0209 and 0230.

This course covers the operation of computer networks and internets. It provides the background to enable students to evaluate alternative approaches to client-server computing and n-tier software development. To accomplish this the course includes communications technology, computer network technology internetworking using the TCP/IP protocol suite, client-server protocols, client-server computing, network program component models as well as issues involving security, privacy, authentication, intellectual property rights, and social changes related to computer networking.

Note: For Information Science and Technology Track

0331. Principles of Database Systems (4 s.h. 3 hr. lecture, 2 hr. lab) F S SS.

Prerequisite: CIS 0207 and 0223.

This course will cover the fundamentals of database systems essential for information management. It will provide an understanding of data modeling, database design, and database implementation. The laboratory component will utilize common database packages and the SQL language.

W338. Software Engineering (4 s.h. 3 hr. lecture, 2 hr. lab) F S. Core: WI.

Prerequisite: CIS 0207 and CIS 0223 (one of which may be taken concurrently with CIS 338).

This course presents the general principles that serve as the foundation of software engineering. The student is introduced to the broader context of system analysis, learns how total system requirements are analyzed and how decisions are made to a llocate various functions among hardware, software, and people. The software lifecycle is examined. The course presents some professional issues, including accountability of the software engineer in complex systems and legal issues and laws that relate to software. Introduces database concepts and graphical user interfaces.

0339. Projects in Computer Science (4 s.h. 3 hr. lecture, 2 hr. lab) F S.

Prerequisite: CIS W338 and senior standing.

Team-oriented design and implementation of large programming project. Students will propose topics for review and acceptance early in the semester. Students are encouraged to use the department's list of project suggestions as case studies in CIS W338 and to perform initial specification and analysis of their projects in CIS W338. Students will provide written documentation of their completed projects and will demonstrate the operation of their completed projects in an oral presentation. Projects will be solicited from industry and other departments at the University.

0342. Network Programming Using Java

Prerequisite: CIS 0209 and CIS 0230.

Internet development makes extensive use of Java. Java enables the autonomous execution of programs. Consequently, Java programs form the backbone of the majority of internet applications. The aim of this course is to develop Java programming skills to allow students to develop internet applications.

Note: For Information Science and Technology Track.

0350. Seminar on Topics in Computer Science (3 - 4 s.h.) SS.

Prerequisite: Permission of instructor.

Current problems in computer science.

0397/0398. Independent Study (1 - 6 s.h.) F S SS.

Prerequisite: Consultation with faculty member and approval of department chairperson.

Readings and/or papers under supervision of a faculty member.