The Container.h file was missing an #include. This did not result
in a compilation problem in the sample code because other files
included the required file, but could potentially have resulted in
failed compiles for your code.
This is the same problem that cropped up in the PP2.zip - I copied the
wrong .zip file to make the PP3.zip. Sorry. If you notice any other
problems, let me know.
PP3 is now available
Check out the projects page!
Topics for second exam
As promised, here is a list of topics, not necessarily complete or
covering, which we have discussed since the second exam:
priority queue ADT and implementations (list-based, heap-based,
binomial queue); red-black trees; hashing and hash tables (including
separate chaining vs. open addressing, collision resolution (probing)
strategies, clustering).
I am away (3/4 - 3/7)
I will be away at a conference Thursday (3/4) through Sunday (3/7).
My office hours are cancelled, and I will not be reading the request
tracker or the newsgroup. Teaching assistants will monitor the
request tracker and the newsgroup Thursday and Friday. The TAs may
monitor them on the weekend, but they are not required to do so.
Please plan accordingly.
PP2: STL list class problem
& workaround
It seems that there may be a bug in the STL list class.
Fortunately, there seems to be an easy workaround.
The symptom is:
"/opt/SUNWspro/WS6U2/include/CC/Cstd/./list.cc", line 351:
Error: Too many arguments in call to
"std::list>::__adjacent_merge(
std::list>::iterator,
std::list>::iterator,
std::list>::iterator)".
"/opt/SUNWspro/WS6U2/include/CC/Cstd/./list", line 465:
Where: While instantiating
"std::list>::sort(bool(*)(const int&,const int&))".
"/opt/SUNWspro/WS6U2/include/CC/Cstd/./list", line 465:
Where: Instantiated from non-template code.
The problem seems to crop up when passing the "-template=wholeclass" option
to the CC compiler. To fix this, edit the makefile to change the line which
reads
CC = CC -template=wholeclass,extdef
so that it reads as follows instead:
CC = CC -template=extdef
Let me know if you encounter any other issues with the list class.
Note about PP2 makefile capability
The makefile provided has the ability to make a zip file, ready to
submit. Simply type 'make submitzip' and it will remove files which
should not be submitted, and then zip up the PP2 directory and its
contents, and deposit a PP2.zip file in the directory containing the
PP2 directory.
Improved PP2.zip available
A new PP2.zip file is available, which you should download. It
contains the following changes:
The visitors provided in the Visitor directory have been
generalized so you can use them directly in your code, without having
to write new ones.
The LRSList.cc file had an incorrect method return type for its
find method. This does not affect any code you might write, but is
potentially confusing.
The Container.h file was missing an #include. This did not result
in a compilation problem in the sample code because other files
included the required file, but could potentially have resulted in
failed compiles for your code.
Thanks to Sara Haydanek for pointing these problems.
Java solution to ReviewProject
I have not yet had a chance to re-write my Java solution to the review
project in C++. I'd like you to be able to look at the design of the
solution, though so here's the Java
version. I will post a C++ version after the exam.
Topics for first exam
As promised, here is a list of topics, not necessarily complete or
covering, which we have discussed since the beginning of term:
basic vocabulary; basic C++; pointers; templates; polymorphism;
patterns (state; model-view-controller; visitor; singleton) abstract
data types (ADTs); list ADT; LRStruct; big-oh notation; balanced trees
(AVL, Splay).
Fall 2005 UTA position(s) available
We are now accepting applications to fill positions as
undergraduate TAs in CSE 115 starting in Fall 2004.
Students interested in applying must minimally meet the
following qualifications:
Must be an undergraduate student.
Must be in good academic standing at the University and within
the department.
Must have taken CSE 115 - 116 at UB.
Must be enrolled as a student at UB for the entire 2004 - 2005
academic year.
Undergraduate TA responsiblilites include (but are not limited to):
teaching recitations,
holding office hours,
hosting help sessions,
attending all class lectures, and
attending a weekly 115 staff meeting.
Applicants are asked to create a resume and also to write a no more
that 250 word (i.e. - one page double spaced) response to the
following question:
What is/are the thing(s) that you learned in CSE 115 that you (have
used most often/found most important) as you progressed through the
program?
You must place your resume, your response to the question above as
well as a print out of the "My Grades & GPA" link from MyUB in the
mailbox of Adrienne Decker no later than Friday, March 5, 2004. You
must include your UB email address on your resume.
Suitable applicants will be called back for an interviewing process
to determine a candidate's appropriateness for the position.
If you have any questions or need any additional
information, please email Adrienne Decker at adrienne@cse.buffalo.edu with the subject line "CSE
115 UTA Information".
PP2 is now available
Check out the projects page!
Submit Inspector available
The submit inspector is now available on the resources page. The
gradebook is there as well, but it not linked to any useful data
source just yet.
Bug fix for GUI code
A student sent e-mail to cse-250-alphonce with the following
observation:
student> from tcmdwin.cpp:
student> case Key_add:
student> {
student> cout<<"add pressed";
student> break;
student> }
student> case Key_sub:
student> {
student> cout<<"subtract pressed";
student> break;
student> }
student>
student>
student> When I press the add button on the calculator it keeps saying
student> "subtract press" I can't get the plus button to work at all. I just
student> tried redownloading the files and recompiling everything from
student> scratch. All i have modified to the original file is what you see
student> above, and included iostream, and using std::cout.
student>
student> How can I fix this?
me> Thanks for catching this - it's my mistake.
me>
me> If you go to line 110 of tcmdwin.cpp, you will see a line that looks
me> like this:
me>
me> {C_Button,Key_sub,Key_add,"+",NoList,CA_Size,isSens,frm1,Key_equal,Key_sub,20,"plus"},
me>
me> The second item in this structure, "Key_sub", should be "Key_add".
me>
me> I will fix this in the zip file, and also post this notice to the
me> newsgroup and the announcements page of the web site.
The issue was that when the + key was pressed the code was reporting the
same "event code" as for the - key, so pressing either button was handled
by the "Key_sub" case. The change to line 110 results in Key_add being
reported when the + key is pressed, as desired.
I have also fixed this in the ReviewProject.zip file in /projects/CSE250, so
if you download a fresh copy this change will be there. It is probably easier,
if you have already modified this code with your own contribution, to just
edit line 110 as noted above.
The GUI for the review project is available. Check out the addendum
for PP1 on the projects page.
Review project is posted
The review project (PP1) has been posted on the projects page.
Department is enforcing prerequisites
Please note that the department has started direct enforcement of
prerequisites in this course. If you do not have the minimum required
grade in all the prerequisite courses (CSE 116, CSE/MTH 191,
and CSE142), or verifiable transfer credits, your registration in CSE
250 will be cancelled. You will receive an e-mail directly from
Jaynee Straw in this case.
The 'cse-250-alphonce@cse.buffalo.edu' e-mail alias is working!
The 'cse-250-alphonce@cse.buffalo.edu' e-mail alias is working! You
may have experienced problems in the past few days due to some
configuration problems. These problems have now been resolved.
Welcome!
Welcome to the CSE 250 home page! Announcements to the class are
generally posted to this page. Notices may be posted here and/or to
the course newsgroup (sunyab.cse.250). You should check this
page often (at least once a day) for updates.