James Madison University

Spotlight on the Introductory Programming Sequence

Most Computer Science students at JMU take a three-course programming sequence consisting of Algorithm Development (CS139), Advanced Computer Programming (CS239) and Algorithms and Data Structures (CS240). In CS139, students learn fundamental problem-solving techniques using computer software tools that support algorithm development and procedural abstraction to analyze a domain and create reusable software applications. In CS239, students use various advanced problem-solving strategies to develop algorithms using classes and objects. Students also learn how to implement and use elementary data structures, including character strings, records, files, stacks and queues. In CS240, students learn to implement and analyze elementary data structures and the basic complexity classes of algorithms that use strategies such as greedy algorithms, divide-and-conquer algorithms and backtracking algorithms. This analysis is especially applied to problems in searching, sorting and parsing.

CS139 typically begins with a discussion of computational and algorithmic thinking. This includes an overview of digital computers and how they work, the representation of data types in these kinds of devices, and operators of various kinds.

Diagram of CPU Diagram of counting
Diagram of starting points Diagram of truth tables

It then moves onto different kinds of control structures:

and how to work with objects and classes.

CS239 continues where CS139 stops, beginning with a discussion of the design and implementation of simple classes:

and then moving on to such topics as specialization, interfaces, abstract classes, and polymorphism.

Diagram of class model

CS240 considers the deisgn and implementation of abstract data types. It usually begins with a detailed discussion of data structures and how to work with them.

daigram of name table diagram of linked structures

It then moves onto a discussion of algorithms of various kinds (including searching and sorting) and how to classify them.

CS240 also includes a discussion of both algorithmic performance, both from a worst-case and empirical perspective.

diagram of landau numbers diagram of execution times

The syllabi for these course provides all of the information you could possibly need. Some recent examples include: CS139, CS239, and CS240.

Welcome from Computer Science

PHOTO:Sharon Simmons

The Computer Science department strives to be an intellectual community that continually explores the broad field of computing, applies this knowledge to solve problems in a variety of domains, and engages with the profession and society at large. More >

Announcements


  • New! Spring 2012 Advising Newsletter
  • April 3 - Registration for 2012 Fall Semester Begins
  • April 27 - Last Day of Classes
  • April 30 - May 4 - Final Exams
  • May 4 - Graduate School Commencement
  • May 5 - Undergraduate Commencement