Course Syllabus
- Course Introduction
- Course Schedule
- Grading and Late Policies
- Tools for this course
- Where to go for help? (Comm. Policies & Methods)
CS 340 — Introduction to Databases
CRN: 60721 (Section 001, Corvallis Campus)
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 [bussch@oregonstate.edu] (he/him) |
Instructor | Wednesday 10-11am: Kelley Atrium |
|
Alena Makarova [makarova@oregonstate.edu] |
TA | Thursday 3-4pm: Kelley Atrium |
|
Bakhtiyar Doskenov [doskenob@oregonstate.edu] |
TA | Tuesday 2-3pm: Kelley Atrium |
About:
In this four credit course you will learn the basic skills needed to
- Design and implement a simple to moderately complex database,
- Make good decisions regarding database design, and
- 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.
Since this course is an in-person adaptation of the CS340 Ecampus course, the following schedule is tentative. If any significant changes are made, I will post an announcement detailing them.
| Week | Topic & Content | Due Mon | Due Thurs | Due Fri |
| 1 (4/3) | Database Introduction and Tools |
Quiz 1: Syllabus Quiz |
||
| 2 (4/9) | Relational DB and Design | Assignment: Getting Started Activities (1 - 3) |
Quiz 2: Design and the ER Model |
|
| 3 (4/16) |
Relational Algebra, SQL Intro |
Project Step 1 Draft (Proposal, Outline, ERD) |
Project: Step 1 Review Assignment: DB Intro Activities (1 - 3) |
Quiz 3: Relational Algebra |
| 4 (4/23) |
Intersection tables & SQL JOINS |
Project Step 1 Final |
|
Quiz 4: SQL Concepts |
| 5 (4/30) |
Database Normalization |
Project Step 2 Draft (Normalized Schema, DDL, Sample Data, Revisions) Assignment: Basic/Intermediate SQL |
Quiz 5: FDs and Normalization | |
| 6 (5/7) |
Design Project HTML UI |
Project Step 2 Review |
Project Step 3 Draft (HTML Interface, DML, & Revisions) Assignment: Advanced SQL |
|
| 7 (5/14) |
Project Development and Special Topics* |
Project Step 3 Review |
Project Step 3 Final |
|
| 8 (5/21) | Project Development and Special Topics* |
Project Step 4 Draft (CRUD for One Entity, Revisions) |
||
| 9 (5/28) | Project Development and Special Topics* | Project Step 4 Review (Memorial Day; Due May 30th) |
Project Step 5 Draft (Implement MOST Remaining CRUD functionalities, Revisions) |
[EXTRA CREDIT] Transactions in Databases |
| 10 (6/4) | Finish Project | Project Step 5 Review | [EXTRA CREDIT] Assignment: TBD | |
| 11 (6/11) | Finals Week | Project Step 6 (Portfolio Assignment) |
*TBD topics, but will likely include concepts commonly covered in introductory database courses, demos and discussions related to the final project, and other useful things to know about databases and database design
Assessment
Your progression toward completion of this course will be assessed via
- individual assignments (some of which may involve writing code snippets like SQL queries), submitted in Gradescope
- a final project, which you will complete as a group
- quizzes in Canvas: open-book, un-proctored, taken individually, two attempts, keep highest attempt (except for Quiz 0 which allows unlimited attempts)
Students are responsible for making sure that diagrams submitted for assignments are at a sufficient resolution to be readable by the graders; points will be deducted for diagrams that are so low-resolution that they cannot be easily read. There will not be a Midterm exam or a Final Exam in this section of CS340.
Grade Weighting
|
Assessment type |
Grade weight |
|---|---|
|
Quizzes |
25% |
| Assignments and Activities | 25% |
| Project | 50% |
| Extra Credit | 4% |
Grading Scale
Your final grade will be computed using a weighted average according to the weight table above grade cutoff table below.
| Grade letter | Percentage floor |
|---|---|
| A | 92 |
| A- | 90 |
| B+ | 87 |
| B | 82 |
| B- | 80 |
| C+ | 77 |
| C | 72 |
| C- | 70 |
| D+ | 67 |
| D | 62 |
| D- | 60 |
| F | 0 |
Policy on turning assignments in late
- Homework/teamwork assignments and quizzes will be accepted up to 1 day late for a 10% penalty.
- The above late policy is the default policy; it is altered for specific students who have requested accommodations through DAS, via flexibility agreements. If you are a student to whom a DAS flexibility agreement applies, that agreement supersedes the above late assignment/quiz policy.
- Extensions for homework assignments, team assignments, and quizzes will be granted for certain exceptional circumstances (illness, bereavement, jury duty, military service, etc.); please message the instructor as soon as possible if one of these circumstances arises during the course.
- Even if you do not plan to do work on an assignment until near the deadline, you should read the requirements as soon as you can in order to see if anything is ambiguous so you can get clarification while there is still time to act on it.
Questions about grading or grades
All questions about grading must be placed in the “Assignment Comments” section of the Canvas submission for that assignment. If the assignment was submitted in Gradescope, please also request a regrade from within Gradescope. If a response to your question/regrade is not posted within 48 hours you can email me requesting that I review the assignment submission. Any concerns about grades should be communicated within seven days of receiving the grade.
Working in groups
Working effectively as part of a team is a requirement for this course. For any group assignment, if you do not submit as a group then you will not receive credit.
Please not that in a group project all group owners individually own all rights, with the caveat that they may owe royalties to others if they individually make money on the code later. See this page for more information on ownership or group projects:
Code editor
Amount of use: Extensive. Used for the Project and some SQL assignments.
Expected knowledge: Proficient
Coverage in class: Extensive. The Week 1 will cover configuring and editing with VS Code. Subsequent coding videos will primarily be in VS Code.
Examples: Visual Studio Code, Moba Xterm, Atom, Sublime Text, Emacs, Vim or TextWrangler.
Diagramming tool
Amount of use: Extensive. Used for drawing all ER diagrams for assignments.
Expected knowledge: Minimal.
Coverage in class: Moderate. The Week 2 material will cover how to use diagramming tools and translating models into a MySQL schema with sample data.
Examples:Draw.io and MySQL Workbench for ER diagrams and PhPMyAdmin for schema diagrams. Other options include Microsoft Visio for Windows which is available for free for OSU students and.
Moving files
Amount of use: Moderate. Used for the Project.
Expected knowledge: Working knowledge
Coverage in class: None. You should be able to upload files to your ENGR directory already. You should also know how to set permissions on those files. If not the IT Support has a page explaining how to map your file space to your PC which makes it pretty easy to upload files
Examples: Map ENGR folder to your PC, MobaXTerm or FileZilla
Source code management
Amount of use: Moderate. Used for the Project.
Expected knowledge: Working knowledge
Coverage in class: Minimal. In Week 6 there is a Exploration that covers collaborating with a partner using Git
Examples: GitHub or GitLab.
SSH use.
Amount of use: Moderate. Used for the Project
Expected knowledge: Working knowledge of Linux commands and command line interface
Coverage in class: Very limited. We expect that you know basic Linux commands to navigate and interact with a file system. The videos will demo using the CLI.
Privacy Policies
Follow this link to access Privacy Policies for commonly used external tools that require the user to create an account.
Ed Discussion
Follow this link to access the Privacy Policy for Ed Discussion.
Communication Methods
When you are posting code on Ed Discussion and Discord, please be mindful of the Code Sharing policy below.
Ed Discussion
We will use Ed Discussion for class-wide asynchronous communication. In CS340, you will use Ed Discussion to more formally post draft project work and review other groups' projects. You can also use Ed for questions seeking technical help, conceptual help, or assignment clarification.
Discord (https://discord.gg/yXqCuGd8fG)
There is a not-quite-official Discord server for this class. Though no one is required to join this server, you are free to use it for class-related discussions; including technical help, conceptual help, or assignment clarification.
Private Messages (Canvas, Email)
Please use email or Canvas Messaging for private (as in, not to be shared with the whole class) communication with the instructor and/or TAs. When emailing, make sure to include "[CS 340]" in your topic so that we don't accidently miss the email.
Electronic Learning Tools
This course is hosted in Canvas. All of the content is organized in Modules, each corresponding to one week of the course. All of the required readings, quizzes, and homework tasks are listed as Assignments in Canvas, with due dates indicated on them. Each module also has a section called "Additional Resources"; the items under Additional Resources are optional, but you will likely find them helpful.
- We will use Ed Discussion for discussion forums
- We will use Discord for live discussions
- We will use Gradescope for grading coding assignments
- We will be using Gradescope to submit "written" HW assignments and to autograde SQL assignments.
Guidelines for a Productive and Effective Class
Students are expected to conduct themselves in the course (e.g., on discussion boards, email, Zoom) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.
Active interaction with peers and your instructor is essential to success in this online course, paying particular attention to the following:
-
Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
-
Read your posts carefully before submitting them.
-
Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
-
Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully, and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.
Code Sharing
You will not get in trouble for sharing code on Ed Discussion in order to solve problems. The communication guide actually mandates that you share portions of your code if you want to ask a good question. If you are worried that you are posting too much code, mark it private and ask me to review it. Note that this is a more permissive policy than the standard policy for the program. Copying code without attributing (i.e., crediting) the source is plagiarism, and it is prohibited (see the section "Academic Integrity", below).
Technical Questions about Canvas
If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the menu on your left. Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.
Academic and Student Support Services
For all other academic and student support services, refer to the Student Services link found in the course menu.
The following services are available to all students:
- The Writing Center and Online Writing Lab
- The Valley Library
- Check Your Computer test - ensure you have installed the minimum required technology for courses.
Counseling Services
I want you to know that mental health issues are a valid concern and if you need any help, OSU offers the following professional resources:
- Student Success Counselors: 1-800-667-1435
- OSU Counseling and Psychological Services: 541-737-2131 (answered 24/7)
- Suicide Prevention Lifeline: 1-800-273-8255
Accessibility Support
The following services and tools are available to all students:
- Disability Access Services
- ReadSpeaker - Embedded in this Start Here module, reads text on Canvas course pages aloud.
- TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, web sites, text composed by a user, and more.
- More information on ReadSpeaker and Text Aid
Course Summary:
| Date | Details | Due |
|---|---|---|