This course covers database systems from the perspective of database designers and programmers, different from database system implementers. The emphasis is on fundamental topics that should be familiar to every computer scientist and good programmer. The course covers topics such as Entity-Relationship modeling, relational database design theory, relational algebra and calculus, SQL, Datalog, object-oriented and object-relational databases, with OQL and SQL3, and semistructured databases, with XQuery.
Prerequisites: COS 301 (Programming Languages); programming maturity.
COS 580 is the graduate version of this course, which shares most class meetings and coursework with the undergraduate version (COS 480) but that includes additional coursework and is assessed to a higher standard.