Course Descriptions

810:017. Web Development: Client-Side Coding -- 3 hrs.
Client-side Web development adhering to recent/current Web standards. Includes by-hand Web page development involving basic HTML, CSS, data acquisition using forms, and JavaScript for data validation and simple Web-based tools. (Offered Fall and Spring)

810:021. Computing Skills and Concepts -- 3 hrs.
Introduction to operation, applications, implications of computers, microcomputers, and network communications. Develops skill in current applications and sensitizes students to societal issues related to computing. (Offered Fall and Spring)

810:022. Microcomputer Applications and Systems Integration -- 3 hrs.
Emphasis on developing macros and programs, importing and exporting files between applications, solving and implementing applications and problems, and other more advanced topics. Examination of software such as word processing, spreadsheets, and database languages. Prerequisite(s): 810:021 or equivalent. (Offered Fall)

810:023. Microcomputer Systems -- 3 hrs.
Functional description of microcomputer operating systems; commands and utilities, system and file organization, memory and file management, troubleshooting strategies, and networks. Prerequisite(s): 810:022 or any one-semester programming course. (Offered Spring)

810:024. Software Applications for Testing -- 3 hrs.
Introduces productivity tools used by software testers including word processors, spreadsheets, and databases. Develops skills for producing and integrating text, spreadsheet, and database files in a software testing context. (Variable)

810:025. Computational Modeling and Simulation -- 3 hrs.
Explores computational approaches to solving complex problems using computational tools and dynamic and discrete simulations. Topics include problem representation, modeling, simulation, and model/simulation validation, with applications in the sciences, social sciences, and business. (Offered Fall and Spring)

810:030. Visual BASIC Programming -- 3 hrs.
Programming using the language Visual BASIC. Broad coverage of language syntax, programming practice, and programming problems appropriate to the novice or end-use programmer using a personal computer. (Offered Fall and Spring)

810:034. COBOL -- 3 hrs.
Examination of basic features of COBOL; emphasis on data processing techniques and structured programming methods. Sequential and indexed file structures, file maintenance, sorting, information retrieval, and design of reports. Concepts illustrated by business-type examples. No credit for students earning credit in 150:034. Prerequisite(s): one of the following -- 150:032, 810:030, 810:035, 810:036, or 810:051. (Offered Spring)

810:035. C Programming -- 3 hrs.
Programming using the language C. Broad coverage of language syntax, programming practice, and programming problems appropriate for the systems and technical programmer. (Variable)

810:036. C/C++ Programming -- 3 hrs.
Programming using the C and C++ languages including the object-oriented paradigm. Broad coverage of language syntax and programming practice. Appropriate for developers of general computing applications and systems. Course presumes no prior programming experience. (Offered Fall)

810:041. Computer Organization -- 3 hrs.
Study of computers in terms of their major functional units. Machine representations of data, digital logic, memory, CPUs, buses, and input/output. Instruction set architectures and their implementations, addressing methods, and sequencing. Assembly language programming. (Offered Fall and Spring)

810:051. Introduction to Computing -- 4 hrs.
Introduction to software development through algorithmic problem solving and procedural abstraction. Programming in the small. Fundamental control structures, data modeling, and file processing. Significant emphasis on program design and style. (Offered Fall and Spring)

810:052. Data Structures -- 4 hrs.
Introduction to use and implementation of data and file structures such as sets, hash tables, stacks, trees, queues, heaps, and graphs. Basic algorithm analysis. Searching and sorting. Basic object-oriented analysis, design, and modeling tools. Prerequisite(s): 810:051. Prerequisite(s) or corequisite(s): 810:080. (Offered Fall and Spring)

810:053. Intermediate Computing -- 3 hrs.
Intermediate software development in an object-oriented environment. Further experience with object-oriented analysis and design, including modeling languages. Focus on software reuse through frameworks and patterns and on software development methodology and tools. Prerequisite(s): 810:051; 810:052; 810:080. (Offered Fall and Spring)

810:071. Software Requirements Analysis -- 3 hrs.
Software analysis techniques including graphic modeling, use of CASE tools, and document production. Techniques for problem understanding, requirements identification, and validation and verification are also addressed. Prerequisite(s): 810:030; 810:080. (Variable)

810:080. Discrete Structures -- 3 hrs.
Introduction to logical forms, arguments, predicates, and quantified statements; methods of proof; elementary number theory; counting; sequences; sets; functions; relations; graphs; and Boolean algebra in the context of computer science. Prerequisite(s): 810:030, 810:036, or 810:051. (Offered Fall and Spring)

810:088. Topics in Computing -- 3 hrs.
Topics from recent developments in computing appropriate to students with limited computer science background, often relating to relatively sophisticated or technical use of computing or recent developments in programming. May be repeated on different topic. Prerequisite(s): consent of instructor. (Variable)

810:112(g). User Interface Design -- 3 hrs.
Examination of the theory, design, programming, and evaluation of interactive application interfaces. Built around a large design and implementation project that is completed in groups. Topics include human capabilities and limitations, the interface design and engineering process, prototyping and interface construction, interface evaluation, and possibly topics such as data visualization and the World Wide Web. Prerequisite(s): 810:114, 810:115, 810:153, 810:154, 810:172, or consent of instructor for non-majors; junior standing. (Variable)

810:114(g). Database Systems -- 3 hrs.
Storage of, and access to, physical databases; data models, query languages, transaction processing, and recovery techniques; object-oriented and distributed database systems; and database design. Prerequisite(s): 810:052; 810:080; junior standing. (Offered Fall)

810:115(g). Information Storage and Retrieval -- 3 hrs.
Natural language processing; analysis of textual material by statistical, syntactic, and logical methods; retrieval systems models, dictionary construction, query processing, file structures, content analysis; automatic retrieval systems and question-answering systems; and evaluation of retrieval effectiveness. Prerequisite(s): 810:052; 810:080; junior standing. (Offered Spring)

810:116(g). Projects in Information Science -- 3 hrs.
Projects in information storage and retrieval; data base systems; information mining and modeling; file structures; storage area networks; question-answering systems; transaction processing; natural language processing; the analysis of textual material by statistical techniques; syntactic and logical methods; retrieval systems models, dictionary construction, and XML; query processing; content analysis; evaluation of retrieval effectiveness. Prerequisite(s): 810:114 or 810:115; junior standing; consent of instructor. (Offered Fall)

810:118(g). Topics in Information Science -- 3 hrs.
Advanced topics in information storage and retrieval; data base systems; information mining and modeling; file structures; storage area networks; question-answering systems; transaction processing; natural language processing; the analysis of textual material by statistical techniques; syntactic and logical methods; retrieval systems, dictionary construction, and XML; query processing; content analysis; and evaluation of retrieval effectiveness. Prerequisite(s): 810:114 or 810:115; junior standing; consent of instructor. (Variable)

810:140(g). System Administration -- 3 hrs.
Major concepts and mechanisms associated with computer system administration. Focus on issues surrounding user management, the configuration of services, and the coordination of distributed resources. Prerequisite(s): 810:147; junior standing. (Variable)

810:141(g). System Security -- 3 hrs.
Topics include the need for security services, basics of cryptology, historical ciphers, public key paradigms, hardware and software implementations, and standard protocols used for securing mail, web, and electronic commerce. Prerequisite(s): 810:147; junior standing. (Variable)

810:142. Computer Architecture -- 3 hrs.
Basic concepts of computer architecture with special focus on principles underlying contemporary uniprocessor design. Interaction of hardware and software, and consideration of efficient use of hardware to achieve high performance. Topics include instruction set design, processor design, pipelining, the memory hierarchy, design trade-offs, I/O systems, performance measurement, and multiprocessors. Prerequisite(s): 810:041. (Offered Fall)

810:143(g). Operating Systems -- 3 hrs.
History and evolution of operating systems; process and processor management; primary and auxiliary storage management; performance evaluation, security, and distributed systems issues; and case studies of modern operating systems. Prerequisite(s): 810:041; 810:052 or 810:065; junior standing. (Offered Spring)

810:145(g). Projects in Computer Systems -- 3 hrs.
Projects in computer architecture, operating systems, networking, and parallel and distributed computing. Prerequisite(s): 810:142 or 810:143 or 810:147; junior standing; consent of instructor. (Offered Spring)

810:147(g). Networking -- 3 hrs.
Network architectures and communication protocol standards. Topics include communication of digital data, data-link protocols, local-area networks, network-layer protocols, transport-layer protocols, applications, network security, and management. Prerequisite(s): 810:041; 810:052 or 810:065; junior standing. Industrial Technology majors may enroll with: 330:037; 330:041; 330:042; 810:036. (Offered Fall)

810:151. Topics in Programming -- 1 hr.
Quick study of a specified programming language or environment for those with considerable programming experience. Language syntax and semantics, common problems solved using it, and best practices. Prerequisite(s): 810:052 or 810:065. (Offered Spring)

810:153. Design and Analysis of Algorithms -- 3 hrs.
Algorithm design techniques such as dynamic programming and greedy algorithms; complexity analysis of algorithms; efficient algorithms for classical problems; intractable problems and techniques for addressing them; and algorithms for parallel machines. Prerequisite(s): 810:052 or 810:065. (Variable)

810:154. Programming Languages and Paradigms -- 3 hrs.
Organization of programming languages; language design issues including syntax, data types, sequence control, and storage management; comparison of language features from object-oriented, imperative, functional, and logical paradigms. Prerequisite(s): 810:052 or 810:065. (Variable)

810:155(g). Translation of Programming Languages -- 3 hrs.
Introduction to analysis of programming languages and construction of translators. Prerequisite(s): 810:154; junior standing. (Variable)

810:161(g). Artificial Intelligence -- 3-4 hrs.
Models of intelligent behavior and problem solving; knowledge representation and search methods; learning; topics such as knowledge-based systems, language understanding, and vision; optional 1-hour lab in symbolic programming techniques: heuristic programming; symbolic representations and algorithms; and applications to search, parsing, and high-level problem-solving tasks. Prerequisite(s): 810:052 or 810:065; junior standing. (Variable)

810:162(g). Intelligent Systems -- 3 hrs.
Design and implementation of programs that apply artificial intelligence techniques to problems such as design, diagnosis, and distributed problem solving. Emphasis on team design and development of large systems. Prerequisite(s): 810:161; junior standing. (Variable)

810:165. Computing for Bioinformatics I -- 3 hrs.
Intermediate programming with emphasis on bioinformatics. Introduction to computational DNA and protein sequence analysis; genome rearrangements; restriction mapping; dynamic programming and optimal alignment algorithms; exploration of BLAST, FASTA, and gapped alignment. Prerequisite(s): 810:036 or 810:051; 810:080. (Formerly 810:065) (Offered Fall)

810:166(g). Computing for Bioinformatics II -- 3 hrs.
Advanced bioinformatics computing: DNA sequencing and fragment assembly; gene expression arrays; clustering algorithms; evolutionary trees; multiple alignments: PSI-BLAST, CLUSTAL; graphical 3-D representation of proteins; Hidden Markov models. Prerequisite(s): 810:165; junior standing. (Formerly 810:066) (Offered Spring)

810:172(g). Software Engineering -- 3 hrs.
Study of software life cycle models and their phases--planning, requirements, specifications, design, implementation, testing, and maintenance. Emphasis on tools, documentation, and applications. Prerequisite(s): 810:052 or 810:065; junior standing. (Offered Fall and Spring)

810:173(g). Project Management -- 3 hrs.
Examination of problems of organizing, controlling, managing, and evaluating a software project; software metrics and human input. Prerequisite(s): 810:172; junior standing. (Variable)

810:174(g). Real-Time Embedded Systems -- 4 hrs.
Specification, design, and implementation principles and techniques for real-time embedded systems. Topics include programming languages and paradigms, reliability and fault tolerance, concurrent programming, scheduling, and the interaction between hardware and software. Student teams will complete a significant real-time embedded software project. Prerequisite(s): 810:172; junior standing. (Variable)

810:175(g). Software Testing -- 3 hrs.
Taxonomy of software defects, approaches to identifying software defects, and test case development. Unit testing, functional testing, and software inspection. Prerequisite(s): 810:172; junior standing. (Variable)

810:179. Cooperative Education -- 1-4 hrs.
Application of classroom learning to field experience. Credit may not be applied to major or minor. Offered on credit/no credit basis only. (Offered Fall and Spring)

810:180. Undergraduate Research in Computer Science -- 1-3 hrs.
(Offered Fall and Spring)

810:181(g). Theory of Computation -- 3 hrs.
Topics include regular languages and grammars; finite state automata; context-free languages and grammars; language recognition and parsing; and turing computability and undecidability. Prerequisite(s): 800:074 or 810:080; junior standing. (Variable)

810:188(g). Topics in Computer Science -- 3 hrs.
Topics of general interest from any area of computer science, including systems, software, or theory. Prerequisite(s): junior standing. (Variable)

810:214. Database Management Systems -- 3 hrs.
Database system concepts, physical data organization, the network model and the DBTG Proposal, the hierarchical model, the relational model, relational query languages, design theory of relational databases, query optimization, and normalization. Prerequisite(s): consent of instructor. (Variable)

810:215. Problems in Information Storage and Retrieval -- 3 hrs.
Study of current research in advanced natural language processing; analysis of natural language text by statistical, syntactic, and logical methods; retrieval systems models, dictionary construction, query processing, file structures, and content analysis; automatic retrieval systems and question-answering systems; and evaluation of retrieval effectiveness. Prerequisite(s): consent of instructor. (Variable)

810:240. Computer Systems -- 3 hrs.
Survey of issues in computer system analysis and design. Topics include single-processor, multi-processor, and networked architectures. Emphasis on relationship between system hardware and software. Prerequisite(s): 810:142 or 810:143. (Variable)

810:248. Topics in Computer Systems -- 3 hrs.
Advanced topics in computer architecture, operating systems, networking, and distributed computing. May be repeated on a different topic. Prerequisite(s): 810:240. (Variable)

810:261. Problems in Artificial Intelligence -- 3 hrs.
Topics include philosophy of AI, knowledge representation, search, natural language, speech understanding, vision, planning, learning and learning techniques, and knowledge-based systems and system organization and system-building techniques. Prerequisite(s): 810:161. (Variable)

810:270. Algorithms -- 3 hrs.
Survey of analysis and design of algorithms. Topics include algorithm design techniques, efficient algorithms for classical problems, and intractable problems and techniques for solving them. Prerequisite(s): 810:153. (Variable)

810:278. Topics in Software Engineering -- 3 hrs.
Advanced topics in software engineering such as analysis methods, design, development, quality assurance, and testing. May be repeated on different topic. Prerequisite(s): 810:172. (Variable)

810:280. Theoretical Foundations of Computing -- 3 hrs.
Survey of theoretical models of computation and basic theory of computability. Topics include Turing machines, undecidability, NP-completeness, and computational complexity. Consideration of applications of theory to contemporary problems in computing. Prerequisite(s): 810:181. (Variable)

Home

About Us

Undergraduate Programs

Graduate Programs

People

Research

Courses and Registration

Schedule of Courses

Course Flow Chart

Course Descriptions

Projected Offerings

Textbook List

Student Life

For Prospective Students

Other Resources


Department of
Computer Science
305 ITT
(the old East Gym)
Cedar Falls, Iowa
50614-0507
ph. (319) 273-2618
fax (319) 273-7123

dept@cs.uni.edu

University of Northern Iowa

Diversity Matters

FACULTY PROFILE

Paul Gray

With distributed computing, the devil is in the details. That's because a programmer is dealing with all sorts of different hardware and networks. Meshing all of these elements presents a significant challenge that Paul Gray, associate professor of computer science, is leading the charge to solve... [more]

More Profiles

PROJECTS/GROUPS

bootable cluster project

mumps/mdh

realtime systems lab

CedarLug

More Projects

Department of Computer Science