Department of Computer Science and Engineering

CSE 131 / 501N

Fall 2015

Course Description

CSE131. Computer Science I

An introduction to software concepts and implementation, emphasizing problem solving through abstraction and decomposition. Introduces processes and algorithms, procedural abstraction, data abstraction, encapsulation, and inheritance. Recursion, iteration, and simple data structures are covered. Representation invariants, loop invariants, and exception handling are used as techniques for writing correct and robust programs. The impact of data representation on performance is discussed but not emphasized. Concepts and skills are mastered through programming projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is used as the vehicle of exploration. Prerequisites: Comfort with algebra and geometry at the high school level is assumed. Patience and good planning, organization, and problem solving skills will help you to succeed. Prior programming experience is helpful, but not necessary. Credit 3 units.


Additional Notes:

The primary goal of CSE131 is to train your mind to think like a computer scientist. Adding this mode of thought to your repertoire can help you solve problems in other areas as well.

You will learn how to solve problems by decomposing them into logical pieces, and you will learn how to capture common patterns in order to save time and effort in the development process. You will also discover that computer programming is an art, as you strive not only for solutions that not only "work" but also are "elegant." Concepts are taught in the object-oriented programming paradigm.

CSE131 is not an easy course, but students find it rewarding and well worth the effort. Expect to spend an average of 10 hours per week outside of class on CSE131 coursework.

CSE131 is the recommended first course for computer science majors, minors, or anyone else who is interested in an introduction to computer science concepts.