Skip to content
This organization was marked as archived by an administrator on Apr 17, 2024. It is no longer maintained.
@CS-340-nilsstreedain

CS 340

Introduction to Databases

Introduction to Databases

Course Description

Design and implementation of relational databases, including:

  • data modeling with
    • entity-relationship (ER) diagrams
    • unified modeling language (UML) diagrams
  • relational schema
  • structured query language (SQL) queries
  • relational algebra
  • user interfaces and administration

Prerequisite

CS 290 (Web Development).

In-person Class Meetings:

M/W 8:00-9:50am in WNGR 153 - Weniger Hall 153

Lectures will be recorded and links will be added to the module page for the respective week. These recordings are largely meant for students who want to review content and/or cannot attend a lecture due to sickness or other obligations. Though regular class attendance is not required, it is highly recommended as it tends to be correlated with success.

Contact

Please see "Where to go for help? (Comm. Policies & Methods)"

Discord

https://discord.gg/yXqCuGd8fG

Instructional Team

Name Role Office Hours
Christopher Buss [[email protected]] (he/him) Instructor Wednesday 10-11am: Kelley Atrium
Alena Makarova [[email protected]] TA TBD
Bakhtiyar Doskenov [[email protected]] TA TBD

About

In this four credit course you will learn the basic skills needed to

  1. Design and implement a simple to moderately complex database,
  2. Make good decisions regarding database design, and
  3. Document your design and queries in standardized notations.

Measurable Student Learning Outcomes:

Upon successful completion of CS340, you will be able to:

  • Describe the difference between a relational database and a flat file.
  • Model a moderately complex data set by using an ER or UML diagram, and derive a
  • relational schema from that diagram.
  • Create a relational database from a relational schema.
  • Create multiple indices in a relational database, and explain when and why such indices are appropriate.
  • Formulate SQL statements for data manipulation.
  • Formulate simple queries in relational algebra by using projection, selection, product, and join operations.
  • Describe the components and interfaces of a Web-based database system.
  • Design and implement a Web-based relational database system, using one or more Web development languages and an open-source relational database management system.

Readings and Other Supplemental Material:

  • Textbook: Relational Database Design and Implementation by Jan L Harrington, 2016 Edition is the recommended textbook for CS340-400. This book is available for free online for all the OSU students at the OSU Library.
    • Required readings for the week will be detailed in the overview pages for each week.
  • Other Material: Other useful links will either appear under "Additional Resources" in week-specific modules or in the general "Useful References" module as the course progresses.

Expectations from Student

Prior Knowledge

Students are expected to know the following:

You should be familiar with good coding practices. Good coding style is required and not taught in this class. You should understand basic control structures. If you are unable to code a simple sorting algorithm, you will have trouble in this class as this level of coding experience is expected.

You should also have completed 290 or be a strong student currently taking the course. It is possible to take these two courses at the same time, but if you run into difficulty in 290 you can have some real trouble late in this course, so do that with some caution.

Code quality

Code must be clear and you must understand what it is doing. Having well-documented code is going to be extremely important. I or the TA may not know the platform you are using, so it is your responsibility to make sure that your work is clear enough so that we can follow what is happening.

You should also have no major errors in your program. If we can manage to get the program to throw some default error message that is usually a major issue. Errors which you handle via a clear message to the user (e.g. 'Please enter only numbers in the age field') are usually fine. On the other hand, error messages like 'Error 0x00001: Null pointer to Null found, expected pointer to Int Factory Factory' are not.

When possible, you should find a style guide and conform to it.

Expectations for Student Conduct

Student conduct is governed by the university’s policies, as explained in the Student Conduct Code. Students are expected to conduct themselves in the course (e.g., on discussion boards, email postings) in compliance with the university's regulations regarding civility.

Student Bill of Rights

OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus: https://asosu.oregonstate.edu/advocacy/rights.

Statement Regarding Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval, please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Accessibility of Course Materials

All materials used in this course are intended to be accessible. However, resources available through external providers (i.e., YouTube, websites, etc.) may not fully comply with accessibility standards. If you require accommodations please contact Disability Access Services (DAS). Additionally, Canvas, the learning management system through which this course is offered, provides a detailed page about how the platform is accessible to students with disabilities.

Student Evaluation of Courses

The online Student Evaluation of Teaching system opens to students during the last couple weeks of the term. Students receive notification, instructions and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the online learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.

Academic Calendar

All students are subject to the registration and refund deadlines as stated in the Academic Calendar: https://registrar.oregonstate.edu/osu-academic-calendar.

Reach out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success at oregonstate.edu/ReachOut. If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255).

Thanks:

This course features material and content developed by (and graciously shared by) Danielle Safonte, Michael Curry, Justin Wolford, Samarendra Hedaoo, Julianne Coffman, Casey Patterson, Stephen Ramsey, and many other OSU faculty and staff members. We are also grateful to COE IT (especially Steve Cleveland) for providing the MariaDB accounts and the Linux server infrastructure for this course. Thank you.

Popular repositories

  1. .github .github Public archive

  2. task1 task1 Public archive

    DB Intro Activities

    JavaScript

  3. task2 task2 Public archive

    Basic/Intermediate SQL Assignment

  4. projectStep2 projectStep2 Public archive

    Project Step 2 (Normalized Schema, DDL, Sample Data, & Revisions to Existing Deliverables)

  5. projectStep1 projectStep1 Public archive

    Project Step 1 (Proposal, Outline, ERD)

  6. projectStep3 projectStep3 Public archive

    Project Step 3 Draft (HTML Interface, DML, & Revisions to Existing Deliverables)

    Handlebars

Repositories

Showing 10 of 10 repositories
  • projectStep6 Public archive

    Project Step 6 (Portfolio Assignment)

    JavaScript 0 0 0 0 Updated Jun 13, 2023
  • projectStep5 Public archive

    Project Step 5 Draft (Implement MOST Remaining CRUD functionalities)

    JavaScript 0 0 0 0 Updated Jun 1, 2023
  • projectStep4 Public archive

    Project Step 4 Draft (Implement CRUD for One Entity)

    JavaScript 0 0 0 0 Updated May 26, 2023
  • projectStep3 Public archive

    Project Step 3 Draft (HTML Interface, DML, & Revisions to Existing Deliverables)

    Handlebars 0 0 0 0 Updated May 19, 2023
  • task3 Public archive

    Advanced SQL Assignment

    0 0 0 0 Updated May 12, 2023
  • projectStep2 Public archive

    Project Step 2 (Normalized Schema, DDL, Sample Data, & Revisions to Existing Deliverables)

    0 0 0 0 Updated May 5, 2023
  • projectStep1 Public archive

    Project Step 1 (Proposal, Outline, ERD)

    0 0 0 0 Updated May 5, 2023
  • task2 Public archive

    Basic/Intermediate SQL Assignment

    0 0 0 0 Updated May 4, 2023
  • task1 Public archive

    DB Intro Activities

    JavaScript 0 0 0 0 Updated Apr 19, 2023
  • .github Public archive
    0 0 0 0 Updated Apr 6, 2023

Top languages

Loading…

Most used topics

Loading…