Some of the content on this website requires JavaScript to be enabled in your web browser to function as intended. While the website is still usable without JavaScript, it should be enabled to enjoy the full interactive experience.

Skip to Main Content

University Catalog|Office of the Registrar

Computer Science (COSC)

1000 Level | 2000 Level | 3000 Level | 4000 Level | 5000 Level

USP Codes are listed in brackets by the 1991 USP code followed by the 2003 USP code (i.e. [M2<>QB]).

1010. Introduction to Computer Science I. 4. [M2<>(none)] Introduces the fundamental concepts of programming from an object-oriented perspective. Topics include simple data types, control structures, array and string data structures, algorithm development, and debugging techniques. Emphasizes good software engineering principles and developing fundamental programming skills in the context of a language that supports the object-oriented paradigm. Prerequisite: grade of C or better in MATH 1400 or Level 4 or higher on the Math Placement Exam within one year prior to the start of the course.

1030. Computer Science I. 4. [M3<>(none)] Continues the introduction from COSC 1010 to the methodology of programming from an object-oriented perspective. Through the study of object design, introduces the basics of human-computer interfaces, the social implications of computing, with an emphasis on software engineering. Prerequisite: COSC 1010 or equivalent experience and concurrent registration in MATH 1405 or MATH 1450.

1100. Computer Science Principles and Practice. 3. [M3<>(none)] Introduces use of computers for algorithmic problem solving. Studies scope, major contributions, tools and current status of computer science. Presentation of computer science principles; use of software packages and evaluation of their effectiveness; and elementary programming. Prerequisite: C or better in MATH 1400 or in any University Studies QB or Level 4 or higher on Mathematics Placement Exam. (Offered based on sufficient demand and resources)

1200. Computer Information Systems. 3. Introduces computers and information processing, computer systems and hardware, computer software, information processing systems, information systems and information resource management. Uses word processing, data base language and electronic spreadsheet program in hands-on exercises. Prerequisite: passing of Mathematics Placement Examination at Level 2 or equivalent.

2000. Undergraduate Topics: Computer Science. 1‑3 (Max. 6). Elementary topics current in computer science. Prerequisite: consent of instructor. (Offered based on sufficient demand and resources)

2030. Computer Science II. 4. Builds on the introduction to object-oriented programming begun in COSC 1010 and 1030 with an emphasis on algorithms, data structures, and software engineering. Prerequisite: COSC 1030.

2150. Computer Organization. 3. Introduces students to the organization and architecture of computer systems, beginning with the standard von Neumann model and then moving forward to more recent architectural concepts. Prerequisite: COSC 1030.

2300. Discrete Structures. 3. Introduces the mathematical concepts that serve as foundations of computer science: logic, set theory, relations and functions, graphs (directed and undirected), inductively defined structures (lists and trees), and applications of mathematical induction. Provides an introduction to abstract and rigorous thinking in advanced mathematics and computer science. Cross listed with MATH 2300. Prerequisite: COSC 1030, MATH 2200 or 2350.

2409. _____ Programming. 1-3 (Max. 6). Describes various computer languages focusing on their differences from prerequisite languages and uses of these new features. Prerequisite: consent of instructor. (Offered based on sufficient demand and resources)

3011. Introduction to Software Design. 3. Introduces the principles and practice of software design, including UML and design patterns. Uses case studies to illustrate design in action. Prerequisites:  COSC 2030.

3015. Functional Programming. 3. Studies programming in the context of a functional language that emphasizes algorithmic strategies over syntactic detail. Prerequisites: COSC 2030 and 2300.

3020. Algorithms and Data Structures. 4. Introduces formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, and an introduction to automata theory and its application to language translation. Prerequisites: COSC 2030, 2150 and 2300.

3050. Ethics for the Computer Professional. 1. The proliferation of computers has had a profound effect on our society. Computing professionals must be aware of the social and ethical implications of our activities. Examines the codes of behavior related to computer science through readings, discussions and case studies. Prerequisites: COSC 2030.

3340. Introduction to Scientific Computing. 3. Introduces basic numerical methods to solve scientific and engineering problems. Topics include: code structure and algorithms, basic numerical methods for linear systems, eigenvalue problems, interpolation and data fitting, nonlinear systems, numerical differentiation and integration. Cross listed with MATH 3340. Prerequisite: grade of C or better in MATH 2210.

3750. Linux Programming for System Applications. 3. Provide the necessary tools and skills to begin programming effectively on UNIX and Linux operating systems. Topics will include, shells and basic shell scripting, Linux utilities, editors, compilation, I/O and the file system, sockets and interprocess communication, and time permitting, threads. Prerequisites: COSC 3020.

3900. Upper Division Topics in Computer Science. 1-3 (Max. 9). Individual or small group pursuit of interdisciplinary problems in the use of computers or study of topics of interest within industry. Prerequisite: consent of instructor. (Offered based on sufficient demand and resources)

3970. Internship in Computing. 1-3 (Max. 3). Allows students to gain practical experience in computing. A signed contract with a supervisor and departmental adviser must be completed before enrolling for the internship. Prerequisite: COSC 3020.

4000. Topics in Computer Science for Educators. 1‑6 (Max. 12). Current computer science topics appropriate for K-12 teachers. Credit may not be applied to major requirements in computer science or management information systems. Prerequisite: graduate standing. (Offered based on sufficient demand and resources)

4010. Special Topics in Computer Science. 1‑3 (Max. 9). Individual or small group pursuit of interdisciplinary problems in the use of computers or study of advanced topics. (Maximum of 12 hours from 4010 and 5010 may be applied to graduate study.) Prerequisites: COSC 3020 concurrently and consent of instructor. (Offered based on sufficient demand and resources)

4100. Foundations of Computing. 3. Introduces several theoretical areas which are the basis of computer science. Languages and automata, computability, complexity, analysis of algorithms, logic, and the specification and correctness of programs. Prerequisite: COSC 3020.

4200. Computability and Complexity. 3. Introduction to theoretical study of computability and efficient computation. Finite-state and pushdown automata; turing machines and the Church-Turing thesis; undecidability, computational complexity; NP-completeness. Prerequisite:  COSC 3020.

4210. Analysis and Design of Information Systems. 3. Students with information technology skills learn to analyze and design information systems. Practice of software engineering techniques during team-oriented analysis and design of a departmental system. Prerequisite: COSC 3020 or concurrent enrollment.

4220. Design and Implementation in Emerging Environments. 3. Students who have completed the analysis and design course extend their knowledge by implementing an information system in an emerging systems environment. Teams use project management principles to implement the system. Prerequisite: COSC 4210.

4340. Numerical Methods for Ordinary and Partial Differential Equations. 3. Further develops the skills needed for computational problem solving and numerical analysis.  Topics addressed include: one-step and linear multistep methods for solving initial value problems; truncation errors, stability analysis, and convergence of the numerical methods; finite difference approximation for elliptic equations and initial boundary value problems; iterative methods for sparse linear systems.  Students typically complete a final project in this course. Cross listed with MATH 4340. Prerequisites: grade of C or better in MATH 2310 and MATH 3340.

4350. System Simulation. 3. Introduces simulation and comparison with other techniques. Studies discrete simulation models, and introduction to, or review of, queuing theory and stochastic processes. Compares discrete change simulation languages. Examines simulation methodology including generation of random numbers and variates, design of simulation experiments for optimization, analysis of data generated by simulation experiments, and validation of simulation models and results. Selected applications of simulation. Dual listed with COSC 5350. Prerequisites: COSC 3020; MATH 4250 or STAT 2010.

4420. Advanced Logic. 3. Studies advanced topics in mathematical logic. Takes up such topics as: uninterpreted calculi and the distinctive contributions of syntax and semantics; metatheory, including completeness and consistency proofs; modal logic and semantics; logic as a philosophical tool. Dual listed with COSC 5420; cross listed with MATH/PHIL 4420. Prerequisite: PHIL 3420 or equivalent.

4450. Computer Graphics. 3. Introduction to computer graphics, an increasingly important area of computer science. Computer graphics, together with multimedia and the World Wide Web, offers exciting new possibilities for the design of human-computer interfaces. Presents the principles, techniques, and tools that enable these advances. Dual listed with COSC 5450. Prerequisites: COSC 3020 and MATH 2250.

4530. Digital Image Processing. 3. Methodologies and algorithms for processing digital images by computer. Includes color spaces, pixel mappings, filtering, image segmentation, geometric operations and pattern classification. Cross listed with EE 4530. Prerequisites: MATH 2205 and 2250; COSC 1030 or 3070.

4550. Introduction to Artificial Intelligence. 3. A computational study of intelligent behavior. Focus is on intelligent agents, which could be software agents or robots. Covers how agents sense, reason, and act within their environment. Includes problem-solving, search, knowledge representation, planning, game playing, learning, and neural and belief networks. Dual listed with COSC 5550. Prerequisites: COSC 3020.

4555. Machine Learning. 3. Goal is to program machines to learn and improve their performance on their own, based on experience and/or data. First half covers machine learning techniques; second half covers applications. Dual listed with COSC 5555. Prerequisite: COSC 3020.

4560. Modern Robots and Softbots. 3. Popular agent designs: logic-based, biomimetic, and physicommimetic. Foundational issues on internal robot and softbot knowledge representations. Planning and control, followed by issues of how agents can reason and plan under real-world conditions of environmental uncertainty. Concludes with discussions about papers on modern robot and softbot applications, as well as invited lectures by graduate students and faculty. Dual listed with COSC 5560.

4570. Data Mining. 3. Examine methods that have emerged from artificial intelligence and statistics and proven to be of value in recognizing patterns and making predictions with large data sets. Will include both theory and practice while developing several projects. Prerequisite: COSC 4550.

4730. Mobile Application Programming. 3. Introduces development of applications on mobile devices. Presents the principles, techniques, and tools for developing mobile applications. Differences between desktop applications and mobile applications are discussed. Dual listed with COSC 5730. Prerequisite: COSC 3020.

4740. Operating Systems Design. 4. Studies systems programming languages and computer systems design. Includes interacting processes, main storage management, procedure and data sharing, scheduling, deadlock problems and file management in batch processing and multi-programming systems. Operating system implementation. Prerequisite: COSC 3020.

4750. Systems Programming and Management. 3. Comparatively studies features found in commercial and experimental operating systems. Discusses issues in system-level programming and administration, including shell programming, file management, resource control, configuration and security. Advanced topics include multiprocessor and real-time operating systems. Prerequisites: COSC 2030.

4755. Network Applications. 3. Introduces the structure, implementation, and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. Dual listed with COSC 5755. Prerequisites: COSC 3020.

4760. Computer Networks. 3. Examines TCP/IP network protocols and implementation in depth, from the perspective of the link, network, transport, and application layers. Discusses problems and current solutions regarding the efficient use of network resources in the global, multi-media internet. Prerequisite:  COSC 2030.

4765. Computer Security. 3. Introduces the topics of computer and network security and provides a foundation to allow students to identify, analyze, and solve computer security problems. Prerequisite: COSC 3020.

4780. Principles of Programming Languages. 3. Introduces the methods of analysis and design of programming languages. Covers syntax, typing schemes and the semantics (denotational and operations) in the context of functional and imperative programming languages. Students build interpreters to explore the implications of the different constructs on computations. Prerequisites: COSC 3015.

4785. Compiler Construction 1. 3. Theory and implementation of interpreters and compilers. Compiler topics include lexical analysis, top-down and bottom-up parsing methods, symbol tables, and code generation from a block-structured language with recursion and parameters. Project uses compiler writing tools. Dual listed with COSC 5785. Prerequisite: COSC 3020.

4790. Programming Language Processors. 3. Discusses principles and design aspects of programming language processors, including interpreters and compilers. Emphasizes components of compiled system, such as scanner, parser, symbol table, code generation, optimization, linking and loading. Uses compiler generation tools. Prerequisite: COSC 4780.

4820. Database Systems. 3. Provides comprehensive coverage of the problems involved in database design, in-depth coverage of data models and database languages. Students acquire practical skills of conceptual/logical database design and general familiarity with the problems and issues of database management. Prerequisite: COSC 3020.

4840. Software Engineering. 3. Extends the ideas of software design and development from the introductory programming sequence to encompass the problems encountered in large-scale programs. Topics include software engineering techniques from the technical and managerial perspectives, with a strong emphasis on software design. Prerequisites: COSC 3020 and 3011.

4950. Senior Design I. 1. Students choose a senior design project, investigate alternate solutions and submit a preliminary project design. Periodic oral and written project progress reports are required. Prerequisite:  COSC 3011 and COSC 3020.

4955. Senior Design II. 2. Students complete the senior design project partially designed in COSC 4950. Successful communication of the details of the solution through written documents and oral presentations will be required. Prerequisite:  COSC 4950.

5000. Seminar in Computer Science. 1-3. (Max. 10). One or more current research areas in computer science are investigated. Prerequisite: consent of instructor.

5010. Graduate Topics in Computer Science. 1-6 (Max. 12). Individual or small group pursuit of computer science research areas. (Max. of 12 hours from COSC 4010 and COSC 5010 may be applied to graduate study). Prerequisites: graduate standing and consent of instructor.

5020. Advanced Topics in Computer Science. 1-6 (Max. 12). Advanced topics in computer science. (A maximum of 12 hours may be applied to graduate study.) Prerequisites: graduate standing and consent of instructor.

5050. Research Writing in Computer Science. 3. Instruction in methods for performing and reporting research in the field of computer science. The primary task is preparation of a research paper; to that end, the class covers how to collect and analyze previously published work, generate and develop a research topic, and present research results in acceptable written form. Prerequisite: graduate standing, consent of instructor.

5110. Analysis Of Algorithms. 3. Analysis of algorithms to determine their time and space requirements. Beginning with data structures such as lists, stacks, trees, and sets and their implementations. The class then analyzes specific algorithms for internal sorting, hashing, and string search. Offered fall semester of even numbered years. Prerequisites: COSC 3020 or equivalent and consent of the department.

5120. Theory Of Computation. 3. Models of computation, the Church-Turing thesis, computable functions, decidable and enumerable sets, unsolvable problems, correctness of programs, and complexity of computation. The theory of computation provides precise answers to the fundamental questions of computer science: Which problems can be solved by machine computation and which can be solved using a reasonable amount of computer resources. Prerequisite: COSC 4100.

5200. Computational Complexity. 3. Study of efficient computation and computational intracability. Time and space complexity; P, NP, and the polynomial-time hierarchy; reductions and completeness; randomized complexity; non-uniform complexity; approximation algorithms and inapproximability. Prerequisite: COSC 4100 or COSC 4200.

5220. Languages and Automata. 3. The study of regular, context-free, and context-sensitive languages and their relations to finite-state, pushdown and linear-bounded automata. Context-free language recognition. The halting problem and decidability results. Prerequisite: COSC 4100.

5310. Computational Methods in Applied Sciences I. 3. First semester of a three-semester computational methods series. Review of iterative solutions of linear and nonlinear systems of equations, polynomial interpolation/approximation, numerical integration and differentiation, and basic ideas of Monte Carlo methods. Comparison of numerical techniques for programming time and space requirements, as well as convergence and stability. Cross listed with MATH 5310. Prerequisites: MATH 3310, COSC 1010.

5340. Computational Methods in Applied Sciences II. 3. Second semester of a three-semester computational methods series with emphasis on numerical solution of differential equations. Topics include explicit and implicit methods, methods for stiff ODE problems, finite difference, finite volume and finite element methods for time-independence PDEs, semi/fully discrete methods for time-dependent PDEs. Cross listed with MATH 5340. Prerequisite: MATH/COSC 5310.

5345. Computational Methods in Applied Sciences III. 3. Third semester of a three-semester computational methods series with emphasis on numerical solution of problems displaying sharp fronts and interfaces (nonlinear conservation laws, Hamilton-Jacobi equations. Cross listed with MATH 5345. Prerequisite: MATH/COSC 5340.

5350. System Simulation. 3. Introduces simulation and comparison with other techniques. Studies discrete simulation models, and introduction to, or review of, queuing theory and stochastic processes. Compares discrete change simulation languages. Examines simulation methodology including generation of random numbers and variates, design of simulation experiments for optimization, analysis of data generated by simulation models and results. Selected applications of simulation. Dual listed with COSC 4350. Prerequisite: COSC 3020, MATH 4250 or STAT 2010. Additional work is assigned for those enrolled for graduate credit.

5420. Advanced Logic. 3. Studies advanced topics in mathematical logic. Takes up such topics as: uninterpreted calculi and the distinctive contributions of syntax and semantics; metatheory, including completeness and consistency proofs; modal logic and semantics; logic as a philosophical tool. Dual listed with COSC 4420; cross listed with COSC/MATH 5420. Prerequisite: PHIL 3420 or equivalent; graduate standing.

5450. Computer Graphics. 3. Introduction to computer graphics, an increasingly important area of computer science. Computer graphics, together with multimedia and the world-wide web, offers exciting new possibilities for the design of human-computer interfaces. Presents the principles, techniques, and tools that enable these advances. Dual listed with COSC 4450. Prerequisites: COSC 3020, MATH 2250.

5540. Computer Vision. 3. Provides students with an understanding of applying computer methodologies to process two-dimensional and three-dimensional images. Primary areas of investigation are image preprocessing, knowledge representation, pattern recognition and motion understanding. Prerequisites: COSC 3020, MATH 2205, MATH 2250.

5550. Introduction to Artificial Intelligence. 3. A computational study of intelligent behavior. The focus is on intelligent agents, which could be software agents or robots. Covers how agents sense, reason, and act within their environment. Includes problem-solving, search, knowledge representation, planning, game playing, learning, and neural and belief networks. Dual listed with COSC 4550. Prerequisite: COSC 3020.

5555. Machine Learning. 3. To program machines to learn and improve their performance on their own, based on experience and/or data.  The first part covers machine learning techniques.  The second part covers applications. Dual listed with COSC 4555. Prerequisite: COSC 3020.

5560. Modern Robots and Softbots. 3. Begins with a presentation of popular agent designs: logic-based, biomimetic, and physicomimetc. Presents foundational issues on internal robot and softbot knowledge representations. Planning and control are then covered, followed by issues of how agents can reason and plan under real-world conditions of environmental uncertainty. Concludes with discussions about papers on modern robot and softbot applications, as well as invited lectures by graduate students and faculty in the UW COSC and ECE departments. Dual listed with COSC 4560. Prerequisites: none.

5640. Automated Reasoning. 3. Study of programs, such as automated theorem provers, which require the use of "intelligence" to solve problems. Topics include resolution, unification, proof strategies, induction based theorem provers, expert systems, and Prolog. Prerequisite: COSC 4100.

5700. Computer Architecture. 3. A study of the interaction between computing and computer architecture. Memory hierarchies: segmentation, paging, and caches. CPU organizations: pipelining, array processors, parallelism. IO: channels, DMA, auxiliary CPU's. Interprocessor communication in multi-CPU systems. Prerequisites: COSC 4740 and 4700.

5730. Mobile Application Programming. 3. Introduces development of applications on mobile devices. Presents the principles, techniques, and tools for developing mobile applications. Differences between desktop applications and mobile applications are discussed. Dual listed with COSC 4730. Prerequisite: COSC 3020.

5740. Advanced Operating Systems. 3. Advanced course in operating systems design and implementation. Emphasis on multiprocessing and distributed systems and study of mechanisms for their control. Topics include concurrency control, deadlock memory management, security, and reliability. Prerequisite: COSC 4740.

5750. Distributed Computing Systems. 3. Provides an in-depth study of distributed computing systems, including both architecture and software issues. Topics include concepts of distributed computing, communication primitives, distributed operating systems, distributed file management, and distributed programming languages. Particular attention is paid to modeling and analysis of distributed systems and algorithms. Programming projects and research papers are assigned. Prerequisite: COSC 5740.

5755. Network Applications. 3. Introduces the structure, implementation, and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. Dual listed with COSC 4755. Prerequisite: COSC 3020.

5785. Compiler Construction I. 3. Theory and implementation of interpreters and compilers. Compiler topics include lexical analysis, top-down and bottom-up parsing methods, symbol tables, and code generation for a block-structured language with recursion and parameters. Project uses compiler writing tools. Dual listed with COSC 4785. Prerequisite: COSC 3020.

5790. Compiler Construction II. 3. Advanced topics concerning the front end of a programming language compiler, the description and implementation of features found in the back end of a compiler, and the run time environment. Topics include data type checking, global data flow analysis, flow graph reduction, local and global code optimization, and code generation. Reports on recent research papers. Prerequisite: COSC 4785 or 5785.

5820. Database Systems. 3. Provides comprehensive coverage of the problems involved in database design, in-depth coverage of data models and database languages. Students acquire practical skills of conceptual/logical database design and general familiarity with the problems and issues of database management. Prerequisite: COSC 3020.

5825. Advance Data Systems. 3. Provides comprehensive coverage of the problems involved in database system design and an in-depth examination of contemporary structures and techniques used in modern database management systems and database applications. Prerequisite: COSC 4820.

5840. Software Engineering Management. 3. Management issues in the development of software systems. Topics include planning documentation for requirements, design, implementation and testing, cost projection and modeling, documentation standards, code control, tracking of defects, management psychology, group interaction and communication, and the management of reviews and walk through. Prerequisites: COSC 4740, 4780 or equivalent and consent of the department.

5850. Software Management Laboratory. 3. Laboratory course designed to illustrate the principles discussed in COSC 5840. Students are team leaders on a project which involves the integration, testing, and maintenance of a large software system. The project is the same as that used for COSC 4850. Prerequisite: COSC 5840.

5880. Software Verification and Validation. 3. Concepts and practices for assuring the quality of software systems. Covers test planning, operational testing, formal verification, proofs of correctness, and validation testing. Prerequisite: COSC 3020 or COSC 4050.

5900. Practicum in College Teaching. 1-3 (Max. 3). Work in classroom with a major professor. Expected to give some lectures and gain classroom experience. Prerequisite: graduate standing.

5920. Continuing Registration: On Campus. 1-2. (Max 16). Prerequisite: advanced degree candidacy.

5940. Continuing Registration: Off Campus. 1-16 (Max. 16). Prerequisite: advanced degree candidacy.

5959. Enrichment Studies. 1-3 (Max. 3). Designed to provide an enrichment experience in a variety of topics. Note: credit in this course may not be included in a graduate program of study for degree purposes.

5960. Thesis Research. 1-12 (Max. 24). Designed for students who are involved in research for their thesis project.  Also used for students whose coursework is complete and are writing their thesis. Prerequisites: enrollment in a graduate degree program.

5980. Dissertation Research. 1-12 (Max. 48). Designed for students who are involved in research for their dissertation project. Also used for students whose coursework is complete and are writing their dissertation. Prerequisites: enrollment in a graduate level degree program.

5990. Internship. 1-12 (Max. 24). Prerequisite: graduate standing.

Share This Page:

Footer Navigation

University of Wyoming
 
1000 E. University Ave. Laramie, WY 82071 // UW Operators (307) 766-1121 // Contact Us