---------- Forwarded message ----------
From:
Instructor of C S 235 Section 004 <rpbu...@cs.byu.edu>
Date: Tue, Aug 2, 2011 at 10:27 AM
Subject: Preparing for CS 235
To: C S 235 Section 004 <
dave.w...@gmail.com>
I’m pleased to see that you are enrolled in CS 235, Data Structures and Algorithms, for fall semester, 2011. Fall is likely to be the last time that CS 235 will be presented using the Java programming language. Subsequent offerings of CS 235 are likely to use the C++ programming language.
The purpose of my email is to provide you with some information that may be helpful prior to the start of the semester. I’ve organized the information under five headings: Prerequisites and Preparation, Course Text, Computers, Time Commitment, and More Information.
Prerequisites and Preparation
If you have completed CS 142, Introduction to Computer Programming, or an equivalent course, likely you are prepared for CS 235. However, if you have not programmed recently in Java, you may wish to “brush up” or at least discover that your Java programming skills have not become rusty. You can do so by completing Lab 1, posted on the course website at:
http://students.cs.byu.edu/~cs235headta/
If you have completed my CS 142 course, you should be comfortable using the following features of the Java programming language. Said differently, I’ll assume that you are familiar with these features or that you are comfortable referencing the Java API or a Java text to become familiar.
• predefined classes
o the Color class
o the Graphics class
o the Math class
o the Random class
o the Scanner class
o the String class
o the Timer class
o the Wrapper classes (including auto-boxing and auto-unboxing)
• escape sequences
• data conversion and comparison techniques
• enumerated types
• UML diagrams
• classes and methods
o encapsulation
o constructors
o overloading
o overriding
o visibility modifiers
o parameter passing
o variable-length parameter lists
o method decomposition
• conditionals and loops
o logical operators
o if statements
o if-else statements
o the conditional operator
o switch statements
o while loops
o do loops
o for loops
o for-each loops
• iterators
• static class members
• class relationships (dependency, aggregation, inheritance)
• interfaces
o general
o Comparable
o Iterator
• the “this” reference
• testing
• arrays
o one-dimensional
o multi-dimensional
o initialize lists
• ArrayLists
• generics
• inheritance
• abstract classes
• class hierarchies
• interface hierarchies
• polymorphism
o via inheritance
o via interfaces
• sorting algorithms including selection, insertion, and bubble
• searching algorithms including linear (with and without sentinels to mark the end of the list) and binary
• exceptions
o try-catch statements
o exception propagation
o I/O exceptions
• reading and writing text files
• recursion
•
dynamic structures (singly-, doubly-, circularly-linked)
• GUIs
o frames
o panels
o labels
o buttons
o checkboxes
o text fields
o text areas
o events and event sources
o layout managers
o borders
o mouse events and key events
o adaptor classes
o dialog boxes
o sliders
o tool tips
o mnemonics
o combo boxes
o scroll panes
o split panes
I’ll also assume that you are acquainted with
• linear lists
• stacks
• queues
• deques
• sets
• binary trees
• trees
• graphs
• digraphs
After determining that you are “up to speed,” some of you may be motivated to get a head start by working on CS 235 course assignments (which you’ll find on the course website). This you may do, but it is not necessary. Sometimes the best use of the days preceding the start of the semester is devotion to the tasks that need to be completed during that time, with appropriate time for rest and relaxation, and time with friends and family, accompanied by a resolution to devote enough of your fall semester energies to remain current in your CS 235 assignments throughout the fall semester.
Course Text
The course text is Data Structures, 2nd Edition, Koffman & Wolfgang, ISBN 978-0-470-12870-1. The last time I checked, it was $95.83 on Amazon and less than $45 from other sources; you might want to shop around for a best price.
Computers
The University has been generous with the Computer Science Department; we have labs filled with computers available to you six days a week for doing your CS 235 programming assignments and exams. However, you are also welcome to use your own computer or any computer to which you have legitimate access.
Time Commitment
The average student spent 7.3 hours out of class on CS 235 during the fall semester of 2010. However, because the majority of this time is spent writing computer programs, the time you will need to devote outside of class could be less or substantially more. For any programming assignment or programming exam, the time required by different students can vary by a factor as high as 10. Students rarely overestimate the demands of the course, but commonly underestimate its demands.
Depending on final enrollment, we hope to offer help sessions every weekday at 10 a.m., 1 p.m., and 5 p.m. They will be devoted specifically to the current lab assignment; there are 9 lab assignments. While help session attendance is not required, I strongly recommend arranging your schedule so that you can attend one help session for each lab assignment. If your schedule is such that you cannot accommodate one help session for each lab assignment, you may wish to consider enrolling during a subsequent semester or term.
More Information
You can find substantial detail about the course by going to the (spring 2011) course website:
http://students.cs.byu.edu/~cs235headta/
which is under revision for fall.
For questions not answered here or on the course website, please feel free to send me an email:
rpbu...@cs.byu.edu. You can expect to receive an answer from me within 24 hours.
Best wishes.
Robert P. Burton, Ph.D.
Professor of Computer Science