This course will provide a gentle, yet intense, introduction to programming using Python for highly motivated students with little or no prior experience in programming. The course will focus on ...
This course is a first-year graduate course in algorithms. Emphasis is placed on fundamental algorithms and advanced methods of algorithmic design, analysis, and implementation. Techniques to be ...
Data structures play a central role in modern computer science. You interact with data structures even more often than with algorithms (think Google, your mail server, and even your network rout ...
This course is a study of Behavior of Algorithms and covers an area of current interest in theoretical computer science. The topics vary from term to term. During this term, we discuss rigorous ...
This course examines how randomization can be used to make algorithms simpler and more efficient via random sampling, random selection of witnesses, symmetry breaking, and Markov chains. Topics ...
This course introduces the theory of error-correcting codes to computer scientists. This theory, dating back to the works of Shannon and Hamming from the late 40's, overflows with theorems, ...
The design of algorithms is studied, according to methodology and application. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Applications involve: sortin ...
An introduction to programming and the power of abstraction, using Abelson and Sussman's classic textbook of the same name. Key concepts include: building abstractions, computational process ...
Introduction to programming and computer science. This course exposes students to techniques of abstraction at several le ...
This course provides an introduction to data structure and algorithms, types of data structures and programming principles. Student will learn abstract data type concepts using class and apply A ...