CSCI 051G
Introduction to Computer Science with Grace


Computer Science 051G is an introduction to algorithm development emphasizing object-oriented design. Algorithms will be implemented as programs in the Grace 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 052, CSCI 062, and more advanced computer science courses. For those who wish a good introduction to the science of computing, we highly recommend the combination of CSCI 051(G) and CSCI 052, which includes an introduction to a broad array of topics in computer science. For those who wish a more intensive introduction to programming, we suggest the combination of CSCI 051(G) and CSCI 062.

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 Grace and 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(G) 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 or CSCI 062. Please discuss this with your instructor immediately if you feel you fall into this category.

CS 051G is an experimental section of CS 051 that uses the new Grace programming language to teach programming. Grace is a very expressive language that was designed to teach novices object-oriented programming. Learning Grace provides a good foundation for learning other, more complex languages. At the end of the semester you will also learn Java so that you will be well prepared for subsequent CS courses.