Jumat, Agustus 21, 2009

Secret

Web Applications

Video Lectures at ArsDigita University (http://students.odl.qmul.ac.uk/aduni/index.php/07_web_applications)
Mirror ar ArsDigita (http://www.aduni.org/courses/web/index.php?view=cw)
High Speed Mirror at Internet Archive (http://www.archive.org/details/arsdigita_07_web_applications)
Course website (http://www.aduni.org/courses/web/)
Teaches 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.

Structure and Interpretation of Computer Programs

Video lectures at MIT (http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/)
Structure and Interpretation of Computer Programs has been MIT's introductory pre-professional computer science subject since 1981. It emphasizes the role of computer languages as vehicles for expressing knowledge and it presents basic principles of abstraction and modularity, together with essential techniques for designing and implementing computer languages. This course has had a worldwide impact on computer science curricula over the past two decades.

Structure and Interpretation of Computer Programs(a different course)

Video lectures at ArsDigita University (http://students.odl.qmul.ac.uk/aduni/index.php/01_sicp)
Mirror at ArsDigita (http://www.aduni.org/courses/sicp/index.php?view=cw)
High Speed Mirror at Internet Archive (http://www.archive.org/details/arsdigita_01_sicp)
Course website (http://www.aduni.org/courses/sicp/)
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 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.

Structure and Interpretation of Computer Programs(a different course)

Video Lectures:CS61A (http://webcast.berkeley.edu/courses/archive.php?seriesid=1906978270)(Berkeley)
Course website (http://www-inst.eecs.berkeley.edu/%7Ecs61a/sp06/)
The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer's point of view. This first course concentrates mostly on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. The next course, CS 61B, will deal with the more advanced engineering aspects of software on constructing and analyzing large programs and on techniques for handling computationally expensive programs. Finally, CS 61C concentrates on machines and how they carry out the programs you write.
In CS 61A, we are interested in teaching you about programming, not about any particular programming language. We consider a series of techniques for controlling program complexity, such as functional programming, data abstraction, object-oriented programming, and query systems. To get past generalities you must have programming practice in some particular language, and in this course we use Scheme, a dialect of Lisp. This language is particularly well-suited to the organizing ideas we want to teach. Our hope, however, is that once you have learned the essence of programming, you will find that picking up a new programming language is but a few days' work.


Data Structures

Video Lectures:CS61B (http://webcast.berkeley.edu/courses/archive.php?seriesid=1906978271)(Berkeley)
Course website (http://www-inst.eecs.berkeley.edu/%7Ecs61b/sp06/)
The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer’s point of view. CS 61A covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems: as compositions of functions, collections of objects, or sets of rules. In CS 61B, we move to a somewhat more detailed (and to some extent, more basic) level of programming. As in 61A, the correctness of a program is important. In CS 61B, we’re concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of 61B will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data. We’ll also be concerned with the engineering knowledge and skills needed to build and maintain moderately large programs.

Machine Structures
Video Lectures:CS61C (http://webcast.berkeley.edu/courses/archive.php?seriesid=1906978272)(Berkeley)
Course webpage (http://www-inst.eecs.berkeley.edu/%7Ecs61c/current/)
The subjects covered in this course include C and assembly language programming, how higher level programs are translated into machine language, the general structure of computers, interrupts, caches, address translation, CPU design, and related topics. The only prerequisite is that you have taken Computer Science 61B, or at least have solid experience with a C-related programming language.

Programming Languages
Video Lectures:CSEP505 (http://www.cs.washington.edu/education/courses/csep505/06sp/lectures/)(University of Washington)
Course website (http://www.cs.washington.edu/education/courses/csep505/06sp/)
Goals: Successful course participants will:
• Master universal programming-language concepts (including datatypes, functions, continuations, threads,
macros, types, objects, and classes) such that they can recognize them in strange guises.
• Learn to evaluate the power, elegance, and definition of programming languages and their constructs
• Attain reasonable proficiency programming in a functional style
• Find relevant literature somewhat more approachable.

Principles of Software Engineering

Video Lectures:CS584 (http://www.cs.washington.edu/education/courses/584/01wi/lectures/)(University of Washington)
Course website (http://www.cs.washington.edu/education/courses/584/01wi/)
Study of major developments in software engineering over the past three decades. Topics may include design (information hiding, layering, open implementations), requirements specification (informal and formal approaches), quality assurance (testing, verification and analysis, inspections), reverse and re-engineering (tools, models, approaches).

Object Oriented Program Design

Video lectures at ArsDigita University (http://students.odl.qmul.ac.uk/aduni/index.php/04_java)
Mirror at ArsDigita (http://www.aduni.org/courses/java/index.php?view=cw)
High Speed Mirror at Internet Archive (http://www.archive.org/details/arsdigita_04_java)
Course website (http://www.aduni.org/courses/java/)
The 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.

Algorithms

Video lectures at ArsDigita University (http://students.odl.qmul.ac.uk/aduni/index.php/05_algorithms)
Mirror at ArsDigita (http://www.aduni.org/courses/algorithms/index.php?view=cw)
High Speed Mirror at Internet Archive (http://www.archive.org/details/arsdigita_05_algorithms)
Course website (http://www.aduni.org/courses/algorithms/)
The design and analysis of algorithms is studied. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Their applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms.

We study algorithm analysis - 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. We study NP-Completeness and methods of coping with intractability. Techniques such as approximation and probabilistic algorithms are studied for handling the NP-Complete problems.

Tidak ada komentar:

Posting Komentar