|CPSC 225||Intermediate Programming||Spring 2017|
On this page:
|Course Description and Objectives||
This course builds on CPSC 124, covering some of the more advanced fundamentals of programming including basic data structures (such as lists, stacks and queues, binary trees, and hash tables), recursion, common algorithms (such as searching and sorting), and generic programming. This course also looks more deeply at object-oriented programming, including the use of class hierarchies. Currently, the course is taught using the Java programming language.
Computer science revolves around programs - creating programs, analyzing programs, making programs more efficient and easier to understand, making it easier to create and maintain programs, considering what programs can and cannot do...the list goes on. The first semester of programming (CPSC 124) is intended to introduce basic programming skills - the syntax and semantics of a particular programming language, and some of the basics of program design. This second semester of programming (CPSC 225) is intended to build a more sophisticated and confident programmer by focusing on skills necessary for the construction of larger, more complex programs. The emphasis on data structures and data organization reflects the importance of managing data in programs - choosing an appropriate data structure for a particular application is important for the program's efficiency and simplicity.
This course covers basic data structures (arrays, linked lists, and binary trees) and abstract data types (lists, stacks and queues, priority queues, maps, and sets) as well as some common algorithms (searching and sorting), fundamental algorithmic techniques (recursion), and writing correct and efficient programs. It also takes a deeper look at object-oriented programming. Additional topics such as GUI programming, client-server programming, streams and files, and threads will be covered as time permits. The course is taught in Java.
Objectives - by the end of the course, the successful student should be able to:
C- or better in CPSC 124, or instructor permission
Introduction to Programming Using Java, 7th ed.
The book is freely available online at http://math.hws.edu/javanotes/.
You can also download a PDF copy if you prefer an electronic version that you can read offline, or order a printed copy if you'd like something you can refer to away from the computer. See the "Downloading And Other Links" section at the bottom of the http://math.hws.edu/javanotes/ page for more information. We will primarily use the second half of the book, so you can order just Part II. Or, if you don't have a copy of Part I from CPSC 124 and would like the whole thing, you can save a few dollars by ordering the whole book instead of the separate parts. Please do not print out chunks of the text on the Math/CS department printers.
Any additional material will be handed out in class and/or posted on the course webpage.
All of the software needed for this course is available on the computers in two labs: Rosenberg 009 and the Math/CS lab (Lansing 310).
All of our development will be done in the Eclipse development environment. It is a little inconvenient to work on a single project on multiple computers without using version control, but if you want to set up your own computer so that you can work on assignments without going to one of the labs, you can. You will need three things:
Eclipse projects store some environment-specific configuration information and Eclipse does some management of the workspace directory on its own, so your best bet is to copy the project folder somewhere other than into your workspace, create a new project within Eclipse on the current computer (if you don't already have one for this program), and then import the source files from the copied folder to the new project via Eclipse. It's a bit awkward but it does get the job done. Stop by if you need help.