Course no. |
Title |
Credit |
Reqd - Core (R)/ |
Capstone? |
CSE 670 |
Introduction to Database Systems I |
3 |
R |
|
CSE 671 |
Introduction to Database Systems II |
3 |
E; O for Info. Sys. |
|
CSE 674 |
Introduction to Data Mining |
3 |
E |
|
CSE 770 |
Database System Implementation |
3 |
E for undergrads/grads, R for grad major in Systems |
|
CSE 772 |
Information Systems Project |
4 |
O |
Yes |
Database systems is an important and popular area of Computer Science and plays a crucial role in any CSE program. As databases increasingly integrate various types of new information, the field continues to evolve at a rapid pace to address the new challenges.
CSE 670, CSE 671 and CSE 770 provide a three quarter database sequence. CSE 670 is required of all undergraduate majors, BS-CSE, BS-CIS, BA-CIS, BSBA (IS). It is also a popular course for non-CSE graduate students, who have discovered they have database problems in their own research. CSE 671 is required of all information systems option undergraduates, BS-CSE and BS-CIS. CSE 770 is the basic graduate course and is required for a track in the Systems Major PhD area. CSE 674 is a new course on data mining, and CSE 772 is a popular capstone design course. As explained in detail in Section 2.3, courses in this group help us meet a number of ABET objectives.
CSE 670 takes the user's view of database systems. As such it emphasizes database design, analysis, and query writing. CSE 671 continues the user's view emphasizing modern database systems and applications, such as object-relational databases, data warehousing including online analytical processing (OLAP) and data mining from the user's perspective, multimedia databases, temporal and active databases. It finishes with the start of database internals, namely disk characteristics, file organizations, and indexing strategies. CSE 770 takes the internals view emphasizing query processing and transaction processing including concurrency control and backup and recovery. CSE 674 expands the discussion on data mining and presents the back-end implementation of current algorithms. In CSE 772, students are required to work in teams and design and implement a large-scale database application.
Section 2.1 describes the individual courses in the group. Section 2.2 explains how the group is related to the rest of program. Section 2.3 explains how the group helps meet a range of ABET outcomes. Section 2.4 provides information on the feedback we have received from students, recruiters, etc. about the courses in the group. Section 2.5 summarizes the changes we are considering in the various courses.
CSE 670 Introduction to Database Systems
I: This course introduces the basic
concepts of database design. The first half of the course focuses on the basic
relational data model and its underpinnings. Topics covered include the basic
structure of ER-diagrams, relational tables, constraints, the SQL language as
well as more abstract (yet core) topics such as relational algebra and calculus
etc. The latter half of the course stresses on advanced topics such as functional
dependencies, normalization, graphical user interfaces (GUIs) for SQL, embedded
SQL, etc. The course involves a number of homework-style assignments as well as
lab projects including a major database design project. The course is
frequently offered sometimes multiple sections per quarter.
One criticism on course content received from
students and faculty from other departments has been on the coverage of
theoretical topics such as relational algebra and in particular relational
calculus. Both of these topics are a little harder to understand but provide a
nice formal background to database query design. Moreover both of these topics
directly address some of the ABET criteria (especially those relating to
mathematical and logical foundations of computer science).
Another criticism has been on the current SQL system in use. We anticipate this issue to be resolved after the department moves to a new linux platform this summer.
CSE 671 Introduction to Database Systems
II: This is the second course in the
sequence of database courses. The focus of this course is object relational
database systems, data warehousing and analysis and an introduction to data and
file storage. We now cover more on index structures and query processing
algorithms over these structures. Previously, the first two weeks of the course
was focusing on a review of 670 material for those students who have
either i) not taken 670, ii) taken 670 long time
ago, iii) taken 670 with someone before the course structure was last changed.
Now, we reduced that coverage to only first week or even less. We enhanced the
course to cover more material on disk storage and I/O systems, file
organization, various indexing and data storage mechanisms developed
particularly for storing large datasets.
CSE 674 Introduction to Data Mining: This is a new course first introduced 4 years ago. Topics covered
include the knowledge discovery process, various data preprocessing strategies
for aiding and abetting in the analysis of data, key data mining tasks:
frequent pattern algorithms, clustering and classification as well as scalable
realizations of the same. For each topic examples are drawn from real-world
problems from the areas of intrusion detection and bioinformatics.
CSE 650 Information Storage and Retrieval: This course has not been
offered lately. The course does have an interesting title one which at least a
couple of faculty members have an interest in staying on the system. However,
there are no immediate plans to offer this course. We decided that for the time
being we would not recommend eliminating this course since it is possible that
we may want to start offering a revised version of the course sometime in the
not too distant future.
CSE 770 Database
System Implementation: This course
covers the internals of database systems. It starts with an in-depth discussion
of disk performance and file structures including advanced index structures.
These are used in the study of query processing and performance algorithms.
Then the problems of crash recovery and concurrency control in database systems
are covered. As a 700 level, mainly graduate course, the material is taught at
a more rigorous level than is used in 670 and 671.
CSE 772 Information System
Project: This course teaches
information system design and development principles, i.e., requirement analysis,
database design methods and tools, process design, application development
tools, testing, evaluation and documentation. It is a capstone design course
focusing on information systems projects. It is appropriate for undergraduates
in the information systems or software systems options in either ENG or ASC. A
capstone design course is required for ENG students. Other software systems
students may count this course for the ``software lab elective''. Other
information systems students may count it as a technical elective. The course
is also appropriate for graduate students interested in software engineering
and/or database design. There have been several of such students. Besides
the technical content, the course also helps students to improve their skills
in individual and group time management, project scheduling, professionalism,
communication, and teamwork.
Recently, in order to improve students' life-long learning skills, a new component was added to the course requiring the students to explore a new tool, technology, or process and write a three or four page paper on it. Further, in order to help us better assess the degree of achievement of a number of program outcomes related to soft-skills such as team-working and communication skills, a number of rubrics have been developed for use in CSE 772 (and in other capstone design courses).
Previously 616 was part of the Database Course Group. We now eliminated it from the DB group since it is more of a software engineering course than a database course. The last time a DB faculty taught 616 was in 1998 (by Kerr).
2.2 Relation to rest of
the program
CSE 670: Prerequisites: 314 or 222 or 230 or 502;
Math 366
Prerequisite for 616, 772.
Some programming background is assumed.
However the most important prerequisite is mathematical maturity. Logic,
covered in Math 366, is important for the study of query languages, since the
problem is to translate an English language query into a formal language
equivalent to predicate calculus, e.g., SQL. Mathematical maturity is needed
for the material on normalization, which involves a mathematical theory on how
to avoid redundancy in a database design.
CSE 671: Prerequisites: 670
671 is a continuation of 670 so that 670 is a
prerequisite. 671 covers file structures, a topic important for 770, and provides additional maturity. Thus it is a prerequisite for
770 for undergraduates.
CSE 674: Prerequisites: 670
CSE 770: Prerequisites: 660;
670; 671 or grad standing in CSE.
Since 770 is
concerned with the implementation of database systems, it assumes an existing
knowledge of the use of database systems as provided by 670. Since 770 deals
with database internals and database internals are closely related to operating
systems, an operating systems prerequisite is necessary. 660 provides
sufficient background. However there has been some overlap between 760 and 770
in the transaction processing area. We plan to reduce the material on
transaction processing and focus on newer developments in the database
internals. Since 770 is taught at a higher level than
670 and since file structures, important in query optimization, are covered in
671, 671 is a prerequisite for 770 for undergraduates. However, it is assumed
that CSE graduate students have the maturity to take 770 without 671. Also,
most of the material in 671, i.e., everything except file structures, is not
necessary for 770.
CSE 772: Prerequisites are 560; 616 or 757; 601; 670.
Not a prerequisite for anything.
Since 772 is a capstone design course, students
are expected to have 616 or 757, and 560 for necessary background on
requirement analysis and software engineering. The projects in 772 are on the
field of database systems, therefore 670 is required.
BS-CSE
Program Outcomes |
|||||||||||
CSE Course |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
650 |
XXX |
X |
XXX |
|
XX |
X |
|
X |
X |
|
XXX |
670 |
XXX |
X |
XXX |
|
XX |
X |
|
X |
X |
|
XXX |
671 |
XXX |
X |
XXX |
XX |
XXX |
X |
X |
X |
X |
|
XXX |
674 |
XXX |
X |
XXX |
XX |
XXX |
XX |
X |
X |
X |
|
XXX |
770 |
XXX |
XX |
XXX |
XX |
XXX |
XX |
XX |
X |
X |
|
XXX |
772 |
XXX |
XX |
XXX |
XXX |
XXX |
XX |
XXX |
X |
XXX |
|
XXX |
The student evaluations have been generally very positive. Many students have also communicated to faculty members, either written or verbally, how useful some of the courses have been. The demand for the capstone design course 772 has been high, and the student feedback has been positive. Some students summarize their experience as being both exciting and practical.
671
is being improved with more material on database
performance as well as on newer advanced database applications.
For some sections of the course, the students have been provided an auto-grader system where they can test and tune their projects in the stage of development, rather than finding out their errors after submission. This was generally well-received, but also pushed the students to be stricter in certain formats of their inputs and outputs. We have not changed the instructional database system. Most of the projects in DB courses are now done with open source software.
Course |
Coordinator |
Recent Instructors |
CSE 650 |
- |
Have not been taught recently |
CSE 670 |
EitanGurari |
Chaabouni, Krishnasamy, Gurari |
CSE 671 |
Hakan Ferhatosmanoglu |
Hakan, Srini |
CSE 674 |
Srinivasan Parthasarathy |
Srini |
CSE 770 |
Hakan Ferhatosmanoglu |
Have not been taught recently |
CSE 772 |
Hakan Ferhatosmanoglu |
Hakan |
Date of report: Feb 2007.