Skip to Content

Course Search Results

  • 3.00 Credits

    For students pursuing degrees in Computer Science, or other students interested in counting theory and applications. Covers mathematical reasoning, combinatorial analysis, sets, permutations, relations, computational complexity, and Boolean logic through homework and programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Apply the principles of logic and set theory to solve computational and combinatorial problems. 2. Enumerate discrete structures of a given kind and size via the use of combinations, permutations, and other combinatorial constructs. 3. Reduce complex problems into simpler sub-problems. 4. Implement software related to discrete math topics. Course fee required. Prerequisites: MATH 1100 (Grade C or higher) OR MATH 1210 (Grade C or higher); AND CS 1410 (Grade C or higher). FA
  • 3.00 Credits

    Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers operating systems design and implementation, including processes and threads, synchronization, virtual memory, and file systems. Course taught by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design the major components of an operating system. 2. Analyze the trade-offs between competing goals in system software projects, including safety, performance, convenience, and ease of future maintenance. 3. Build and modify complex software projects in teams. 4. Assess and criticize the design of modern and historical operating systems. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C or higher). FA
  • 3.00 Credits

    Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers design and implementation of network applications, including message passing, concurrency, synchronization, scalability, and partial failure. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design and implement software solutions that span multiple computers across a network. 2. Analyze the tradeoffs between competing goals in system software projects, including safety, performance, convenience, and ease of future maintenance. 3. Build and modify complex software projects in teams. 4. Debate and differentiate the approaches and solutions to distributed systems problems taken by modern internet organizations. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). SP
  • 3.00 Credits

    For students pursuing degrees in Computer Science or Computer Information Technology, or others with an interest in graphical interface design and implementation. Covers the theory and practice of constructing easy to use interfaces through programming graphical environment projects in a variety of languages and platforms. Course taught by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: At the successful conclusion of this course, students will be able to: 1. Develop GUI software in a variety of environments. 2. Interview with local software companies with jargon and skill sets that are meaningful to them. 3. Debug software using at least one integrated development environment. 4. Profile software to find where it is running slowly. 5. Publish software using GIT. Course fee required. Prerequisites: CS 3005 (Grade C or higher).
  • 3.00 Credits

    Required of students pursuing a Computer Science degree or emphasis. Covers the analysis and design of algorithms and data structures, including graphs, greedy algorithms, divide and conquer algorithms, and dynamic programming. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze and classify algorithms of various types, including divide-and-conquer algorithms, graph algorithms, dynamic programming, and linear programming. 2. Assess the run-time complexity of algorithms through analysis and measurement. 3. Evaluate and select suitable algorithms for programming problems. 4. Construct algorithmic solutions to complex problems using the full range of algorithmic approaches. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3310 (Grade C or higher). SP
  • 3.00 Credits

    Required of students pursuing a Computer Science degree or emphasis. Covers the principles and concepts that characterize high-level computer programming languages, including function and data abstraction, and imperative, functional, logic and object-oriented programming techniques. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Compare major programming paradigms and appraising the impact each has on how programming problems are solved. 2. Differentiate between syntax and the underlying semantics that make up modern and historical languages. 3. Compose and construct software solutions from a wide range of fundamental language constructs. 4. Assess new languages as they emerge and determine their suitability for practical programming projects. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). FA
  • 3.00 Credits

    Required of students pursuing a Computer Science degree or emphasis. Covers the theory of computation, including finite-state automata, pushdown automata, Turing machines, and equivalent formalisms. Also introduces complexity theory. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Compare the capabilities of various computational models and formulating new models as needed to research new classes of problems. 2. Analyze formal systems with mathematical rigor and the appropriate formal notation. 3. Investigate computational problems and categorizing their algorithmic complexity. 4. Appraise and justify the limits of computational models and the real-world systems that rely on them. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); and CS 3310 (can be concurrently enrolled). FA
  • 3.00 Credits

    Required of students pursuing a Computer Science degree or emphasis, and open to other interested students. Covers 2-D and 3-D model creation, transformation, and various rendering techniques through completion of programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: At the successful conclusion of this course, students will be able to: 1. Program 2D and 3D graphics applications using an appropriate API such as OpenGL. 2. Design software that is highly user interactive. 3. Apply modeling, rendering and animation techniques to a variety of problems. 4. Design lighting systems that use the 3D Phong shading model. 5. Render high quality images using texture mapping, ray tracing, and shadows. 6. Program Curves and Surfaces for use in CAD. 7. Program automated systems using Physically Based Modeling. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 3005 (Grade C or higher). SP
  • 3.00 Credits

    Required of students pursuing a Computer Science degree or emphasis. Introduces the broad field of artificial intelligence in computer software followed by specific applications in computer gaming strategies. Students will complete programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct solutions for a range of problems using search algorithms. 2. Infer problems that can be solved using propositional logic and build appropriate solutions. 3. Design and implement Bayesian networks. 4. Integrate third-party libraries into solutions for large software projects. 5. Collaborate to solve large and complex problems. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C or higher). FA
  • 3.00 Credits

    An introduction to database systems. Topics include the design and implementation of relational databases (B-trees, indexing, query planning and execution, transactions, ACID semantics) as well as data modeling and querying for applications using databases. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design and implement the major components of a database management system. 2. Analyze the storage needs of a software project and create a data schema and query strategy to address those needs. 3. Construct substantial software that balances requirements of data safety, performance, and complexity. 4. Debate and criticize modern approaches to data management. Course fee required. Prerequisites: CS 2420 (Grade C or higher) AND CS 2810 (Grade C or higher). SP