Introduction to Computer Science with Java

Computer Science 051J is an introduction to algorithm development emphasizing object-oriented design. Algorithms will be implemented as programs in the Java programming language. We will introduce data structures and recursion as tools to construct correct, understandable, and efficient algorithms. These topics will be developed further in CSCI 054, CSCI 062, and more advanced computer science courses.

By the end of this course you should have a good basic understanding of how to develop (design, code, and debug) medium-sized programs in Java, and have a basic understanding of how one might analyze programs for correctness and efficiency.

This course is a prerequisite for all upper level Computer Science courses. In Computer Science 051 we do not assume that you have had any previous computer programming experience. If you have had extensive previous experience you might consider CSCI 052, CSCI 054, or CSCI 062. Please discuss this with any member of the department's faculty if you feel you fall into this category.

This semester the CS department is offering 3 different introductory courses, CS 51G, CS 51J, and CS 51P. All three satisfy the same prerequisites for advanced courses in computer science. However, they use different languages and are will focus on slightly different applications.

CS 51G and CS 51J focus on object-oriented programming and use event-driven programming, graphics and animations (as in games) to illustrate the concepts. CS 51J uses the popular commercial object-oriented language, Java. CS 51G uses the new object-oriented language Grace. Grace was designed to help novices learn to program by eliminating irrelevant complexities typically found in commercial programming languages.

CS 51P focuses on data-intensive programming using the programming language Python. Special emphasis on working with and making sense of data in order to connect course material with applications in other disciplines. While Python is primarily a procedural language, it also includes object-oriented features.

Academic accommodations

If you have a certified academic accommodation, please contact me early in the term so that we can make sure that any accommodations are handled appropriately.