ADUni.org: ArsDigita University Alumni Website
http://www.aduni.com/
Fri, 17 Dec 2004 00:00:01 GMTenADUni.org is the website of the alumni of ArsDigita University (ADU). ADU was a one-year, intensive post-baccalaureate program in Computer Science based on the undergraduate course of study at the Massachusetts Institute of Technology (MIT). The majority of the instructors were professors from MIT and the program was tuition free. After running from September 2000 to July 2001, seeing the first class through graduation, the program was forced to shut down. This site serves a dual purpose. It is here to tell the story of ADU and it is here to carry on the school's mission of supplying free education. Toward this latter end, ADUni.org provides all course materials and lectures generated during the program to the general public for free use.http://creativecommons.org/licenses/by-sa/2.0/Structure and Interpretation of Computer Programs
http://aduni.org/courses/sicp/
http://aduni.org/courses/sicp/Holly YancoJohn PezarisAn 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 processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages.Discrete Mathematics
http://aduni.org/courses/discrete/
http://aduni.org/courses/discrete/Shai SimonsonThis course covered the mathematical topics most directly related to computer science. Topics included: logic, relations, functions, basic set theory, countability and counting arguments, proof techniques, mathematical induction, graph theory, combinatorics, discrete probability, recursion, recurrence relations, and number theory. Emphasis will be placed on providing a context for the application of the mathematics within computer science. The analysis of algorithms requires the ability to count the number of operations in an algorithm. Recursive algorithms in particular depend on the solution to a recurrence equation, and a proof of correctness by mathematical induction. The design of a digital circuit requires the knowledge of Boolean algebra. Software engineering uses sets, graphs, trees and other data structures. Number theory is at the heart of secure messaging systems and cryptography. Logic is used in AI research in theorem proving and in database query systems. Proofs by induction and the more general notions of mathematical proof are ubiquitous in theory of computation, compiler design and formal grammars. Probabilistic notions crop up in architectural trade-offs in hardware design.How Computers Work
http://www.aduni.org/courses/hcw/
http://aduni.org/courses/hcw/Gill PrattIncludes the basics of digital logical design, computer organization and architecture including assembly language, processor design, memory hierarchies and pipelining. Students examine the detailed construction of a very simple computer. Problem sets use Beta-Sim, a RISC simulator written by Mike Wessler. A higher level view of a modern RISC architecture is studied, using the Patterson and Hennessey introductory text, from both the programmer's point of view and the hardware designer's point of view. The distinction between RISC and CISC architectures is emphasized.Object-oriented Program Design and Software Engineering
http://www.aduni.org/courses/java/
http://aduni.org/courses/java/Dave GoddeauThe concepts of the Object-oriented paradigm using Java. The basic principles of software engineering are emphasized. We study how to design and think in an object oriented fashion. As a final project, students work in groups to develop a Gnutella distributed music-sharing client.Algorithms
http://www.aduni.org/courses/algorithms/
http://aduni.org/courses/algorithms/Shai SimonsonThe design of algorithms is studied, according to methodology and application. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms. Analysis of algorithms is studied - worst case, average case, and amortized - with an emphasis on the close connection between the time complexity of an algorithm and the underlying data structures. NP-Completeness theory is examined along with methods of coping with intractability, such as approximation and probabilistic algorithms.Systems
http://www.aduni.org/courses/systems/
http://aduni.org/courses/systems/Luis RodriguezTopics on the engineering of computer software and hardware systems: techniques for controlling complexity, system infrastructure, networks and distributed systems, atomicity and coordination of parallel activities, recovery and reliability, privacy of information, impact of computer systems on society. Case studies of working systems and outside reading in the current literature provide comparisons and contrasts. The group project is to write an NSF systems proposal to fund a middle-ware product, for announcement RFP01-63.Software Engineering for Web Applications
http://www.aduni.org/courses/web/
http://aduni.org/courses/web/Philip GreenspunTeaches basics of designing a dynamic web site with a database back end, including scripting languages, cookies, SQL, and HTML with the goal of building such a site as the main (group) project Emphasizes computer-human interface and the graphical display of information. Crucial to the project is the identification of a client with whom the group must work with throughout the month, designing specifications, implementing them, reviewing and evaluating, and testing. This is a real-life client who intends to host the site for the purposes of building a community.Theory of Computation
http://www.aduni.org/courses/theory/
http://aduni.org/courses/theory/Shai SimonsonA theoretical treatment of what can be computed and how fast it can be done. Applications to compilers, string searching, and control circuit design will be discussed. The hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines will be analyzed, along with their variations. The notions of decidability, complexity theory and a complete discussion of NP-Complete problems round out the course.Artificial Intelligence
http://www.aduni.org/courses/ai/
http://aduni.org/courses/ai/Patrick WinstonAn quick overview of AI from both the technical and the philosophical points of view. Topics discussed include search, A*, Knowledge Representation, Neural Nets.Database Management Systems
http://www.aduni.org/courses/databases/
http://aduni.org/courses/databases/Ravi JasujaA more formal approach to Relational Database Management Systems, compared the way they were covered during Web Applications. Database systems are discussed from the physical layer of B-trees and file servers to the abstract layer of relational design. Also includes alternative and generic approaches to database design and database management system including relational, object-relational, and object-oriented systems, SQL standards, algebraic query languages, integrity constraints, triggers, functional dependencies, and normal forms. Other topics include tuning database transactions, security from the application perspective, and data warehousing.Applied Probability
http://www.aduni.org/courses/probability/
http://aduni.org/courses/probability/Tina KapurRajeev SuratiFocuses on modeling, quantification, and analysis of uncertainty by teaching random variables, simple random processes and their probability distributions, Markov processes, limit theorems, elements of statistical inference, and decision making under uncertainty. This course extends the discrete probability learned in the discrete math class. It focuses on actual applications, and places little emphasis on proofs. A problem set based on identifying tumors using MRI (Magnetic Resonance Imaging) is done using Matlab.Colloquia
http://aduni.org/colloquia/
http://aduni.org/colloquia/To supplement the traditional curriculum, the university held a colloquium series, inviting luminaries from across the field of computer science. Financiers, activists, and researchers at the cutting edge of new technologies shared their work, giving students "real world" perspectives on computer science.