Computer Science (COSC)

1000 Level | 2000 Level | 3000 Level | 4000 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, graphics, and the social implications of computing, with an emphasis on software engineering.  Prerequisite: COSC 1010 or equivalent experience and concurrent registration in MATH 2200.

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 M2<>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 or 3070.

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:  COSC2030.

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

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, COSC 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: computer science or MIS majors only; COSC 2150 and 2030.

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-6 (Max. 12). 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: sophomore standing.

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 or consent of instructor. (Offered based on sufficient demand and resources)

4010. Special Topics in Computer Science. (B) 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 2030.

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 Analysis. 3. Machine arithmetic, analysis of rounding errors, direct and iterative methods for linear systems of equations, iteration, interpolation, numerical differentiation and integration, numerical solution of differential equations. Programming exercises using a procedural language. Cross listed with MATH 4340. Prerequisites: grade of C or better in COSC 1010, MATH 2310, and either MATH 2250 or 3310; or consent of instructor

4350. System Simulation. (B) 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; methatheory, including completeness and consistency proofs; modal logic and semantics; logic as a philosophical tool. Cross listed with MATH/ PHIL 4420. Prerequisite: PHIL 3420 or equivalent.

4450. Computer Graphics. (B) 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.

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; 2220 or 4740 concurrently.

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. Principles of 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 2030; 2220 or 4740 (concurrent).

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 or COSC 4840.

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.


top of page

Please send comments or questions to registrar@uwyo.edu

Last Change: 04/01/08