Fwd: Preparing for CS 235

66 views
Skip to first unread message

Dave Willerth

unread,
Aug 3, 2011, 5:07:59 AM8/3/11
to byu-142-s...@googlegroups.com, 2rob...@gmail.com
Just to give anyone taking 235 or planning on it what we will be covering this Fall. I highlighted a couple that still sound kind of foreign to me, and maybe either Rob can fill us in if there's time to briefly talk about the purpose of them -- or Bucky. 

Hopefully we can all recognize that in any CS class, the objective is to stay ahead, and we will all do so and pass the FIRST time around! 

Anyone taking it, please respond to this, so perhaps we can put together a study group ahead of time. Who knows maybe we can even get started a month in advance!

---------- 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


Dave W

unread,
Aug 3, 2011, 5:24:24 AM8/3/11
to BYU 142 Summer 2011
It appears as though the topics I highlighted did not show up in the
group post, so I'll just post them here(along with a couple others):

o variable-length parameter lists

o the Wrapper classes (including auto-boxing and auto-unboxing)

• dynamic structures (singly-, doubly-, circularly-linked)

I’ll also assume that you are acquainted with
• linear lists
• stacks
• queues
• deques
• sets
• binary trees
• trees
• graphs
• digraphs


--------------------------------------------
--------------------------------------------
> to send me an email: rpbur...@cs.byu.edu.  You can expect to receive an

Matt Jeffs

unread,
Aug 3, 2011, 9:21:28 AM8/3/11
to byu-142-s...@googlegroups.com
I was planning on taking CS 235 next semester but this list of things I should know may just dissuade me. I can't recall having even heard half of them, and would never call myself comfortable with the rest. I would definitely not be opposed to a study group or getting started a month ahead in order to catch up.
--
Matt

Jesse Howell

unread,
Aug 3, 2011, 10:32:57 AM8/3/11
to BYU 142 Summer 2011
I need to work out my schedule before I sign up for 235, but I do plan
on taking it as well. Also, having taken 142 before, I would feel
comfortable explaining/teaching a few of those points to some peers in
a study group.

--dynamic structures (singly-, doubly-, circularly-linked)
--stacks
--queues
--binary trees
--trees

Rob Smith

unread,
Aug 3, 2011, 12:24:21 PM8/3/11
to Dave Willerth, byu-142-s...@googlegroups.com
I don't think Dr. Burtons "assumptions" are meant to be synonymous
with "what you were meant to learn in 142". As evidence for this, look
at the official department learning outcomes, of which Dr. B is most
definitely aware:

https://cs.byu.edu/courses/cs142/info

You will see that a lot (most?) of his assumptions are nowhere to be
found on that list. What he says is "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." I personally would not make
half of those assumptions. You should know how to do maybe 95% of the
first list. At least 10% of that first list is not on the department
learning outcomes. The stuff in the second list is not on the
department outcomes at all. It is outside of the scope of the class.

Hope this helps (direct your displeasure). If I were you I'd spend
some time looking up tutorials on whatever you don't get and trying to
understand it. I would specifically look at his website and get a head
start on the projects.

Rob

On Wed, Aug 3, 2011 at 3:07 AM, Dave Willerth <dave.w...@gmail.com> wrote:

Sean Hill

unread,
Aug 3, 2011, 1:07:00 PM8/3/11
to BYU 142 Summer 2011
Rob,

Would you feel that it would be smarter to retake 142 in the fall with
C++, and then 235 in the winter with C++. Or stay ahead of the switch,
and take 235 in java in the fall, and then whatever the next course is
in the winter in java?

Jesse Howell

unread,
Aug 5, 2011, 10:15:42 AM8/5/11
to BYU 142 Summer 2011
Whether or not "Dr. Burton is on crack," my offer is still open on
teaching that list of things in a study group. Are you guys planning
on meeting up anytime in the 2-week break?
Reply all
Reply to author
Forward
0 new messages