Advanced Algorithms

The design and analysis of efficient algorithms for important computational problems. Paradigms for algorithm design including Divide and Conquer, Greedy Algorithms, Dynamic Programming; and, the use of Randomness and Parallelism in algorithms. Algorithms for Sorting and Searching, Graph Algorithms, Approximation Algorithms for NP Complete Problems, and others. Prerequisites: The mathematical maturity expected of incoming Computer Science graduate students, knowledge of algorithms at the level of CMPSCI 311.

Software Engineering

In this course, students learn and gain practical experience with software engineering principles and techniques. The practical experience centers on a semester-long team project in which a software development project is carried through all the stages of the software life cycle. Topics in this course include requirements analysis, specification, design, abstraction, programming style, testing, maintenance, communication, teamwork, and software project management. Particular emphasis is placed on communication and negotiation skills and on designing and developing maintainable software.

Intro To Algorithms

The design and analysis of efficient algorithms for important computational problems. Emphasis on the relationships between algorithms and data structures and on measures of algorithmic efficiency. Sorting (heapsort, mergesort, quicksort), searching, graph algorithms. Experimental analysis of algorithms also emphasized. Use of computer required. Prerequisite: CMPSCI 250.
Subscribe to