Quarter: Winter 2003
|
Instructor |
Professor: |
TA: |
|
E-mail |
||
|
Web Page |
||
|
Phone |
310-825-6735 |
310-825-1770 |
|
Office |
3532E Boelter Hall |
4829 Boelter Hall |
|
Office Hours |
MW |
Tu |
|
Class Location |
2200 WGYOUNG |
2444 Boelter Hall |
|
Class Time |
MW |
F |
Thank you for all your hard work this quarter. We hope that you have enjoyed the class as much as we’ve had teaching the class. It was our pleasure to serve you this past quarter.
We hope that you have a great spring break, get some well-deserved rest, and recharge for the upcoming quarter.
Good luck to all of your in your future endeavors!
Students who wish to pick up their graded material can pick up their material from Van Dao at 3531K Boelter Hall.
The TA will hold one last office hour today (Wednesday) from
The re-grade policy will be as follow:
· For any material you bring in to be re-graded, the whole material is subject for a re-grade. Therefore, you may get an addition point somewhere, but lose more points elsewhere, and actually walk out with a lower grade on the assignment.
· For any material you bring in to be re-graded, if you are arguing about why another person got points and you didn't for the same answers, both you and the other person's exams are therefore in question, and will both be re-graded. A possible outcome can be the other person's grades be lowered, instead of your grades be raised.
All graded materials are available to be picked up from the TA at 4829 Boelter Hall. A listing of the students’ grades by SID is as follow:
If you are missing a grade for any assignments that has been handed back, please notify the TA as soon as possible so he can enter your grade into the grade book.
The TA’s Final Exam Notes in Microsoft Word format has been added to our Class Handouts section. These notes are the TA’s own personal notes and may not be 100% correct. The only reason why these notes are posted is to give the students a starting point to start creating their own final exam notes. Additional points will NOT be given to students are mislead because of these notes, so use it at your own discretion.
Review session will be held by the TA today at 2444 Boelter Hall from 1-3pm. If the room is unavailable, we will leave a note on the door directing students our new location.
Homework 6 Descriptions has been added to our Class Handouts. Homework 6 is not due and students do not have to turn in anything for this assignment. This homework is handed out to give students an opportunity to work on sample questions regarding transactions. The solutions for Homework 6 were also passed out in lecture, and will be available at the TA’s office at 4829 Boelter Hall after lectures or after discussions.
Several of you have asked about project grades and posting grades in general, and also about review sessions.
· Regarding project grades, the TA will hand back graded projects and homeworks before the final exam.
· Regarding posting grades in general, the TA will post the SID and the grades for each assignment on our webpage before the final exam. Please e-mail him at jthsiao@cs.ucla.edu if you do NOT want your grades posted.
· Regarding review sessions, we will be holding a review session on Saturday, March 15th, from 3-5pm in 2444 Boelter Hall (the same room as our discussion).
In discussion this week, we will briefly go over Project 4 requirements and clarifications. Afterwards, we will be covering join algorithms (merge, hash, and index), E/R diagrams, and relational design theory (functional dependency, decomposition, and Boyce-Codd Normal Form).
Homework 3 is graded and ready to be picked up. You can pick up you graded material either during office hours, or after lectures and discussions.
Homework 4 Descriptions has been added to our Class Handouts section. Homework 4 is assigned today, and will be due in class next, Wednesday (Feb. 26th).
Project 4 Descriptions has been added to our Class Handouts section. Project 4 is assigned today, and will be due in class next, next Wednesday (Mar. 5th).
There may have been some misinformation and/or confusion from the Project 3 requirements from last Friday’s discussion.
In part B, you are given two queries, and need to create one more "interesting" query. For each of the queries, you are to compare the running time of the query by implementing two different indexes (one at a time) and gather/compare their running times. For each of the three queries, after comparing the running times for two sets of indexes for each, you are to identify one best index for the query, and explain why. So in total, that is six indexes, six running times, and three recommendations with its explanations.
Because our machines are time-shared, and our data set rather small, you may find that the running times may be similar, or the one that you expect to perform better didn’t actually perform better. Given the uncertainty of the running time, you are encouraged to gather your running times a few times to get a more accurate result. Also, most (if not all) of your grade in this portion of part B would be weighted on the explanation, instead of the actual running time result, to justify your choice.
If there is any more confusion about part B, please e-mail the TA at jthsiao@cs.ucla.edu as soon as possible and he will address the confusion immediately.
Thank you!
Here are a few resources that you can look up if you want faster response for your project questions:
· The References section in our class web pages
· The A Complete Guide to DB2 Universal Database book referred to in our References section.
· The “? SQL<error code>” command in DB2. (For example, if you have an error message with SQLCODE -803, try “? SQL0803” in the DB2 shell.)
· The Google groups at http://www.deja.com/.
Hopefully, you’ll be able to find the answers you need there, if you have an urgent question that needs to be answered ASAP.
As mentioned earlier, the location stated for the data files in the project handouts are incorrect. The correct path to the files should be /w/class.01/cs/cs143u/cs143uta/project/<file name>.
In the MovieGenre and MovieDirector tables, it is possible for a movie to fall under multiple genres and have multiple directors. Therefore, the single key of id would not work. Please use (id, genre) and (id, did) for keys of those tables, respectively.
The TA’s Midterm Notes has been added to our Class Handouts section. These notes are the TA’s own personal notes and are not to be considered 100% correct. The only reason why these notes are posted is to give the students a starting point to start creating their own midterm notes. Additional points will NOT be given to students are mislead because of these notes, so use it at your own discretion.
Project 3 Descriptions has been added to our Class Handouts section. Project 3 is assigned today, and will be due in class next, next Wednesday (Feb. 19th).
Homework 3 Description has been added to our Class Handouts section. Homework 3 is assigned today, and will be due in class next Wednesday (Feb. 12th).
In addition to the absolute and relative URL comment made earlier, a cleaner way may be just to declare a couple of global variables at the beginning of your files. For example:
String machine =
"http://landfair.seas.ucla.edu:11496/";
String database = "jdbc:db2:STUDBL";
Then, you can use those variables where you need references to the "machine" part of the URL and also reference to the database that JDBC connects to. This way, modifications can just be made to those two variables, instead of digging through all over in the source code for references. So, for part B, please make sure you have those variables to reduce the digging around for references, or make sure your relative URLs work.
As a correction to the Project 2 handout, here is what the students should turn in for Project 2:
· A README file (submit in paper-format, due in class by Wednesday, 2pm) – This is where the TA will record your grade for the project. You will need to explain in detail all the things that you did in each part, including the query that you'd want the TA to run, how your interface work and so forth. Again, the more you say, the more there is to give points for your project.
· Part A (submitted electronically via the SEASnet submit command, due by Wednesday, 2pm) – Source file for part A. Within the source file, pay specific attention to the part that you are using JDBC to call queries. Document that part of your code in great detail so the TA can find it in your code easily, as well as know what exactly you are doing. Getting JDBC to work is the main point of Part A.
· Part B (submitted electronically via the SEASnet submit command, due by Wednesday 2pm) – Source file(s) for part B. Within the source file, pay specific attention to the parts that you are creating the user interface. Document each of the user interface tools that you've used, such as the pull-down menu and textbox, and whatever other interface widgets that you've used. Also, pay attention to the link-based querying mechanism. Document those points in detail, explaining what you've done, and how they work. The main point of part B is how you've used the forms and implemented link-based querying.
Disregard the requirement to turn in screenshots in the project description. Having the screenshot doesn’t add too much to the grading of the project because the TA can’t actually see how your project work. Thus, screenshots are not necessarily.
For the source codes, parts A and B should be of different source files. If you've build part B on top of the code in part A, copy the part A code and put it in another file.
It is very possible to have multiple files for Part B, and if that's the case, make sure you don't use an absolute URL (i.e., landfair.seas.ucla.edu:11496/servlet/<servlet>) as your reference. Use a relative URL (../<html file> for one directory higher, and /servlet/<servlet> to get back into the servlet directory, or just <servlet> if you are already in the servlet directory) as your reference URL. If you use an absolute URL reference, obviously it won't work when the TA tries to run it in his own servlet container. You can leave the database connection the same, as the changes for that are minimal.
Sorry for the confusion this caused for some of you. If you have any questions, e-mail the TA as soon as you can to get the submissions part cleared up.
A demo of Project 2 will be online for the next couple of days for students to get ideas and clarification about what Project 2 entail. Students can go to http://landfair.seas.ucla.edu:11496/, for a directory listing of the demos in the TA’s directory.
TextboxQuery.html is a reference to Part A of Project 2, where you can enter a SQL query in the textbox.
MovieDatabase.html is a reference to Part B of Project 2, where you can act as a user to the database or an administrator of the database. In the MovieDatebase, the user name and password to modify the database are both “administrator”, without the quotes.
Now, please don’t do anything stupid (like deleting the whole database), because the TA will have to recreate the table again (unless you want to reinsert those tuples manually), and in the meantime, you and your fellow students will be without a sample to play with.
And remember, there may be other students viewing/modifying the database at the same time you do, so don’t be too worried if you modified the database, and something extra was added or deleted. And also when you query, that there may be tuples that you thought was going to be there, but isn’t.
The solution to Homework 2, Problem 4(b) should be:
DELETE FROM Desktop
WHERE model IN
(SELECT
model
FROM
ComputerProduct
WHERE
manufacturer = 'IBM' AND
price
< 1000);
DELETE FROM ComputerProduct
WHERE manufacturer = 'IBM' AND
price
< 1000 AND
model NOT
IN
(SELECT
model
FROM
Laptop);
Disks and Files are added to our Class Handouts section. These are the lecture handouts for today’s lecture.
Constraints in DB2 and Date and Time in DB2 have been added to the References section. These two pages will be very helpful in later projects.
Null and Three-Valued Logic and An Example of a Problematic Database are added to our Class Handouts section. These are the lecture handouts for today’s lecture.
Homework 2 Description has been added to our Class Handouts section. Homework 2 is assigned today, and will be due in class next Monday (Feb. 3rd).
We will be going over Homework #1 solutions and Project 2 description in the discussion section later today. Please bring your homework solution and project description to the discussion.
Project 2 Hints has been added to the Class Handouts section. It should give you some clues on how to approach Project 2 if you get stuck.
The JDBC at SEASnet article has been updated to further address settings on our SEASnet server and DB2. Please read it carefully before you start to code for Project 2.
There is a correction for the homework solutions on problem 1e. It should say
sR.person-name = S.person-name Ù R.company-name ¹ S.company-name
instead of
sperson-name =
person-name Ù company-name = company-name
Sorry for the confusion.
In submitting the screenshot for Part B of the project, please remember to use the “binary” transfer mode in your FTP client. Images transferred using the “ascii” transfer mode may not be able to be opened properly, and thus you may not get full credit for your work. Internet Explorer uses the “binary” transfer mode in its FTP functions, so students using Internet Explorer is most likely okay. However, it is always good to double check whatever you’ve uploaded to your account by downloading them again, and see if you can still open the image. This will cut down on the errors made in transferring the files. Perhaps, this is one of the things that students would like comment about in their README file.
Students are encouraged to write a README file with each of the project that s/he submits. The README file should contain student/partner information (including name, SID, and account name), description of each part that was done in the project and the approach, and any other explanation about the project that student feel would give them more. Remember, the TA can only give points for what he sees in the submission. If your code or submitted material is difficult to understand, you may not get full credit for your work.
Students who log out prematurely with their Apache Tomcat servlet container and cannot get back to end the process can do the following:
· Log in to the account
· Use the ‘ps –e | grep <user name>”
· Identify the ID of the other session(s) that was logged out prematurely
· Use the “kill <id>” command
· If that doesn’t stop the process, use the “kill -9 <id>” command
This should end the processes on the sessions that are logged out prematurely.
The Java Servlets at SEASnet and the JDBC at SEASnet articles have been updated to include the correct files. A few JDBC example source codes have been moved from the Java Servlets at SEASnet to the JDBC at SEASnet article. Hopefully this will clear things up for some students as they won’t be confused with the JDBC parts of these Java source codes.
Students that are confused or stuck on the Part B of Project 1, please look at the Java Servlet at SEASnet article again. Specifically, please re-read the Server-Side Input Handling section again, and make sure you understand the sample code provided. It will give you a lot of help on Part B of the Project.
Some students have been having problems setting the CLASSPATH in their accounts with the following error message:
CLASSPATH: Undefined
variable
You can try putting the
setenv CLASSPATH
/usr/apache/libexec/jsdk.jar:$CLASSPATH
command in your .login file. Another thing you can do is try using the command without the “:$CLASSPATH” at the end. This is because the “:$CLASSPATH” command adds the “/usr/apache/libexec/jsdk.jar” path to the beginning of the CLASSPATH environmental variable. The errors that students are getting is because the CLASSPATH variable may not exist, thus the command tries to append to a non-existent variable.
Some other students are having trouble with the Java compiler. After setting the CLASSPATH correctly, the compiling command is “javac”. For example, to compile the Copycat.java file in Part B of Project 1, you would use:
javac Copycat.java
Homework 1 Clarification has been added to the Handouts section. It’s the same clarifications mentioned yesterday, but we’ve saved it in a file so people will have it there.
Homework 1 Description has been added to the Handouts section. Students who did not get a copy of the first homework yesterday can download and print out a copy of the homework on their own. Homework 1 is due next Wednesday (Jan. 22nd).
The Week 2 Discussion Notes has been added to the Handouts section. Students are encouraged to download and printout the discussion notes before coming to discussion sections on Fridays. These notes aim to aid in student note-taking as well as classroom interaction.
The Student Database Example has been updated to include the relational operators introduced in this week’s lectures (È, –, Ç, r, /).
Week 2 Lecture Slides shown in class are also posted in the Handouts section. These are the slides that Professor Cho put up on the overhead projector during lecture on Wednesday, Jan. 15th.
PTE numbers have been mailed out. The criteria that we used include whether the student is still coming to class, graduating quarter, graduate standing, wait list, and other personal reasons.
Here are some clarifications for homework #1:
· 1(c) It is okay to have ABC Co. as part of your result.
· 1(f) For each company, find the highest salaried employees.
· 2(d) The pair (i, i) should not be a pair of company names in the result.
· 2(e) Do not worry about duplicate company names in the result. It is okay for your SQL statement to print out duplicate names.
· 2(f) Ignore this question. We have not covered the material in the class yet. If you are interested, you can look up the "ALL" and "MAX" operators to handle this query.
PTE numbers will be handed out via e-mail Thursday late afternoon or evening. Students who received a PTE number, but are already enrolled in the class via the wait list, please contact the TA as soon as possible so to redistribute the PTE for other students who needs to enroll in the class.
The agenda for this week’s discussion section will include the following:
· Review of relational algebra operators (È, –, Ç, r, /)
· Project 1 overview and clarification
· SQL query examples using DB2
Students who have not picked up their class SEASnet accounts please go to 2684 Boelter Hall to see the staff at the SEASnet Help Desk (NOT the lab consultants on the right side as they walk in and not Orachat specifically).
Some CS143 students are a bit confused about their class accounts and personal SEASnet accounts when it comes to doing class work for CS143. You DO NOT use your personal SEASnet accounts for CS143 (they use it for other classes, except for CS143). They use the class accounts (the one with prefix cs143u) to do CS143 work.
The TA office hour will be held at 4829 Boelter Hall from now on. The TA Lounge at 4428 Boelter Hall is quite crowded at this time, so it may not be a good environment to discuss and work on class material. Please take note this change.
Class SEASnet accounts have been made for students who are waiting for PTE numbers. Please consult the SEASnet Machine, Database, and Port Assignments article in the References section for your assigned machine, database, and ports.
Project 1 Description is posted in the Handouts section. Project 1 will be due next Wednesday (Jan. 22nd).
Week 1 Lecture Slides shown in class are also posted in the Handouts section. These are the slides that Professor Cho put up on the overhead projector during lecture on Wednesday, Jan. 8th.
For students who didn’t go to this week’s discussion, remember, this class will be an intensive class. We will have 4 projects and approximately one homework every other week. If you do the math, that is about 9 assignments with 9 weeks left in the quarter. Projects tend to be very involved and will take a lot of your time. Additionally, the median grade for this class will be at a B or B-, with approximately 20% As and 40% Bs. This means that around 40% of the students may get a C or lower. So, please reconsider taking this class if you have a heavy load of classes this quarter (i.e., if you are taking CS) or if you really need a good grade from the class.
Students who are waiting for PTEs need to wait a little bit longer. We will give students a chance to drop out of the class after having one full week of attendance in the class. We will start to give out PTEs around the middle of next week via e-mail. If you have requested a PTE, you will receive an e-mail notification from the TA at that time. If you are granted a PTE but are already enrolled in the class via the waitlist, please notify the TA as soon as possible so he can give the PTE to other students who are in need.
The SEASnet Machine, Database, and Port Assignments article has been added in the References section of the class webpages. The article lists the machine and ports assigned to each of the class accounts, and some instructions about these machines and ports. Please read this article carefully as it will help you set up the hardware aspects of Project 1.
The Week 1 Discussion Notes and the Student Database Example have been added to the Handouts section. Students are encouraged to download and printout the discussion notes before coming to discussion sections on Fridays. These notes aim to aid in student note-taking as well as classroom interaction.
Students are also encouraged to mail the TA at jthsiao@cs.ucla.edu with any questions they may have regarding the course material before the discussion section. The TA will try to allot time during discussion addressing these questions.
The Student Database Example has been updated to reduce the confusion about q-joins we had in discussion section today. To clarify what was said in discussion today, q-joins are just the application of the selection operator upon a cross-product. It does NOT include the selections in the natural joins.
Currently, students requesting PTEs do not have class SEASnet accounts made for them yet. We have just requested Orachat to create accounts for those who have mailed me regarding SEASnet accounts. Please send the TA your SEASnet personal account name (if you have one) so to help Orachat identify you and give you accounts, since you are not on the class roster.
The Course Description has been updated to reflect changes in the assigned readings. The assigned reading for next Monday’s lecture on Relational Algebra has been changed back to Chapter 3.2.
The Course Description has been updated to reflect changes in the assigned readings. The assigned reading for today’s lecture on the Relational Model will be Chapters 1.3-5, 3.1, and 4.11. The assigned reading for next Monday’s lecture on Relational Algebra will be Chapter 3.2-3.
In contrast to what was said in lecture today, students on the waitlist should still send an e-mail to the TA at jthsiao@cs.ucla.edu including your SID, graduating quarter, a convincing reason, and also that you are on the waitlist. We will give out PTE numbers towards the middle of the week next week when rosters are more settled down.
Students, who are requesting PTE numbers and are graduating, please include which quarter you are expected to graduate (i.e., Winter 2003 or Spring 2003) as well as your full name, SID, and any other reasons why you should be considered before others students.
Instructions to the submit program has been added to the Projects page to help students submit electronic copies of their work.
Please read through the References section of these class webpages to get familiarized with some of the various technologies that we will be using this quarter.
Please join the class mailing list for class announcements by sending an e-mail to listserv@listserv.ucla.edu with the following command in the text (not the subject of your message:
SUBSCRIBE CS143L1-L
Detail information on how to use the class mailing list can be found in the Class Mailing List page.
For PTE numbers, please mail the TA at jthsiao@cs.ucla.edu by Wednesday
Students can download a copy of DB2 Personal Developer's Edition (DB2 UDB PE for Windows) to use DB2 on their own computers. However, versions of DB2 on a student’s own computer will not be supported by the instructor or the TA. Also, it is the student’s responsibility to make sure that the scripts that the students produce on their own copy of DB2 also work with the SEASnet version of DB2 when submitting graded material.