Syllabus, CPSC 331, Fall 2010

home page -  news -  syllabus -  schedule -  assignments -  tutorials -  tests -  java -  references -  Mike Jacobson


about CPSC 331 -  learning goals -  CS background -  math background -  writing background -  how to succeed -  what to avoid -  assessment

 CS Background

An Object-Oriented Programming Language

Since students in this course have successfully completed either Computer Science 219, 233, 235, or Computer Engineering 339, familiarity with the syntax of an object-oriented programming language (likely either Java or C++ ) will be assumed. Students completing the above courses frequently need to review or improve their understanding of the following concepts in order to succeed in CPSC 331.

Chapters 1 and 3 of the course textbook provides an introduction to Java that should be useful for students who are not familiar with this programming language but who are reasonably familiar with C++; all such students should read the beginning of this appendix (at least to the end of Section A.4) as soon as they can.

Early chapters of the recommended reference “Head First Java” cover much of the same material in a different way.

Recursion

Recursion is generally introduced briefly, either near the end of a first course in programming or near the beginning of a second. It is used heavily in CPSC 331, both because a variety of data structures and properties have recursive definitions and because a variety of algorithms are best described and most easily implemented in a recursive way.

Section 3.5 of the course textbook includes information about recursion that will be used in this course. Students should make sure that they understand this material as soon as possible.

Additional References

People learn in different ways — and a reference that one student finds to be indispensible is worthless to another. It therefore makes sense to provide multiple references for the same material if this material is important for a course.

  1. Walter Savitch
    Absolute Java
    Third Edition, Pearson Addison-Wesley, 2007

    This is a highly regarded reference that has recently been updated. It does not assume that readers have an extensive background in programming (and can be used as the textbook for a first programming course). Material covered in the first three chapters of this text will be needed almost immediately in this course.

    Printed copies can also be purchased at Amazon or Chapters.

  2. The alternative data structures reference, “Data Abstraction & Problem Solving with Java: Walls & Mirrors,” introduces the Java programming language in a way that may be useful for students who used a different object-oriented programming language than Java in prerequisite courses. In particular, its first chapter presents “Java Fundamentals,” and a very concise “Comparison of Java to C++” can be found as an appendix.

  3. Additional online Java documentation and tutorials are freely available. Some students will find this to be preferable to printed material.


Last updated:
http://www.cpsc.ucalgary.ca/~jacobs/cpsc331/F10/syllabus/cs_background.html