Tag Archives: turing

Turing100 Lecture: Leslie Lamport by Madhavan Mukund; Skilling for SMAC by Anand Deshpande

Persistent System presents a talk on the life and work of Turing Award Winner Leslie Lamport, on 28 June, 2pm to 5pm, at the Dewang Mehta Auditorium, Persistent, SB Road.

In March 2014, Leslie Lamport was named the 2013 winner of the Alan Turing Award of the Association for Computing Machinery(ACM), widely regarded as the Nobel Prize in computing.

Over the past 40 years, Lamport has made several foundational contributions to the theory and practice of distributed computing. His early work includes the Bakery Algorithm for the mutual exclusion problem and an insightful paper on the importance of causality in a distributed system. He later investigated fault tolerance in the presence of so-called Byzantine failures—worst case scenarios that could disrupt the correct functioning of a distributed system. His distributed consensus algorithm Paxos is widely used in many modern replicated data storage systems. A recurrent theme in his work is the importance of precise specifications and formal reasoning in ensuring the correctness of concurrent systems.

Speaker: Madhavan Mukund, Dean of Studies, Chennai Mathematical Institute

After that there will be a short break for tea, followed by a talk on:

Skilling for SMAC – by Anand Deshpande

Social-Mobile-Analytics-Cloud (SMAC) technologies will play a significant role in the building of next generation software products and solutions. Building solutions on this SMAC-stack requires a unique set of technical skills, different from the traditional software programming. This talk will focus on some of the upcoming SMAC trends and the skills needed to stay relevant as these trends unfold.

Speaker: Anand Deshpande, CMD, Persistent

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 28 June

This event is free and open for anybody to attend. Register here

Turing100 Lecture: Talk on the Life and work of Edsger Dijkstra

Persistent System presents a talk on the life and work of Turing Award Winner Edsger Dijkstra, on 22 March, 2pm to 5pm, at the Dewang Mehta Auditorium, Persistent, SB Road.

In 1972, Edsger Dijkstra was given the Turing Award for fundamental contributions to programming as a high, intellectual challenge; for eloquent insistence and practical demonstration that programs should be composed correctly, not just debugged into correctness; for illuminating perception of problems at the foundations of program design. Dijkstra is famous for his graph algorithms (shortest path, minimum spanning tree), for writing the first Algol-60 compiler, which was the first high level language with explicit recursion (which was implemented using stacks), structured programming, and a whole lot of important contributions to practical and theoretical computer science.

He is also the guy who killed the goto.

In this event, Ravindra Naik, Principal Scientist at TRDDC Pune, will touch upon some of the contributions of Dijkstra like – Design of Algorithms, Program Design, Programming Languages, Formal Specification & Verification and OS & Distributed Processing.

This will be followed by a talk on “Art and Science of Programming” by Shailaja Shirwaikar HOD, CS Nowrosjee Wadia College. The talk will present Dijkstra’s programming methodology. From writing short, readable and efficient programs to illustrating his point through the choice of apt examples, Dijkstra was an artist programmer. Structured programming, developing loop invariants to separation of Concerns, and Dijkstra’s emphasis on formalism in development of programs has eventually lead to the Science of programming. The formal approach of program development gives the programmer the confidence in the program developed by him and debugging would be unnecessary. Dijkstra believed in disciplined method of programming which is very relevant to the students of programming.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 22 March.

This event is free and open for anybody to attend. Register here

Turing100 Lecture: Talk on the Life and work of Andrew Chi-Chih Yao

In 2000, Andrew Chi-Chih Yao was given the Turing Award In recognition of his fundamental contributions to the theory of computation, including the complexity-based theory of pseudorandom number generation, cryptography, and communication complexity. For more details of his work, see the Turing Awards website

Jaikumar Radhakrishnan, of TIFR will talk about “Combinatorial Limits on Efficient Computation”, followed by Srikanth Srinivasan, Dept. of Mathematics, IIT Bombay, who will talk about “Yao’s complexity-based theory of pseudorandomness.”

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 25th January.

This event is free and open for anybody to attend. Register here

Turing100 Lecture: Talk on Life & Work of 2008 Turing Award Recipient Barbara Liskov

In 2008, Barbara Liskov was given the Turning Award for contributions to practical and theoretical foundations of programming language and system design, especially related to data abstraction, fault tolerance, and distributed computing.

Ajay Deshpande, Chief Architect at Persistent Systems will give a talk on the life and work of Barbara Liskov, on 31st August, from 2pm to 5pm at Dewang Mehta Auditorium, Persistent (SB Road).

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 31 August.

This event is free and open for anybody to attend. Register here

Turing100 Lecture: Talk on Ken Thompson & Dennis Ritchie (creators of Unix)

In 1983, Ken Thompson and Dennis Ritchie were given the Turing Award “for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system.”

Prof. T.M. Vijayaraman will give a talk on the life and work of Thompson and Ritchie, and the history of Unix, on 27th July, from 2pm to 5pm at Dewang Mehta Auditorium, Persistent (SB Road).

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

The next talk in the series will be TM Vijayaraman talking about Ken Thompson and Dennis Ritchie. In August, Ajay Deshpande will talk about Barbara Liskov, and in September Hemant Pande will talk about Fran Allen.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 27 July.

This event is free and open for anybody to attend. Register here

Turing100 Lecture: Rethinking Education by D.B. Phatak – 29 June

As a grand finale for the Turing100 Lecture Series that was held all year at Persistent, this time, there is a talk on “Re-thinking Education – Transforming and Scaling the Learning Model” by Padmashree Prof. D.B. Phatak of IIT-Bombay.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 29 June. This event is free and open for anybody to attend. Register here

Turing100 Lecture: Life and work of Judea Pearl – 9 Mar

As part of the Turing100 Lecture Series this time, there is a talk on the life and work of 2011 Turing Award recipient Judea Pearl, followed by a “Turing 100” quiz that teams of professionals and students can participate in.

Judea Pearl was given the Turing award for the development of a calculus for probabilistic and causal reasoning. On Saturday, 9 March, Mukund Deshpande, Head of the Business Intelligence and Analytics Competency at Persistent will talk about this work.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 9th March. This event is free and open for anybody to attend. Register here

Turing100 Lecture: Life and work of John Backus (Fortran|BNF) – 2 Feb

The Turing100 Lecture Series come back with the 6th session. This time, there are two Technical talks, centered around the life and works of 1977 Turing Award recipient, Dr. John Backup.

In addition to several other contributions, Dr Backus is well-known for his pioneering work on Fortran as well as the inventor of the Backus-Naur Form (BNF) which is widely used as the notation for formal syntax.

On Saturday, 2nd Feb, Abhijit Vichare, will talk about the life and work of John Backus.

This will be followed by a session on “Early History of Fortran: The Making of a Wonder” by Prof. Uday Khedkar, Department of CSE, IIT-Bombay.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 2nd February. This event is free and open for anybody to attend. Register here

Turing100 Lecture: Life and work of Jim Gray – By Anand Deshpande – 5 Jan

The Turing100 Lecture Series come back with the 6th session. This time, there are two Technical talks, centered around the life and works of 1998 Turing Award recipient, Dr. Jim Gray.

Jim Gray made seminal contributions to database and transaction processing research and implementions of real systems at Tandem, IBM, and Microsoft. Among his best known achievements are

  • granular database locking
  • two-tier transaction commit semantics
  • the “five-minute rule” for allocating storage
  • the data cube operator for data warehousing applications
  • describing the requirements for reliable transaction processing (memorably called the ACID test) and implemented them in software.

On Saturday, 5th January, Anand Deshpande, CEO of Persistent Systems, will talk about the life and work of Dr. Jim Gray, the recipient of the 1998 Turing Award. This talk is a part of the Turing Awards monthly lecture series that happens at Persistent’s Dewang Mehta Auditorium.

This will be followed by a session on “Software Faults, Failures and Their Mitigation – contributions of Dr. Jim Gray to the area of Fault Tolerant Systems” by Prof. Kishore Trivedi, Duke University, USa.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 5th January. This event is free and open for anybody to attend. Register here

Turing100 Event Report: Work of Butler Lampson – Systems

(This is a live-blog of Neeran Karnik‘s talk on Butler Lampson, as part of the Turing100 Lecture Series happening at Persistent. Since it is being typed during the talk, please forgive the typos and bad structuring of the article. This article is also very incomplete.)

Butler Lampson has contributions in a wide area of computer science fields. Here is the Turing Award Citation:

For contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing.

The number of different areas of computer science touched there is breathtaking.

Systems Built

Here is just a sampling of some of the work of Lampson that resulted in entire areas of computer hardware and software:

  • The first personal computer:
    • The first personal computer in the world, the Xerox Alto, was conceived in a 1972 memo written by Lampson.
    • Important contributions of the Alto:
      • First “personal” computer
      • First computer that used a desktop metaphor
      • First computer to use a mouse-driven graphical interface
    • Lampson later work on the follow-up workstation designs Dorado and Wildflower (research products) which later resulted in a successful commercial product (Star).
  • The Bravo Editor
    • Lampson designed the first WYSIWYG editor in the world in 1974. This shipped with the Xerox Alto. This work can ultimately be seen to have led to the development of Microsoft Word
  • The Xerox 9700 and Dover Laser Printers
    • The first laser printer was designed in 1969 at Xerox Parc and Lampson worked on the electronic design of it.
  • The SDS 940 Time-sharing system
    • The first general-purpose time-sharing system.

And those were just the systems he built.

What about more fundamental contributions to computer science? Here is a list:

  • The two-phase commit protocol.
    • This is the fundamental building block of all transactional processing in databases that are spread out across machines and/or geographies.
  • The CAL time-sharing system
  • Programming Languages
    • MESA and SPL: for systems programming. Modern threads developed from here
    • Euclid: first programming language to use verification
  • Security:
    • Access matrix model, unifying capabilities and ACLs
    • Theory of principals speaking for other principals
    • Microsoft Palladium
    • Scrubbing disk storage
    • Research on how economic factors affect security
  • Networking
    • Co-inventor of ethernet!

How is Systems Research different?

Butler Lampson was one of the few great computer scientists who spent a lot of in the laboratory with actual hardware, getting his hands dirty. This is not the kind of work normally associated with Turing award winners, but it is the kind of work that has really given us the actual hardware that we use in computer science today.

Some thoughts on why systems programming is different more difficult.

Designing and building large computing systems, or complex computing systems or both. Computers (from tablets to supercomputers), networks, storage and other hardware and OS, programming languages, and other infrastructure software.

Systems design is different from other parts of computers science (e.g. algorithm design) because it’s external interface is to the real world (and hence it is imprecise, subject to change, and generally underspecified), lots of moving parts (i.e. more internal structure and more internal interfaces), module-level design choices have wider implications on the end product, and measure of success is less clear than in other fields. There is no such thing as an optimal answer, so avoiding terrible designs is more important than finding the most optimal one.

Hints on Computer System Design

This is a paper written by Lampson giving hints on how to build good systems. He uses hints, because in systems work, there are no infallible rules. So there are just hints which guide your thinking. Werner Vogels, CTO of Amazon, who oversees some of the most complex and scalable computing infrastructure in the world is a fan of this work. He finds these hints very useful, and says that they are more important today because they’ve withstood the test of time

These hints talk about functionality (what you’re doing), speed (are you doing it quickly enough), and fault-tolerance (and will you keep doing it) In systems, the interface design is the most important part. Do this well and other stuff will follow.

  • Hints about Functionality/Interface:

    • Do one thing at a time, and do it well
      • KISS – Keep it Short Stupid
      • Don’t generalize – because generalizations are wrong
      • Don’t overload interfaces with too much work
      • “Perfection is reached not when there is no longer anything to add, but when there is no longer anything to take away” – Antoine de St. Exupery
    • An interface should capture the minimum essentials
      • Don’t promise more than you can deliver
    • Cost of an interface should be predictable
    • Better to have basic and fast functionality, rather than slow and complex
      • Clients who need speed, are happy with the basic+fast interface
      • Clients how need complexity, can build it on top of your basics
    • Don’t hide the power
      • If a lower layer abstraction is more powerful, a higher layer abstraction should not hide that power. It should expose the power. The abstraction should only conceal undesirable properties
    • Keep the basic interfaces stable; parts of the system that will be used by many different modules should not change
    • Treat the first system that you’re building as a prototype that you will throw away
    • Divide and conquer
      • Reduce the problem to smaller pieces that you can solve more easily
      • Bite of as much as you can handle right now, and then leave the rest for the next iteration.
  • Hints on Speed

    • Split resources in a fixed way, rather than a sharing way
      • Do not spend too much effort in trying to share resources
      • Overhead of multiplexing usually not worth it
      • Fixed allocation this makes things faster, and more predictable
    • Cache Answers to Expensive Computations
    • Dynamic Translation
      • Use different representations for use of some structure vs. implementation of the same, and then dynamically translate between them.
      • “All problems in computer science can be solved by adding a level of indirection”
    • Use hints
      • i.e. things that don’t have to be 100% accurate, but can improve performance if they are correct
      • For example, the routing tables in internet packet routing. They can be incorrect, out-of-date. In most cases, they work, and give great performance. Rarely, they don’t work, and you can recover.
    • When in doubt, use brute force
      • Hardware is cheap
      • Brute force allows for cheaper faster implementation
      • e.g. chess-playing computers that use brute force have defeated grandmasters, while complex algorithms trying to “understand” chess.
    • Compute in the background whenever possible
      • e.g. if a webpage update results in an email being sent, the email sending should happen in the background.
    • Use batch processing when possible
    • Safety First
      • Correctness is more important than speed
      • Being clever and optimal is over-rated
      • A general purpose system cannot really optimize, because it doesn’t really know the use cases
      • Hardware is cheap
  • Hints for Fault Tolerance
    • End-to-End Error Recovery
      • “Error detection and recover at the application level is necessary. Error detection and recovery at lower layers is not necessary, and should only be done for performance reasons.”
      • Saltzer et. all, classic 1984 paper
      • Example: if transferring file from one computer to another there are lots and lots of steps (file being transferred from storage to memory to network), and in lots of sub-tasks (transferring chunks of file)
    • Lot updates to record the truth about an object state
      • Current state of the object in memory is a hint
      • The true state of the object is what can be recovered from the storage and logs
    • Actions should be atomic or restartable
      • Either an action is all-or-nothing, or if there is a failure in between the action should be able to restart from where it left off

Lampson himself suggests that reading the whole hints paper at once might be tiresome, so it is better to read it in small doses at bedtime. And he points out that he himself has ignored most of these hints sometimes, but then has always regretted them.