Computer Systems Principles

Large-scale software systems like Google - deployed over a world-wide network of hundreds of thousands of computers - have become a part of our lives. These are systems success stories - they are reliable, available ("up" nearly all the time), handle an unbelievable amount of load from users around the world, yet provide virtually instantaneous results.

Intro Computr & Ntwrk Security

This course provides an introduction to the principles and practice of computer and network security. A focus on both fundamentals and practical information will be stressed. The three key topics of this course are cryptography, privacy, and network security. Subtopics include ciphers, hashes, key exchange, security services (integrity, availability, confidentiality, etc.), security attacks, vulnerabilities, anonymous communications, and countermeasures.

Reasoning Under Uncertainty

Development of mathematical reasoning skills for problems that involve uncertainty. Counting and probability -- basic counting problems, probability definitions, mean, variance, binomial distribution, discrete random variables, continuous random variables, Markov and Chebyshev bounds, Laws of large number, and central limit theorem. Probabilistic reasoning -- conditional probability and odds, Bayes' Law, Markov Chains, Bayesian Network, Markov Decision Processes.

Intro to Programming

An introduction to computer programming using the Python language. Students will create Python 3 programs to process text data and to create graphics file viewable in a Web browser. No prior programming experience expected. Not open to Computer Science majors.

Problem Solving w/Internet

Basic skills needed to use the Internet. Web browsers, search strategies, basic Web page design, client-side and server-side programming, and cryptography. Malware and viruses, e-mail management and etiquette. Web-site management through UNIX commands, ftp file transfers, telnet sessions. Relevant and timely social, technical, and political topics. Not intended for Computer Science majors. Programming experience not required. Prerequisites: some hands-on experience with PCs or MACs or UNIX. (Gen.Ed. R2)

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.

Machine Learning

Machine learning is the computational study of artificial systems that can adapt to novel situations, discover patterns from data, and improve performance with practice. This course will cover the mathematical foundations of supervised and unsupervised learning. The course will provide a state-of-the-art overview of the field, with an emphasis on implementing and deriving learning algorithms for a variety of models from first principles.

S-Theory of Computation

The theory seminar is a weekly meeting in which topics of interest in the theory of computation - broadly construed - are presented. This is sometimes new research by visitors or local people. It is sometimes work in progress, and it is sometimes recent material of others that some of us present in order to learn and share. This is a one-credit seminar which may be taken repeatedly for credit. May be repeated for credit up to six times.
Subscribe to