Kopec Explains Software
  • David Kopec, Rebecca Kopec
15 episodes
Each week we make a software-related technical topic intelligible. We aim to help you develop an intuitive understanding of each subject, instead of emphasizing formal definitions. Join us as we learn about the wide world of software.


#15 Product Managers with David Short
2020 Sep 2127m 24s
Product managers manage the teams that build software. In this episode we interview David Short, whose been a product manager for software teams at multiple companies. He tells us what it’s like to be a product manager, how he works together with software developers, and David gives some advice for aspiring product managers.
#14 Computer Chess
2020 Sep 1434m 57s
Since the invention of the modern computer, humans have been trying to write chess playing programs. In this episode, we trace the history of computer chess, and explain how a chess program works. We discuss why developing a world champion computer chess AI was considered a great achievement. And we finish with how computer chess continues to evolve, and how it’s evolving human chess.
#13 Artificial Intelligence
2020 Sep 0731m 41s
Artificial Intelligence is enabling exciting new computing applications, but many people don’t really understand what it is. In this episode we give AI a broad definition, explain the difference between strong AI and weak AI, and delve into some of the many sub-disciplines that fall under its umbrella. We provide a general sense of machine learning by touching on a few of its approaches including artificial neural networks, clustering, and linear regression. We also briefly dive into older AI techniques like expert systems and adversarial search. We use chess as an example to talk about different AI approaches.
#12 Open Source Software
2020 Aug 3133m 10s
The open source movement has completely changed the software industry. In this episode we explain what it means for software to be open source. We dive into the origins of the movement, its split from the free software movement, and some of its key players. We explain the four freedoms, the legal model behind open source licenses, and some of the ethics. Most importantly, we explain the benefits of open source software, and why it has become so ubiquitous. At the end we dive into other areas of the world where the open source model is being introduced.
#11 What is a Programming Language?
2020 Aug 2430m 51s
Programming languages are what we use to communicate ideas in computing. Software is written in a programming language and most people have a vague sense of what a programming language looks like. In this episode we explain a programming language’s purpose and we categorize programming languages into various paradigms. We discuss some of the characteristics that make one programming language distinctive from another. At the end we dispense some advice for those interested in learning their first programming language.
#10 What is an Emulator?
2020 Aug 1723m 9s
Emulators allow software designed for one computing system to run on another. They act as a kind of translation layer, simulating the hardware of the emulated system in software. Common applications include running software designed for video game systems on personal computers, and running business applications designed for a computing platform that the user doesn’t own. We discuss what emulators do, how they work, and some of the legal issues around them in this episode.
#9 What Does it Take to Make an App?
2020 Aug 1021m 46s
We discuss what it takes to make a mobile app. What are the primary different kinds of jobs that people who work on apps have? What are the phases of the development cycle to go from idea to release? How hard is it to make an app?
#8 How do Web Search Engines Work?
2020 Aug 0333m 29s
Information on the Web is always at our fingertips thanks to search engines. But, what makes them tick? In this episode we go over crawling, indexing, and ranking, the three phases a web page must go through to end up in your search results. We briefly discuss the PageRank algorithm and differences between various search engines. We conclude by discussing privacy issues.
#7 What is a Character Encoding?
2020 Jul 2723m 26s
Computers are not just great for calculating, they’re also great for storing, manipulating, and viewing text. In fact, the majority of the work we do on a computer is “text work.” But, how does a computer actually store text? How is text represented in software? In this episode we dive into the world of character encodings, the way that software represents text.
#6 How does the Web work?
2020 Jul 2022m 8s
What are the technologies that underly the Web? We discuss Web Browsers and Web Servers. We touch on: the protocols they use to communicate (HTTP and HTTPS), the languages they use to render web pages (HTML, CSS, JavaScript), and server-side technologies like databases and server-side programming languages.