Join Mark Niemann-Ross for an in-depth discussion in this video A classic computer science problem, part of Code Clinic: R.
- Hello and welcome to Code Clinic. My name is Mark Niemann-Ross and I'm the content manager for the developer segment at lynda.com. Code Clinic is the course where I introduce a problem to a collection of lynda.com authors, and in turn, those authors use their computer programming language of choice to produce a unique solution. You can learn several things from Code Clinic: different approaches to solving a problem, the pros and cons of different languages, and some tips and tricks to incorporate into your own coding practices.
This month we're going to explore a classic problem called The Eight Queens. The problem is simple. Start with a chessboard and eight queens, then set up the board so that no two queens can attack each other. There is more than one solution, find them all. This famous problem is often used during interviews for computer programming jobs or to demonstrate the utility of a computer language. It requires an understanding of recursion and algorithm design and can be quite useful as an exercise in learning to program for complex solutions.
If you've never played chess, you'll need to understand that a queen can attack by moving an unlimited number of spaces in three directions: horizontally, vertically and diagonally. This means that no two queens can share a row or a column nor can they be located diagonally from each other. This problem was proposed by Max Bezzel in 1848 and solved by Franz Nauck in 1850. We already know there are 92 possible solutions, and we already have examples of the solutions in several computer languages.
In the following video you'll be presented with a solution to the Eight Queens Problem and why that solution is my favorite. I'd encourage you to also look at the solutions from other authors in the lynda.com library. You'll be able to compare different author styles and different languages. I've also asked our authors to create a visual display of the solution so you can see how each language draws video representations. You may want to pause this course and try to solve it on your own. You'll have a better understanding of the problem and a better understanding of the solution I've created.
Author
Updated
6/25/2015Released
4/23/2015Mark introduces challenges and then provides an overview of his solutions in R. Challenges include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenges in languages like C++, C#, JavaScript, PHP, Python, Ruby, and Swift.
Skill Level Intermediate
Duration
Views
Q: R Studio tells me that it can't find files I expect to be available. Where can I find them?
A: Use the setwd() command to set the working directory to match the folder you're working in.
Q: I am unable to access the Lake Pend Oreille data from outside the U.S.
A: A static copy of this data is provided here for lynda.com members outside of the U.S.
Related Courses
-
Code Clinic: PHP
with David Powers4h 44m Intermediate -
Code Clinic: Python
with Barron Stone2h 23m Intermediate -
Code Clinic: Ruby
with Kevin Skoglund5h 42m Intermediate -
R Statistics Essential Training
with Barton Poulson5h 59m Intermediate
-
Introduction
-
Welcome1m 12s
-
Using the exercise files1m 9s
-
Using RStudio4m 58s
-
The R programming language10m 29s
-
Debugging with browser()4m 26s
-
-
1. Problem One: Statistical Analysis
-
Overview of my solution1m 52s
-
Changes at Lake Pend Oreille1m 24s
-
Walking the unit tests3m 53s
-
Three lessons learned1m 26s
-
2. Problem Two: Image Analysis
-
Applying CCF to images7m 58s
-
Running a unit test2m 22s
-
Exploring funcwrapper1m 10s
-
Stepping across the image5m 33s
-
3. Problem Three: Eight Queens
-
Overview of my solution1m 29s
-
A matrix of possibilities6m 44s
-
Understanding countUnique.R6m 33s
-
4. Accessing Peripherals
-
Testing mouse access1m 40s
-
Testing sound generation5m 22s
-
5. Recursion and Directories
-
Walking the directory sort code10m 56s
-
6. Building the Web
-
Overview of my solution4m 16s
-
Installing and using Shiny4m 46s
-
Setting up the app directory3m 25s
-
Modifying index.html5m 13s
-
Modifying server.R19m 6s
- Mark as unwatched
- Mark all as unwatched
Are you sure you want to mark all the videos in this course as unwatched?
This will not affect your course history, your reports, or your certificates of completion for this course.
CancelTake notes with your new membership!
Type in the entry box, then click Enter to save your note.
1:30Press on any video thumbnail to jump immediately to the timecode shown.
Notes are saved with you account but can also be exported as plain text, MS Word, PDF, Google Doc, or Evernote.
Share this video
Embed this video
Video: A classic computer science problem