- Course Introduction
- Course Schedule
- Late Policies
- Grading Policies
- Tools for this course
- Where to go for help? (Comm. Policies & Methods)
A PDF copy of this syllabus is available at syllabus_400.pdf
In this class you will have the opportunity to 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 notation.
Additionally, you will have the opportunity to practice these skills by building a simple website driven by a database backend.
Relational Database Design and Implementation by Jan L Harrington, 2016 Edition is the recommended textbook for CS340-400.
A rough mapping of the current weeks to the chapters of the book is given below
- Chapters 1,3 -- Week 1
- Chapters 4-5 -- Weeks 2-3
- Chapter 10,16-17, 19 -- Week 4
- Chapter 11 -- Week 5
- Chapters 7, 13-15 -- Week 6
- Chapter 6 -- Week 7
This book is available for free online for all the OSU students at the OSU Library
If you decide to use Python for web development in this course, the Flask user guide should be good enough.
If you decide to use node.js for web development in this course, recommended books from CS 290 should suffice.
This course is dedicated to learning the basics of database design and use.
To accomplish this, along with 3 assignments you will work in groups on a term Project implementing the concepts that you learn each week.
There will also be small quizzes which will help you assess your own understanding of the material. With few exceptions, if you ever get a wrong answer on a quiz that means you are not understanding critical information and it is your responsibility to get clarification. I hope you will not hesitate to ask a question on Piazza if this happens!
All the content, assignments, quizzes and project steps will be available in weekly Modules.
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.
About the Instructor
I am teaching this course with fellow instructor Samarendra Hedaoo. Catch him on Slack and Piazza!
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.
See the table below for more details on assignments and due dates.
Relational DB & Design
Project Step 1 Final
Models, Diagrams, Schemas
Project Step 2 Draft
Project Step 2 Review
Project Step 2 Final
SQL, Advanced DML, DDL
Project Step 3 Draft
ER to DDL, Start Web Application Development
Project Step 3 Review
Project Step 4 Draft
Advanced SQL Assignment
Relational Algebra, Stored Procedures and Triggers
Project Step 4 Review
Relational Algebra Assignment
Non-relational Databases and Finish your project!
Project Step 5 FINAL final!
Transactions Exta Credit Assignment
Reflection Extra Credit Discussion
(Grades due from instructors)
You can also download the syllabus as a pdf.
You can take the Syllabus Quiz once you are registered for the course.
|Grade letter||Percentage floor|
The final grade will be computed using a weighted average according to the table above and the weighting below.
Note about Partial Credit
In general assignments are not graded such that each piece is worth a fixed portion of the total credit for the assignment. For example, if 40% of the program is non-functional that generally indicates that there is some important concept that has been missed. If that is the case, then the grade will be a 0. You can then resubmit it to earn up to 70% of the assignment credit, but the revised submission must be entirely functional.
You should treat me as a client. I will give you a set of requirements. Requirements can be interpreted differently; this is unavoidable. You have to meet my interpretation of the requirements to get an A. If you have any doubt about what a requirement means, you should ask me to clarify.
Even if you do not plan to do work on the assignment till near the deadline, you should read the requirements as soon as you can to see if anything is ambiguous so you can get clarification while there is still time to act on it.
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.
- Quizzes - 15%
- Assignments - 25%
- Participation - 20%
- Project - 40%
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.
Questions about grades
The TAs will grade all your submissions, unless otherwise noted. If you have any concerns, contact the grader for that specific assignment via email as noted in the "Where to go for help ?(Comm. Methods & Policies)" page of the Syllabus. Any concerns about grades should be communicated within 2 weeks of the assignment's due date.
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.
You must submit all assignments before the due date. We do not accept submissions if the deadline is missed. If you do not submit before the due date, you will receive 0 credit.
However, we do have a "revision grace period" policy. If you are unable to fulfill an assignment, project step, or quiz to your satisfaction before the due date for any reason, you may notify the TA (via a Canvas comment or email along with the original on-time submission) that you plan to submit a revision. You may then submit a revision within 3 days.
If you 1) submit a partial fulfillment of the requirements before the due date, 2) notify the TA when you submit your first attempt, and then 3) resubmit a revised version of your work within 3 days, your grade will reflect your final submission only without incurring penalties. If you do not resubmit within 3 days, your grade will reflect your original (potentially incomplete) submission.
The exceptions to this are project step drafts, draft reviews, extra credit assignments and the final project step submission (the one that is due in the last week of the term!). These must be submitted on time and cannot be revised once the due date has passed. Assignments will remain accessible in Canvas until the revision grace period closes.
Exceptions may be made for documented emergencies, e.g. hospitalization, or extraordinary extenuating circumstances.
- 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. If there is a question that gets ignored for longer than 48 weekday hours you can email the instructor and TA and ask them to follow up with it. It may have just gotten missed. Look below for the Code Sharing policy.
- The Slack channel is the primary mode of conducting office hours by the TAs unless specified. At the beginning and end of each office hour session (whether or not it is held using Slack), the TA would put up a message on the Slack channel informing so. If you are sharing code on Slack, look below at the Code Sharing policy.
- Email should be used for anything that contains sensitive information. So if you have a question about a grade or want to request an extension, do so via email. All emails should have the exact characters (yes, include the parantheses)
[CS340]at the start of the subject so that they get priority in my inbox. In addition, every time you reply to an email thread it knocks it to the back of the queue because email gets processed in order of the most recent emails last. So be careful sending multiple replies as it might bump you back in the queue.
- Canvas Comments
- Canvas comments should only be used by students to add commentary prior to grading and by myself and the TAs to give feedback. If you need to communicate something to myself or the TAs after your assignment has been graded do so via Email. We will not see comments posted to your assignment submission after it has been graded.
- Canvas Mail
- The TAs and myself try the best we can to monitor Canvas email. But there are less options to sort and filter mail via that system so there is a much higher likely-hood that we will miss things that get sent via Canvas mail. So I suggest you do not use it.
TA Office Hours
The primary mode of office hours by the TAs, unless otherwise indicated, will be the Slack channel. At the beginning and end of each office hour, the TAs will inform on the above Slack channel.
Times are in PDT.
|Tuesday||Jing Wang 11 am - 12 pm|
|Thursday||Zahir 11 am - 12pm|
Contacting the TAs
Jing Wang: firstname.lastname@example.org
Zahir Ahmed: email@example.com
Contacting the Instructor
Office hours with the Instructor are available by appointment.
You can email me at firstname.lastname@example.org if you want to schedule a time on Slack. I am very active on Slack and by email so you can usually reach me there pretty quickly.
All technical questions, as well as questions about assignments, quizzes, or anything that you learn in class (unless they are related to your grade), should be posted in Piazza so that all students can benefit from them.
Guidelines for a Productive and Effective Online Classroom
Students are expected to conduct themselves in the course (e.g., on discussion boards, email) 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.
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.
Amount of use: Extensive. Used for the Project and some SQL assignments.
Expected knowledge: Proficient
Coverage in class: None. You should be able to use a text based code editor well.
Examples: Atom, Notepad++, Sublime Text, Emacs, Vim or TextWrangler.
Amount of use: Extensive. Used for drawing all ER diagrams for assignments.
Expected knowledge: Moderate
Coverage in class: Minimal. You should be able to figure out how to draw diagrams using the various shapes and toolbars available in the software.
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.
Examples:MobaXTerm or FireFTP addon for Mozilla Firefox
Browser-Based Debugging Tools
Amount of use: Moderate. Used for the Project.
Expected knowledge: Limited
Coverage in class: Minimal. This is expected from 290.
Amount of use: Moderate. Used for the Project
Expected knowledge: Working knowledge
Coverage in class: Very limited. Expect that you know all of the basic Linux commands to navigate and interact with a file system.
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.