CS 340 - Introduction to Databases - 4 credits
Course Description: Design and implementation of relational databases, including data modeling with ER or UML diagrams, relational schema, SQL, relational algebra, user interfaces and administration. Prerequiste: CS 290.
Instructor: Julianne Schutfort
Meetings: MWF 2-2 :50 pm via Zoom
Office hours with the Instructor are Tu & Th - 1 - 3:00pm via Zoom https://oregonstate.zoom.us/j/6851620077
TAs and Office Hours:
In this class you will have the opportunity to 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 notation.
Additionally, you will have the opportunity to practice these skills by building a simple website driven by a database backend.
Measurable Student Learning Outcomes:At the completion of the course, students will be able to…
1. Describe the difference between a relational database and a flat file (Level 1; ABET
Outcomes: A, j)
2. Model a moderately complex data set by using an ER or UML diagram, and derive a
relational schema from that diagram (Level 3; ABET Outcomes: A, b, C)
3. Create a relational database from a relational schema (Level 4; ABET Outcomes: A, K, c)
4. Create multiple indices in a relational database, and explain when and why such indices are
appropriate (Level 5; ABET Outcomes: A, b, C)
5. Formulate SQL statements for data manipulation (Level 4; ABET Outcomes: A, c)
6. Formulate simple queries in relational algebra by using projection, selection, product, and
join operations (Level 3; ABET Outcomes: A, I)
7. Describe the components and interfaces of a Web-based database system (Level 1; ABET
Outcomes: A, B, I)
8. Design and implement a Web-based relational database system, using one or more scripting
languages (e.g., PHP) and an open-source database development system (e.g., MySQL)
(Level 4; ABET Outcomes: a, B, C, I, K)
Recommended: Relational Database Design and Implementation by Jan L Harrington, 2016 Edition. This book is available for free online for all the OSU students at the OSU Library.
Fundamentals of Database Systems by Elmarsi, 7th Edition 2016.
PHP & MYSQL Web Develpment by Welling, 5th Edition, 2017. If you decide to use PHP for web development.
If you decide to use Node.js for web development in this course books from CS 290 should suffice.
If you decide to use Python for web development in this course, refer to the Flask user guide .
This course is dedicated to learning the basics of database design and use. To accomplish this, there are 6 individual homework assignments and 6 quizzes in Canvas that will help you assess your own understanding of the material. You will work in groups on a term Project implementing the concepts that you learn each week. Participation is important in a project based course, you will earn participation points by writing peer reviews of projects and giving feedback to your classmates.
Note: There is no Midterm exam or Final Exam|
|Quizzes - in Canvas, openbook, multiple attempts, keep highest score||20%|
|Individual Homework Assignments - submitted in Gradescope||30%|
|Participation & Peer Reviews||10%|
|Group Project - Steps 1 -7 and all drafts submitted as a group in Canvas||40%|
Due dates are in the Course Summary and Calendar.
The final grade will be computed using a weighted average according to the table above and the weighting below.
|Grade letter||Percentage floor|
- Homework and Projects will be accepted up to 1 day late for a 10% penalty.
- Late Quizzes and participation will not be accepted.
Questions about 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 also request a regrade from within Gradescope. If a response to your question is not posted within 48 hours you can email the TA requesting that they review the assignment submission. Any concerns about grades should be communicated within 7 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:
Guidelines for a Productive and Effective Remote Classroom
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.
- Piazza should be used for all questions seeking technical help, conceptual help or assignment clarification. Essentially if it is any sort of information that may benefit other students, it should be posted to Piazza. Look below for the Code Sharing policy.
- Canvas Messaging
- This is the prefered method for general communication with the instructor.
- Canvas Comments
- Canvas comments should be used by students to add commentary about grading and by myself and the TAs to give feedback.
- Email can be used for anything that contains sensitive information. All emails should include [cs340] at the start of the subject.
You can expect a response to emails within 48 weekday hours. So if you send an email at 8am on Monday, you should have a response by 8am on Wednesday. If you send an email at 10pm on Thursday, you should have a response by 10pm on Monday.
Do not expect communication on the weekends, though I do my best to look for urgent questions that are preventing you from making progress and answering them, even on the weekend. The more specific the question, the more likely you are to get help.
You will not get in trouble for sharing code on Piazza 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.
You will get in a great deal of trouble if you copy code without citing it. See the policy on plagiarism. Code from lectures is not your own, code from StackOverflow is not your own, code from the node.js documentation is not your own. If it is not your code you must cite it. If you cite it, you must provide documentation in very great detail of what it is doing so that I know you understand the code you are using.
Expectations from Student
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 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.
The Code of Student Conduct prohibits Academic Misconduct and defines it as:
Any action that misrepresents a student or group’s work, knowledge, or achievement, provides a potential or actual inequitable advantage, or compromises the integrity of the educational process.
To support understanding of what can be included in this definition, the Code further classifies and describes examples of Academic Misconduct, including cheating, plagiarism, assisting and others. See the Code of Student Conduct for details.
You are expected to do your own work and demonstrate academic integrity in every aspect of this course. Familiarize yourself with the standards set forth in the OSU Code of Student Conduct Section 4.2. You must only access sources and resources authorized by the instructor. You may not show your work to any other current or future students without the instructor’s authorization. Violations of these expectations or the Code of Student Conduct will be reported to the Office of Student Conduct and Community Standards. If there is any question about whether an act constitutes academic misconduct, it is your responsibility to seek clarification and approval from the instructor prior to acting.
Students are expected to comply with all regulations pertaining to academic honesty. For further information, visit Student Conduct and Community Standards, or contact the office of Student Conduct and Mediation at 541-737-3656.
OAR 576-015-0020 (2) Academic or Scholarly Dishonesty:
Academic or Scholarly Dishonesty is defined as an act of deception in which a Student seeks to claim credit for the work or effort of another person, or uses unauthorized materials or fabricated information in any academic work or research, either through the Student's own efforts or the efforts of another.
CHEATING - use or attempted use of unauthorized materials, information or study aids, or an act of deceit by which a Student attempts to misrepresent mastery of academic effort or information. This includes but is not limited to unauthorized copying or collaboration on a test or assignment, using prohibited materials and texts, any misuse of an electronic device, or using any deceptive means to gain academic credit.
FABRICATION - falsification or invention of any information including but not limited to falsifying research, inventing or exaggerating data, or listing incorrect or fictitious references.
ASSISTING - helping another commit an act of academic dishonesty. This includes but is not limited to paying or bribing someone to acquire a test or assignment, changing someone's grades or academic records, taking a test/doing an assignment for someone else by any means, including misuse of an electronic device. It is a violation of Oregon state law to create and offer to sell part or all of an educational assignment to another person (ORS 165.114).
TAMPERING - altering or interfering with evaluation instruments or documents.
PLAGIARISM - representing the words or ideas of another person or presenting someone else's words, ideas, artistry or data as one's own, or using one's own previously submitted work. Plagiarism includes but is not limited to copying another person's work (including unpublished material) without appropriate referencing, presenting someone else's opinions and theories as one's own, or working jointly on a project and then submitting it as one's own.
Academic Dishonesty cases are handled initially by the academic units, following the process outlined in the University's Academic Dishonesty Report Form, and will also be referred to SCCS for action under these rules.
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 accessible. 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 week before finals and closes the Monday following the end of finals. 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.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.