【CK's Programming Talks】 Page

【CK's Programming Talks】 Page

Created March 4, 2024

This page has all the lectures on programming and related topics, and will be updated when new lectures will become available.

Why do I make these video lectures?

The story is a long one, but I will make it short. When I was a second year graduate student at the Johns Hopkings University, I was awarded a book contract from a publisher in Taiwan. I was asked to write a book of collections of programming related problems that are commonly seen in tests and exams in Taiwan. Initially, I thought this could be an easy task; but, after some thoughts I changed my mind because in doing so my book would not be very different from other test/exam preparation books. My publisher agreed to modifying the book so that it is unique in terms of its style, the collections of problems, the way of presentation, etc. etc.

After the decision was made, I almost spent all of my free time at the Milton S. Eisenhower Library of The Johns Hopkins Library, searching books and papers for problems to be included into my book. Many JHU students have their HOPY hours elsewhere; but my HOPY hours were always in the library!

My searches led me to new knowledge and new deep insights in programming. I also decided to write articles on this aspect for the PC Magazine -- Chinese Edition. These articles were under a column of mine, named Solving Problems Efficiently. In this way, I was able to form a coherent few of multiple problems, polish my throughts, and make sure my presentation being smooth and to-the-point. Consequently, some of these articles were rewritten for the book. This project took about a year to complete. In a late night of early September, 1989, I wrote the last piece of this book, the Preface, and sent it to the publisher. This book was titled as 名題精選百則. The following is the book cover of the 2011 edition.

After the publication of this book, I got my PhD degree and started teaching courses in computer science. Even though I had never been assigned to teach a programming course for the CS majors, I continued my quest for finding more interesting, challenging and gem-like programming problems. This series is my point of view toward programming, which must be elegant, simple enough, efficient enough, and easy to understand. Problems were taken from the above mentioned book and from other collections.

In each video lecture, I hope to provide you with an indepth discussion of a problem, which includes the basic/fundamental ideas, the way of thinking toward a good solution, and an efficiency/complexity analysis. Each video lecture also includes the corresponding slides and the discussed programs. I hope this set of video lectures can fulfill my unfinished work for 35 years and at the same time provide you with some help in programming. One more note: you won't find typical programming exercises here. Instead, most of the selected problems are at least a little bit challenging and require some thinking rather than direct coding.

Please note that these videos are purely work based on my personal interests. I did not receive anything from YouTube and elsewhere. A big "like" 👍 is very much appreciated.

Thank you!

Table of Content
No. Content Videos Slides Programs Date
1 Given two integer arrays, each of which contains distinct integers that are sorted in ascending order, write a program to report all equal pairs. An equal pair is an element in the first array and an element in the second such that they are equal. This lecture discusses three programs, from a naive one, to a better one that uses binary search, and eventually an optimal one of linear order. Finding ALL equal pairs in two sorted arrays Slides Programs March 3, 2024

Update History

  1. Created: March 4, 2024. The first lecture is online.