We're a "best buy" degree program!
Kansas State University - Master of Software Engineering

 

Search MSE Site

K-State CIS Graduate Courses

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, CIS 301.

CIS 520. Operating Systems. (3) I, II. Basic operating systems concepts and services; interrupt processing; processes, 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 501.

CIS 521. Real-Time Programming Laboratory. (3) I. Project-oriented introduction to asynchronous processes and related systems software: device drivers, event-driven operations, hierarchical and time-sliced process scheduling, spooling operations, interjob and intermachine communications. Projects will be built on a single-use environment. Pr.: EECE 241 and CIS 350, 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 Communication 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 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 prototpying of a software system. Not available for credit to students with credit in CIS 540. Pr.: CIS 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, MATH 221 and MATH 551.

CIS 591. Computer Science Applications. (3) 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.

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 microcontrollers, 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 CIS 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 design and implementation of real-time applications using real-time operating systems. Three hours recitation per week. Course meet 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 simulation, 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. Introduction to 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 environments and/or an in-depth study of one development environment. Pr.: CIS 501.

CIS 690. Implementation Project. (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, and CIS 605.

CIS 710. Computer Simulation Experiments. (3) On sufficient demand. Principles of digital computer simulation; 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 network 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, light-weight protocols. Pr.: CIS 520, and CIS 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, CIS 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 logic programming; unsupervised and reinforcement learning, bagging and boosting; genetic algorithms and genetic programming; and applications to data mining. Pr.: CIS 501 or CIS 575.

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

CIS 740. Software Engineering. (3) Software life cycle, equirements, 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 lifecycle, 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. 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, highlevel language, stack processing, and communication architectures. Two hours lecture and three hours lab a week. Pr.: CIS 450.

CIS 761. Data Base Management Systems. (3) Data models and languages, hierarchical, network, relational systems; implementational and operational requirements; programming projects using data base management systems. Pr.: CIS 560, CIS 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. 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 or 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 604.

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.) Pr.: Prerequisite varies with the announced topic.

CIS 801. Translator Design II. (3) On sufficient demand. LR parsing, storage allocation, code generation, data flow optimization, compiler generators. Pr.: CIS 706.

CIS 806. Semantics of Programming Languages. (3) Introduction of formal semantics description methods for programming languages; comparison of operational, denotational, algebraic, and axiomatic methods; analysis of relationship of formal semantics definitions to computer implementation. Pr.: CIS 771.

CIS 810. Logic Programming. (3) Selected topics; constraint logic programming, deductive databases, concurrent logic programming, object-oriented logic programming, mathematical theory of logic programming specification and transformation of logic programs. Pr.: Knowledge of Prolog.

CIS 820. Topics in Theory of Asynchronous Systems. (3) Safety and liveness properties, synchronous and asynchronous message passing systems, virtual circuit and datagram communication, process failure, concepts of composition and superimposition, temporal logic, reachability analysis, theory of concurrency control, atomic commitment, replica control. Pr.: CIS 720.

CIS 825. Topics in Distributed Systems. (3) Models of distributed computation, events and global states, failure semantics, communication abstractions, synchronization in distributed programs; distributed algorithms: election, termination and deadlock detection, broadcast programming and algorithms. Pr.: CIS 720; or CIS 725 and permission of the instructor.

CIS 826. Protocol Engineering. (3) Basic concepts of protocol design, specification languages and formal description techniques, safety and liveness properties, protocol validation, protocol synthesis, protocol translation and conformance testing. Pr.: CIS 725.

CIS 830. Current Topics in Artificial Intelligence. (3) Advanced techniques and new ideas in artificial intelligence. Includes applications and case studies of artificial intelligence in action. Pr.: CIS 730.

CIS 841. Verification and Validation. (3) Practical techniques for verifying and validating software including formal verification, software testing, reliability measurement and modeling. Pr.: CIS 740.

CIS 842. Specification and Verification of Reactive Systems. (3) Review of formal specification languages; architecture of concurrent and reactive systems; specification methods including: Z, Petri nets, temporal logic, state transition models; development and evaluation of system specifications; verification structures including layered systems, serialization, and predicate automata. Pr.: CIS 771.

CIS 844. Agent-Oriented Software Engineering. (3) II. Analysis, design, and implementation of large, complex, distributed, and adaptive software systems using agent-oriented paradigm. Will survey various modeling languages and agent-oriented methodologies. Pr.: CIS 730, CIS 740.

CIS 860. Advanced Database Systems. (3) Advanced topics in database and intelligent information systems. Possible topics include active, temporal, object-oriented, and multimedia databases, warehousing and data mining. Pr.: CIS 761 or CIS 764.

CIS 864. Data Engineering. (3) Advanced topics in database design and maintenance including performance monitoring, query optimization and tuning in centralized and distributed data systems. Pr.: CIS 761 or 764.

CIS 870. Theory of Computability. (3) Formal models for computability; universal programs; Church's thesis; unsolvable problems and reducibilities; partial recursive functions; recursive and recursively enumerable sets; s-m-n theorem and the recursion theorem. Pr.: CIS 770.

CIS 890. Special Topics in Computer Science. (2-4) Topics of the current state-of-the-art of computer science. Pr.: Prerequisite varies with the announced topic.

CIS 895. MSE Project. (Var.) This course takes the student through the process of developing a project. This process typically takes more than one semester to complete. Includes reviews and walkthroughs of the requirements, design, and implementation. Pr.: CIS 740, CIS 748, CIS 771, and three additional credits toward the MSE degree.

CIS 897. Seminar in Computer Science. (1) I,II,S. Introduction to computing as a discipline; the relationship of computing to other disciplines; the interaction of computing and ethics; the development of a written and oral research proposal. Pr.: full graduate standing in CIS (CR/NCR only)

CIS 898. Master's Report in CIS. (1-3) I,II,S.

CIS 899. Research in Computer Science. (1-6) Pr.: CIS 897.

CIS 901. Topics in Translator Design. (3) Topics involving incremental, extensible, conversational compilers; program development systems, portability and validation of compilers; compiler generators. Pr.: CIS 801.

CIS 905. Theory of Programming Languages. (3) Formal definition languages; operational and formal semantic models; equivalence of semantic models; formal properties of programming languages. Pr.: CIS 806.

CIS 920. Research Topics in Distributed Systems. (3) Topics on current state-of-the-art research in distributed systems. Pr.: Permission of the instructor.

CIS 926. Computation Structures. (3) Petri nets, flowgraph schemata, dataflow models, relationships between abstract computational models and hardware models and programming languages. Pr.: CIS 771.

CIS 930. Expert Systems. (3) Advanced theory and techniques in the development of expert systems. Focuses on knowledge acquisition and knowledge organization used in expert systems. Includes design, implementation, and evaluation of an expert system. Pr.: CIS 830.

CIS 940. Research Topics in Software Engineering. (3) Research on one of the topics in CIS 840. May be repeated for credit. Pr.: CIS 840.

CIS 960. Theory of Data Base Systems. (3) Advanced topics in data base systems including distributed data bases, integrity, security, normalization, data base machines, performance models, query languages. Pr.: CIS 840.

CIS 990. Research Topics. (2-3) Study of current topics in computer science. Pr.: Permission of the instructor.

CIS 999. Research in Computer Science.(Var.)

 


Menu script used with permission from http://www.twinhelix.com