James Skon's primary research interest includes adaptive learning systems, natural language processing and Internet-of-things. Currently he is working on a learning system that builds a custom curriculum for learners based on learner assessments. He is also exploring the use of the learning system for planning and design in architectural engineering.

Areas of Expertise

Computer science, artificial intelligence, linguistics, computer science pedagogy, and visualization of complex mathematical spaces.


1997 — Doctor of Philosophy from The Ohio State University

1982 — Master of Science from The Ohio State University

1980 — Bachelor of Arts from Mount Vernon Nazarene Univ

Courses Recently Taught

This course is an introduction to the intellectual scope of computer science and to the art of computer programming. This entry-level course is for students of all majors, including those with and without previous programming experience. We teach the Python programming language to introduce programming concepts. The course covers topics in abstraction, algorithms and program design, basic data structures, security, networking, privacy and history. Web technologies including HTML, CSS and Javascript are examined. Offered every semester.

A study of software design project that requires planning, analysis, design, implementation, testing and maintenance. Different methods of planning, definition, requirements analysis and cost estimation are considered. A central component of the course is a semester long team project which engages a team of three to five students in the analysis, design, implementation and documentation of a significant applied project. The goal of this team project is for the students to engage with the material as they work to solve a real-world problem. These projects are real needs of organizations in the surrounding community (including Gambier, Knox county and, at times, beyond). Prerequisite: MATH 138, SCMP 118, 218 or 318.

This course introduces students to the analysis and design of computer algorithms. Upon completion of this course, students will be able to do the following: 1) analyze the asymptotic performance of algorithms; 2) demonstrate a familiarity with major algorithms and data structures; 3) apply important algorithmic design paradigms and methods of analysis, and; 4) synthesize efficient algorithms in common engineering design situations. Prerequisite: MATH 222 and SCMP 118 or PHYS 270 or equivalent.

This course presents an introduction to computer programming intended both for those who plan to take further courses in which a strong background in computation is desirable and for those who are interested in learning basic programming principles. The course will expose the student to a variety of applications where an algorithmic approach is natural and will include both numerical and non-numerical computation. The principles of program structure and style will be emphasized. SCMP 118 may be paired with SCMP 218 or either may be paired with any mathematics or statistics course to satisfy the natural science diversification requirement. No prerequisite. Offered every semester.

This course gives students experience designing, implementing, testing and debugging moderately complex systems of software components that collectively form a multilayer application. There will be an emphasis on crafting quality code, designing and implementing effective user interfaces, and building multicomponent architectures using a mix of off-the-self and custom code. Topics will include inner process and inter-system communication, multi-threading, and the synchronization of shared resources, web interfaces and working with large data sets. Students will primarily use C++, but also will learn Javascript and other languages as needed. This interdisciplinary course does not count toward the completion of any diversification requirement. SCMP 218 is recommended but not required. Prerequisite: MATH 138 or permission of instructor.

This capstone course is intended to provide an in-depth experience in computational approaches to an individual topic of choice. Students will also be exposed to a broad range of computational application through presentations and discussion. Each student will give several presentation to the class throughout the semester. Permission of the instructor and program director required. This interdisciplinary course does not count toward the completion of any diversification requirement. Prerequisite: SCMP 118 or PHYS 270, senior standing, completion of at least 0.5 units of an intermediate course and at least 0.5 units of a contributory course.

The Individual Study is to enable students to explore a pedagogically valuable topic in computing applied to the sciences that is not part of a regularly offered SCMP course. A student who wishes to propose an individual study course must first find a SCMP faculty member willing to supervise the course. The student and faculty member then craft a course syllabus that describes in detail the expected coursework and how a grade will be assigned. The amount of credit to be assigned to the IS course should be determined with respect to the amount of effort expected in a regular Kenyon class. The syllabus must be approved by the director of the SCMP program. In the case of a small group IS, a single syllabus may be submitted and all students must follow the same syllabus. Because students must enroll for individual studies by the end of the seventh class day of each semester, they should begin discussion of the proposed individual study preferably the semester before, so that there is time to devise the proposal and seek departmental approval before the registrar’s deadline. This interdisciplinary course does not count toward the completion of any diversification requirement. Permission of the instructor and program director required. No prerequisite. \n