Skip to the content

Kansas State University

  1. K-State Home >
  2. Academics >
  3. Undergraduate Catalog 2006-2008 >
  4. Engineering >
  5. Computing and Information Sciences

Computing and Information Sciences

Virgil E. Wallentine, Head

Professors Gustafson, Hankley, Mizuno, Schmidt, Singh, Unger, and Wallentine; Associate Professors Andresen, Banerjee, Hatcliff, Howell, Neilsen, and Stoughton; Assistant Professors Amtoft, DeLoach, Hsu, and Robby; Instructors Shea and Thornton; Emeriti: Professor Van Swaay, Associate Professors Bleyberg, Calhoun; Instructor Campbell.

E-mail: office@cis.ksu.edu

www.cis.ksu.edu

The creation and use of the best possible hardware and software is, broadly speaking, the field of computer science.

Two curricula, computer science and information systems, are offered by the Department of Computing and Information Sciences. Many other fields require a minor emphasis in computer science, and students working toward a dual degree (one in computer science and one in some other field) are common.

The department maintains state-of-the-art computing and networking laboratories. Large-computer facilities are provided by Computing and Network Services. Some students choose to own or share personal computers because of the convenience and learning efficiency of personal interactive computing.

Students may enroll in CIS courses only if they have earned a grade of C or better for each prerequisite to those courses.

Computer science curriculum

The BS in computer science is accredited by the Computer Science Accreditation Commission of the Computing Sciences Accreditation Board, a specialized accrediting body recognized by the Council on Post-secondary Accreditation and the U.S. Department of Education.

The computer science curriculum emphasizes a broad foundation of computer organization, programming languages, software engineering, distributed computing systems, data systems, algorithms, data structures, programming systems and environments, and mathematics, together with electives that focus on some aspect or application of computers. The computer science curriculum is recommended for students planning graduate studies in computing.

Technical electives consist of a set of computer science courses at the 500 level or higher that permit students to concentrate on an area of technical expertise. Common technical areas include: software engineering, which involves management and development of large software systems; operating systems, which consists of the supervisory software that controls the operation of a computer; theoretical computer science; computer systems architecture, which involves design of centralized and distributed computer systems; programming languages and their compilers; data systems; and knowledge engineering (artificial intelligence).

A person seeking a bachelor of science degree in computer science must fulfill the following requirements:

Bachelor of science in computer science

124 hours required for graduation

Accredited by the Computing Accreditation Commission of ABET, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012. 410-347-7700

Freshman year

Fall semester

CIS 015Undergraduate Seminar
CIS 200Fundamentals of Software Design and Implementation4
MATH 220Analytic Geometry and Calculus I4
ENGL 100Expository Writing I3
SPCH 105Public Speaking IA2
or
SPCH 106Public Speaking I3
Free elective1-2
15
 
Spring semester
CIS 300Data and Program Structures3
CIS 301Logical Foundations of Programming3
MATH 221Analytic Geometry and Calculus II4
ECON 110Principles of Macroeconomics3
Humanities/social science elective (first of five)3
16
 
Sophomore year
Fall semester
CIS 308C/C++ Language Laboratory1
CIS 501Software Architecture and Design3
EECE 241Introduction to Computer Engineering3
MATH 551Applied Matrix Theory3
ENGL 200Expository Writing II3
Natural science elective with lab (first of four)4
17
 
Spring semester
CIS 450Computer Architecture and Organization3
CIS 505Programming Languages3
DEN 325Introduction to Personal and Professional Development1
MATH 510Discrete Mathematics3
Humanities/social science elective (second of five)3
Free elective3
16
 
Junior year
Fall semester
CIS 520Operating Systems I3
CIS 575Introduction to Algorithm Analysis3
MATH 655Elementary Numerical Analysis3
or
CIS 580Numerical Computing3
Natural science elective with lab (second of four)4
Humanities/social science elective (third of five)3
16
 
Spring semester
CIS 415Computers and Society1
CIS 560Database System Concepts3
ENGL 516Written Communications for the Sciences3
Technical elective (first of three)3
Humanities/social science elective (fourth of five)3
Natural science elective with lab (third of four)3
16
 
Senior year
Fall semester
CIS 540Software Engineering Project I3
CIS 570Introduction to Formal Language Theory3
Technical elective (second of three)3
Natural science elective (fourth of four)3
Humanities/social science elective (fifth of five)3
15
 
Spring semester
CIS 497Senior Seminar1
CIS 541Software Engineering Project II3
STAT 510Introductory Probability and Statistics I3
Technical elective (third of three)3
Free elective3
13
 
A grade of C or better is required for all graded courses listed by specific course number above.
 
All students new to the CIS department must complete CIS 015. Natural science courses must have departmental approval.
 
Humanities/social science electives must be taken from the list approved by the College of Engineering and must include 6 hours selected from the following departments: English, history, modern languages, and philosophy (except 492).
 
A free elective is any 100 or higher course, excluding courses listed as a prerequisite to a required course.
 
Required courses may not be taken under the A/Pass/F option.
 

Information systems curriculum

The information systems curriculum emphasizes meeting the information needs of business and commerce. The curriculum closely follows programs designed by the Association for Computing Machinery and the Data Processing Management Association.

Five specializations are available, each designed to develop additional skills supportive of needs of the industry. These specializations are information systems analyst/designer (analyzes information needs, designs, and maintains information systems, manages system projects), database manager (designs, uses, maintains, and manages database systems), management information systems specialist (defines organization requirements, acts as a management-technical communication channel, evaluates information systems, manages analyst/programmers), application programmer (designs detail logic, codes, verifies, documents programs and systems), and communications analyst (designs and implements distributed information systems, specifies and designs interface to the communication system.)

A person seeking a bachelor of science degree in information systems must fulfill the following requirements:

Bachelor of science in information systems

124 hours required for graduation
 
Freshman year
Fall semester
CIS 015Undergraduate Seminar
CIS 200Fundamentals of Software Design and Implementation4
MATH 205General Calculus and Linear Algebra3
ENGL 100Expository Writing I3
Humanities/social science elective (first of six)3
13
 
Spring semester
CIS 300Data and Program Structures3
CIS 301Logical Foundations of Programming3
MATH 312Finite Applications of Mathematics3
ECON 110Principles of Macroeconomics3
Humanities/social science elective (second of six)3
15
 
Sophomore year
Fall semester
CIS 308C/C++ Language Laboratory1
CIS 501Software Architecture and Design3
EECE 241Introduction to Computer Engineering3
ENGL 200Expository Writing II3
SPCH 105Public Speaking IA2
or
SPCH 106Public Speaking I3
Humanities/social science elective (third of six)3
15-16
 
Spring semester
CIS 450Computer Architecture and Organization3
DEN 325Introduction to Personal and Professional Development1
STAT 320Elements of Statistics3
Technical elective3
Natural science elective with lab (first of four)4
Free elective3
17
 
Junior year
Fall semester
CIS 362Introduction to Business Programming3
CIS 520Operating Systems I3
ENGL 516Written Communications for the Sciences3
Natural science elective (second of four)3
Free elective3
15
 
Spring semester
CIS 415Computers and Society1
CIS 462Information Systems in Organization3
CIS 560Database System Concepts3
Technical elective3
Natural science elective (third of four)4
Humanities/social science elective (fourth of six)3
17
 
Senior year
Fall semester
CIS 525Telecommunications and Data Communications Systems3
CIS 540Software Engineering Project I3
Technical elective3
Natural science elective (fourth of four)3
Humanities/social science elective (fifth of six)3
15
 
Spring semester
CIS 497Senior Seminar1
CIS 541Software Engineering Project II3
Technical elective3
Humanities/social science elective (sixth of six)3
Free electives6-7
16-17
 
A grade of C or better is required for all graded courses listed by specific course number above.
 
All students new to the CIS department must complete CIS 015.
 
Humanities/social science electives must be taken from a list approved by the College of Engineering and must include 9 hours from at least two of the following departments: English, history, modern languages, and philosophy (except 492).
 
A free elective is any 100- or higher-level course, excluding courses listed as a prerequisite to a required course.
 
Required courses may not be taken under the A/Pass/F option.
 

Computer science courses

Undergraduate credit

CIS 015. Undergraduate Seminar. (0) I, II. Presentation of professional problems and practices by students, faculty, and industry professionals associated with computing and information sciences. Required of all undergraduate students new to the department. One hour lec. per week.

CIS 101. Introduction to Information Technology. (1) I, II, S. Introduction to microcomputer hardware components and operating system software; Windows as a graphical user interface and disk/file management tool; Internet, including World Wide Web and home pages, e-mail, telenet, and ftp. One hour lec., two hours scheduled laboratory, and two hours unscheduled open laboratory each week. Course meets in one contiguous block of four weeks.

CIS 102. Introduction to Spreadsheet Applications. (1) I, II, S. Designing, building, and modifying spreadsheets. Addressing techniques and formatting. Use of formulas and functions. Spreadsheets as management and decision tools. Charting of data. One hour lec., two hours scheduled laboratory, and two hours unscheduled open laboratory each week. Course meets in one contiguous block of four weeks.

CIS 103. Introduction to Database Applications. (1) I. II, S. Design, create, modify, and maintain relational databases. Create relationships. Add and modify data. Search and query database. Design and create screen forms and reports. One hour lec., two hours scheduled lab, and two hours unscheduled open lab each week. Course meets in one contiguous block of four weeks.

CIS 104. Introduction to Word Processing Applications. (1) I. II, S. Basic features of word processing. Create and edit a document. View, format, and customize document. Revise, update, and rearrange text. Add graphics. Support features. Merge documents. One hour lec., two hours scheduled lab, and two hours scheduled open lab each week. Course meets in one contiguous block of four weeks.

CIS 105. Introduction to Computer Programming. (1) I, II, S. An introduction to computer problem solving; basic programming logic; algorithms; control structures; and data structures. The focus is on the control flow of programming with an elementary introduction to object-oriented design. Upon successful completion of the course, students should be able to write simple computer programs. Consists of one hour lec. and one hour rec. per week for 8 weeks.

CIS 111. Fundamentals of Computer Programming. (3) I, II. Introduction to object-oriented programming. Principles and applications of programming fundamentals: state, control, data structures, methods, objects, and packages. Programming projects. Two hours lec., two hours lab per week. Pr.: MATH 100.

CIS 112. Advanced Personal Computing. (3) Advanced features of application software for personal computers, including batch files, configuration and maintenance of hardware and software, macros for application software, and sharing of data and programs. Individualized problems. Two hours lec. and four hours lab a week. Pr.: B or better in CIS 101 or permission of instructor.

CIS 190. Undergraduate Seminar in Computing and Information Sciences. (1-3) I. Topics of special interest in computing and information sciences.

CIS 200. Fundamentals of Software Design and Implementation. (4) I, II. Introduction to elementary software architectures and object-based program design. Library reuse, especially for implementing graphical user interfaces. Principles and applications of programming's fundamental elements: state, control, data structures, methods, objects, and packages. Programming projects. Four hours lec., one hour lab per week. Pr.: MATH 100 and either CIS 105, CIS 111, AP computer science credit, or equivalent experience.

CIS 209. C Programming for Engineers. (3) I, II, S. Application of computers to engineering problems. Abstraction and problem solving; algorithms; control structures; input/output; functions; arrays and array processing. Two hours lec., two hours lab each week. Pr .: MATH 220.

CIS 300. Data and Program Structures. (3) I, II. A study of common data and program structures together with associated algorithms. Topics include interfaces, design patterns, arrays, stacks, queues, lists, trees, hash tables, recursion, binary search, and tree traversals. Experience with both use and implementation of these structures and algorithms using a modern programming language. Discussion of tradeoffs involving performance and software maintainability. Pr.: CIS 200.

CIS 301. Logical Foundations of Programming. (3) I, II. Logical formalisms used to model and reason about computer systems. Propositional and predicate logic: syntax, semantics, and proof theory; soundness and completeness issues. Mathematical induction and inductive definitions. Program verification: invariants and program logics. Verification of reactive systems: description languages, specification logics, and model checking tools. Pr.: CIS 200.

CIS 308. C/C++ Language Laboratory. (1) I, II. Fundamentals of programming in C and C++; applications. Three hours lab a week. Pr.: CIS 300.

CIS 362. Introduction to Business Programming. (3) I. An introduction to basic business programming techniques including file manipulation operations and sorting. The COBOL language will be used as an implementation tool. Pr.: CIS 200.

CIS 397. Honors Seminar in Computer Science. (1-3).

University General Education courseCIS 411. Global Information System. (3) Structure of large computer networks; information available via networks; databases, news groups, list servers, and hyper media. Handling of text, numeric, sound, and visual information. Application such as catalogs, distributed group work, and remote teaching. Issues of ethics, economics, and utility in use of networks; future technologies. Pr.: CIS 101 (understanding of use of personal computers and software).

CIS 415. Computers and Society. (1) II. A study of the impact of computers and associated technologies on society, including such topics as ethics of computer use, computer fraud, protection of privacy; legal, moral, and public policy-making responsibility of computer professionals. Pr.: CIS 300.

CIS 450. Computer Architecture and Organization. (3) I, II. Introduction to modern computer architectures: register transfer abstraction, addressing modes, basic operations (data transfer, arithmetic/logic, and control operations). Understanding relationships of higher-level language constructs to corresponding assembly instruction sequences generated by compilers. Relationships studied include storage classes to memory organization and function invocations to activation records. Introduction to interrupts and low-level I/O operations. Pr.: EECE 241 and CIS 308.

CIS 462. Information Systems in Organizations. (3) II. Role of information systems in organizations, representation of systems structures, decision processes, system evaluation, information system applications including file structures, and using a high-level language in a system study. Pr: CIS 362.

CIS 490. Special Topics in Computer Science. (2-4) Current topics in computer science. Pr.: Varies with the announced topic.

CIS 497. Senior Seminar. (1) II. The in-depth study of a specific computing technology and its impact on society. Students will do background study on both the computing technology and how the specific computing technology enables or impacts a specific societal problem. Students will present their results in both written and oral communications. Pr.: CIS 415.

CIS 499. Honors Research/Thesis. (2-4) Individual research problem selected with approval of faculty advisor. Open to students in the College of Engineering honors program and to seniors in the College of Arts and Sciences honors program. A report/thesis is presented orally and in writing during the last semester.

CIS 501. Software Architecture and Design. (3) I, II. Principles and patterns for design and structure of software, development of object-oriented models, examples of software architecture. Pr.: CIS 300.

CIS 505. Introduction to Programming Languages. (3) I, II. History; programming language concepts including type, scope, and extent, abstraction mechanisms and control; programming paradigms, including one or more of logic, functional, and object-oriented programming, and programming languages supporting the selected paradigms; interpreters, compilers, and virtual machines for the selected languages, storage management and garbage collection; type checking and type inference. Pr.: CIS 300 and 301.

CIS 520. Operating Systems I. (3) I, II. Basic operating systems concepts and services: interrupt processing, process, concurrency, deadlock, resource scheduling and system structure; resource management: real and virtual storage, input/output systems, disk scheduling and file systems; design and construction of concurrent programs. Pr.: CIS 450 or EECE 431; and CIS 308 and 501.

CIS 521. Real-Time Programming Laboratory. (3) I. Project-oriented introduction to asynchronous processes and related system software; device drivers, event-driven operations, hierarchical and time-sliced process scheduling, spooling operations, interjob and intermachine communications. Project will be built on a single-use environment. Conc.: CIS 520.

CIS 522. Introduction to Data Structures. (1) II. Introduction to basic data structures such as stacks, queues, lists, and priority queues, and algorithmic techniques for sorting, searching, and hashing. Emphasis on modularity and reuse. Introduction to the concept of object-oriented design and interface specifications. Not available to students with credit for CIS 300. Three hours rec. a week. Course meets in one contiguous block of five weeks. Pr.: C or C++ programming.

CIS 523. Introduction to Concurrent Programming. (1) II. Introduction to concurrent programming techniques based on message passing primitives (send/receive) and shared memory (semaphore-based P/V operations and monitor-based wait/signal operations). Not available to students with credit for CIS 520. Three hours rec. a week. Course meets in one contiguous block of five weeks. Pr.: C or C++ programming and CIS 300 or CIS 522.

CIS 525. Telecommunications and Data Communications Systems. (3) Basic concepts including OSI 7 layer model, data transmission methods, medium access, link control, connections management; network applications including electronic mail, file transfer, distributed computing, window systems; network management including OSI and Internet management frameworks. Pr.: CIS 300.

CIS 540. Software Engineering Project I. (3) I. The first semester of a two-semester capstone course. Current practices of software development, requirements, design, prototyping, measures, and evaluation. Specification, design, and prototyping of a software system. Not available for credit to students with credit in CIS 543. Pr.: CIS 308 and 501.

CIS 541. Software Engineering Project II. (3) II. Continuation of CIS 540. Final implementation, integration, and testing of a software system. Introduction to configuration management, project management, and software maintenance. Pr.: CIS 540 (which must be taken in the preceding semester).

CIS 543. Software Engineering Design Project. (3) I. Current practices of software development, requirements, design, prototyping, measures and evaluations. Specification, design, and prototyping of a software system. Not available for credit to students with credit in CIS 540. Pr.: CIS 308 and 501.

CIS 560. Database System Concepts. (3) I, II. Concepts, approaches, and techniques in database management. Representation of information as data, data storage techniques, foundations of logical data models, data retrieval, database design, transaction management, integrity and security. Pr.: CIS 501; CIS 301 or MATH 510.

CIS 570. Introduction to Formal Language Theory. (3) I. Formal languages, automata, regular expressions, grammars, introduction to computability theory. Reading and writing informal mathematical proofs pertaining to these topics. Pr.: MATH 510 and CIS 505.

CIS 575. Introduction to Algorithm Analysis. (3) I. An introduction to mathematical analysis of time- and space-complexity of algorithms, including worst-case, average-case, and amortized complexity. An examination of various algorithmic designs, such as greedy algorithms, divide-and-conquer algorithms, and dynamic programming algorithms. Techniques for proving correctness of algorithms. Pr.: CIS 300, CIS 301, and MATH 510.

CIS 580. Numerical Computing. (3) I. Introduction to numerical algorithms fundamental to scientific computer work, including elementary discussion of error, roots of equations, interpolation, systems of equations, quadrature, and introduction to methods for solution of ordinary differential equations. Pr.: CIS 300 and MATH 221 and 551.

CIS 591. Computer Science Applications. (3) I, II, S. Programming, program libraries, and design of algorithms. For students with minimal background in computer science. Not for credit by CIS majors. Pr.: Graduate standing in student's own area and knowledge of at least one procedural programming language.

Undergraduate and graduate credit

CIS 604. Set Theory and Logic for CS. (3) Informal and axiomatic set theory, propositional and predicate logic, proof techniques. Pr.: Graduate standing.

CIS 621. Real-Time Programming Fundamentals. (1) I. Relationship between C/C++ constructs and corresponding assembly code generated by compilers. Introduction to special techniques used to implement micro-controllers, such as initialization of programmable CPU modules/peripheral devices, techniques to link assembly and C/C++ codes, producing ROM-able code, and EPROM burning/Flash programming. Three hours rec. a week. Course meets in one contiguous block of five weeks. Pr.: C or C++ programming, and CIS 523 and either CIS 300 or 522.

CIS 622. Real-Time Operating Systems. (1) I. Basic real-time operating systems concepts and services; interrupt processing; process and thread models; real-time software architectures and development environments. Detailed study of the design and implementation of real-time applications using real-time operating systems. Three hours rec. per week. Course meets in one contiguous block of five weeks. Pr.: CIS 621.

CIS 625. Parallel Programming. (3) I. Basic concepts of concurrent and distributed programming; parallel computing architectures; real-time programming; parallel simulation; fault-tolerant programming; partitioning, mapping, and granularity of parallel programming such as communication systems; grid, N-body stimulation, and matrix problems; and embedded systems control. Pr.: CIS 501.

CIS 635. Introduction to Computer-Based Knowledge Systems. (3) I. Introduction to the applications of artificial intelligence concepts to solving knowledge-dependent tasks. Review of knowledge-representation ideas. Survey of expert system design. Introduction to existing knowledge-based tools available on personal computers. Development of an intelligent system. Pr.: CIS 300.

CIS 636. Interactive Computer Graphics. (3) I, II. Devices and software for graphics display and user interaction, development of software for direct graphic manipulation applications. Pr.: CIS 300.

CIS 638. Multimedia Systems. (3) II. Introduction to computer graphics devices, user interaction; history and scope; multimedia structure, encoding methods and standards, mark-up and scripting languages, software tools, and applications; readings in current literature; class presentation; multimedia project. Pr.: CIS 300, senior standing.

CIS 640. Software Testing Techniques. (3) II, in alternate years. Survey of software testing methodologies; evaluation of software testing strategies; experience in a variety of software testing practices. Pr.: CIS 540.

CIS 644. Object Oriented Design and Development. (3) Object models, concepts of classes and objects, dynamic models, comparison of design methods, relationship to object-oriented languages, tools for design and program construction, design and prototype project. Pr.: CIS 501.

CIS 645. Software Development Environments. (3) On sufficient demand. Survey of current development environment. Pr.: CIS 501.

CIS 690. Implementation Projects. (3) I, II, S. The department will suggest various design or implementation projects for individuals or groups in areas such as translators, interpreters, microprogramming, minicomputer operating systems, graphics, numerical software, etc. Pr.: Junior standing.

CIS 697. Seminar in Computer Science. (1-3) Pr.: Junior standing.

CIS 705. Programming Languages. (3) II. Programming language concepts, including typing, scoping, abstraction and exceptions; programming paradigms, including one or more of logic, functional, object-oriented and concurrent programming, and programming languages supporting the selected paradigms; introduction to programming language semantics; programming language design; development environments. Pr.: CIS 505 and MATH 510.

CIS 706. Translator Design I. (3) I. Compilers and interpreters, including description of languages, finite state scanners, LL (1) parsing, symbol tables, syntax directed semantics, simple code generation. Constructing a simple compiler. Pr.: CIS 501, 505.

CIS 710. Computer Simulation Experiments. (3) On sufficient demand. Principles of digital computer simulations; discrete simulation method, statistics of simulations; implementations. Pr.: CIS 300.

CIS 720. Advanced Operating Systems. (3) Process synchronization and communication, distributed programming primitives, transactions and concurrency control, distributed scheduling, distributed storage, deadlock, security. Pr.: CIS 520.

CIS 721. Real Time Systems. (3) The design of hard real-time embedded systems, including language and operating system support, scheduling, schedulability analysis, fault-tolerance, and design tools. Pr.: CIS 520 or both CIS 622 and EECE 633.

CIS 722. Operating System Practices. (3) II. Structure and functions of modern operating systems. Emphasis on reading and modifying the source code of a working operating system. This includes memory management, input/ output, process management, file systems, and net-work interconnection software construction. Pr.: CIS 520.

CIS 725. Advanced Computer Networks. (3) Network algorithms; routing and congestion control; protocol engineering; protocol decomposition, specification and verification, synthesis; protocols for high speed networks; parallel implementations, lightweight protocols. Pr.: CIS 520 and 525.

CIS 726. Advanced World Wide Web Technologies. (3) II. An advanced course on the technologies that make up the World Wide Web. WWW site designs and analysis, WWW software architecture, server-side technologies, dynamic executable scheduling, digital libraries, WWW security. Pr.: CIS 520, 525.

CIS 730. Principles of Artificial Intelligence. (3) II. Introduction to the fundamental concepts and techniques of AI: problem solving, search and planning, knowledge representation and qualitative reasoning, expert systems, natural language processing and cognitive modeling, computer vision, and machine learning. Pr.: CIS 501.

CIS 732. Machine Learning and pattern Recognition. (3). I. Theory and methodology of inductive learning, including decision trees, artificial neural networks, probabilistic and instance-based learning, and inductive and boosting; genetic algorithms and genetic programming; and applications to data mining. Pr.: CIS 501 or 575.

CIS 736. Computer Graphics. (3) Topics in computer representation and display of images and graphic interaction. Pr.: CIS 308.

CIS 740. Software Engineering. (3) Software life cycle, requirements, specifications, design, validation, measures, and maintenance. Pr.: CIS 540.

CIS 746. Software Measurement. (3) Measurement theory; development, validation and use of software measures; software measures in the software life cycle, including cost estimation, design measures, software complexity and software reliability. Pr.: CIS 540.

CIS 748. Software Management. (3) Topics related to the management of software, including organization, project planning, process models, life cycle models, TQM, software quality assurance, cost estimation, configuration management. Three hours rec. a week. Pr.: CIS 740.

CIS 750. Advanced Computer Architecture Experiments. (3) On sufficient demand. Characteristics of various computers including those with execution support of multiprocessing, multiprogramming, microprogrammable, high-level language, stack processing, and communication architectures. Two hours lec. and three hours lab a week. Pr.: CIS 450.

CIS 761. Data Base Management Systems. (3) Data models and languages, hierarchical, network, relational systems; implementation and operational requirements; programming projects using data base management systems. Pr.: CIS 560, 604.

CIS 762. Office Automation. (3) Characteristics of information work; modeling systems for characterizing aspects of office environment; form-based systems; office automation and description languages; ergonomics; local area networks and tools used in the automation of offices. Pr.: CIS 525, 560.

CIS 764. Database Design. (3) On sufficient demand. Conceptual, logical, physical, and user interface design for database management systems. Three hours rec. a week. Pr.: CIS 501.

CIS 770. Formal Language Theory. (3) Regular languages, finite automata, context-free languages, pushdown automata, context-sensitive languages, linear bounded automata, recursively enumerable languages, Turing machines. Pr.: CIS 570.

CIS 771. Software Specification. (3) Formal logic for specification of software components; algebraic vs. model-based specifications; common abstract types; verification of properties of specifications; introduction to specification of concurrent systems. Pr.: CIS 301.

CIS 775. Analysis of Algorithms. (3) I. Study and application of techniques and procedures used in the analysis of algorithms including the worst and average cases of both time and space. Study of the P and NP classes. Pr.: CIS 575.

CIS 798. Topics in Computer Science. (Var.) I, II, S. Pr.: Varies with the announced topic.