Course Syllabus

Some links in this tab are only accessible to registered students.
A PDF copy of this syllabus is available here at CS 340 Syllabus.


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.

Since databases are designed for concurrent access by multiple users, they always involve some type of computer network and therefore learning to write an application which runs on three tier architecture is a shared responsibility between this course and CS 290 Web Development.

One goal of CS 340 as it sits in the curriculum is to give students a solid introduction to databases as well as an in-depth understanding of how to write real world code that runs in a networked three tier architecture. This is captured in the course CLOs below. Many former students and the hiring employers are widely complementary that this course covers a broader view of data technology and how it sits in a modern networked computing environment.

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
2. Model a moderately complex data set by using an ER or UML diagram, and derive a
relational schema from that diagram
3. Create a relational database from a relational schema
4. Create multiple indices in a relational database, and explain when and why such indices are
5. Formulate SQL statements for data manipulation
6. Formulate simple queries in relational algebra by using projection, selection, product, and
join operations
7. Describe the components and interfaces of a Web-based database system
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)


Recommended books

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:

  • Week 1
    Chapter 1 - pages 3-26

  • Week 2
    Chapter 3 - pages 47-53
    Chapter 4 pages 55-88
    Chapter 5 pages 89-105

  • Week 3
    Chapter 6 pages 106 - 140
    Chapter 10 pages 182- 190
    Chapter 11 pages 191 - 213
    Chapter 16 pages 323 - 350

  • Week 4
    Chapter 17 pages 355 - 373
    Chapter 19 pages 399 - 411

  • Week 5
    Chapter 7 pages 141 - 151

  • Week 9
    Chapter 24 pages 496 - 507

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, the Node.JS guide should suffice.

Course Content

This course is dedicated to learning the basics of database design and use.

To accomplish this, along with 4 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 Ed Discussion if this happens!

All the content, assignments, quizzes and project steps will be available in weekly Modules.


Expectations from Student

Prior Knowledge

Students are expected to know the following:

You should be familiar with basic 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 logic expression algorithm, you will have trouble in this class as this level of coding experience is expected.

You should also have completed CS 290 Web Programming and have an understanding of the web client-server model or have prior experience with web coding. It is possible to take this course without having completed CS 290, but you should expect to spend additional time learning concepts necessary to build a web application for the course project. 

Code quality

Code must be clear and you must understand what it is doing. You can show that you understand your code by adding comments to document how it works. The CS 340 instructional staff may not know the platform or the approach for coding the assignments  you are using, so it is your responsibility to make sure that your work is clear enough so that we can follow it.

You should also have no major errors in your program. When we go to check your website, it should be up and running for the entire grading period. If it does not run or generates errors this is unacceptable work.  If was running but then it goes down, that means there is a bug that needs to be addressed as it should be functional. When we are grading the site if it is not running then we cannot give you credit for that portion of the rubric, and you lose those points. 

During the term we will promote coding styles best practices for relational databases and applications. You should adopt these and follow them.

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. More details about this are found in the course policies section. 

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:

Participation in Research

During this course students will be invited to participate in a research study on cybersecurity behavior and receive extra credit in return for completing the study. Students who elect not to participate will have an alternative activity to complete for extra credit. Students may only complete one extra credit activity (ether the research or the alternative). 

About the Instructor

Hi, I am Dr. Michael Curry and will be your instructor this term. 

I am based out of the Portland Oregon area although I frequently work remotely at other locations. I have been a professor on campus at Oregon State and now online.

I didn't plan to become a computer scientist, but maybe like you I had a bit of a knack for it and kind of enjoyed doing things that required writing little programs. After college I was a telecommunications officer in the US Army and worked with lots of technology and communication systems, but I didn't write much code until later when I went to graduate school. My first job after that was as a software engineer for embedded systems manufacturer. It was a great learning experience to work in industry. Later I joined a and being part of a fast-paced start-up was another great experience. Eventually I decided that I wanted to start my own company. So in 2003 I went out on my own and over the next decade worked with over 100 different businesses writing data-driven web applications, similar in many respects to the ones that you will be working on this term as part of your course project.

I have also been fortunate to teach this material to students like you for many years. Former students have said that they found this Introductory Database course to be well organized and learned a lot of practical and highly relevant skills. I recently redeveloped this course and got to build onto much of the great work started by other instructors in this online program. So you will undoubtedly see more videos with me this term!

All of the instructors and teaching assistants really enjoy helping others learn. So if you’re stuck or having difficulty then please reach out to one of us on Teams, Ed Discussions or by email.

Outside of work, I am an avid rock climber and love being outdoors. I look forward to connecting with you and helping you learn this term.

Hi, I am Dr. Danielle Safonte, M.I.S. Ed.D., and I will be one of your instructors this term. 

I live on the east coast and spent most of my life living in NYC. I currently live in New Jersey, NY with my wife and two young children. I have been a professor of both on-campus courses and online courses at NYC College of Technology and Brooklyn College for many years now. I am excited to be part of the Oregon State team with you here online. 

My undergraduate education was based in Business Information Technology Systems, and Software Engineering obtained at the City Univerisity of NY (CUNY). My Masters' education was focused on Information Systems and Databases, obtained online in a similar program. I also have an Ed.D., or Doctorate in Higher Education with my research focus being online learning. As a professor and someone who has been a student in online education, I hope to bring an enjoyable, informative distance learning experience.

I started in the technology field working for the City University of NY as a lab technician and worked my way up while continuing my education to the Director of Technology and Database Administrator for some select departments in the college. I have created databases from scratch as well as worked with boxed software for customized databases and analytic tools.

Through my almost 10 years of creating user manuals and holding training courses, I decided to take on a couple of classes to teach. Little did I know that a few short years later, teaching became my main focus. I enjoy bringing real-world knowledge into my courses to prepare you for a successful career ahead. I also freelance with publishers to create course content for online education. We have a variety of clients including Universities to large corporations, who look for training materials and courses just like this one.

I want you all to take away the most you can from this course. The only silly questions are the ones you walk away with, never inquiring for an answer. If you are having a hard time or are unsure of something, please JUST ASK! I am available through Teams, Ed Discussion, or by email. ( )

In my spare time, I enjoy traveling, spending time with my TaeKwonDo family, and collecting fossils. I look forward to connecting with you all and starting this learning journey with you.


How to be Successful

Recently, I met with a group of former students at the EECs Career Showcase (which I encourage you to attend if you have the opportunity --watch your email for details). Dion Mokhtari and Samantha Jarrah graciously agreed to share their lessons learned for being successful in CS 340 in the following video. 

Student Evaluation of Courses

During Fall, Winter, and Spring term the online Student Learning Experience surveys open to students the Wednesday of week 9 and close the Sunday before Finals Week. Students will receive notifications, instructions, and link through their ONID email. They may also log into the survey via MyOregonState or directly at Survey results are extremely important and are used to help improve courses and the learning experience of future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity of written comments) and are not available 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.
You can also download the syllabus as a pdf.

You can take the Syllabus Quiz once you are registered for the course.


Topic & Content

Due Mon

Due Thurs


Intro/Tools/SQL Practice

(Syllabus Quiz)


Relational DB & Design

Activity 1 
Activity 2 
Activity 3 

Database intro quiz
ER Concepts Quiz
Using ERD & Schema Quiz


Relational Algebra, SQL Intro

Project Step 1 Draft (Proposal, Outline, ERD)

Relational Algebra Quiz
Project Step 1 Review
Activity 1/2/3 - Gradescope Assignment


Intersection tables & SQL JOINS

Quiz: Basic SQL (On Gradescope)

Project Step 1 Final Version (Group / On Canvas)

Activity 4 - Gradescope Assignment
Activity 5/6 - Gradescope Assignment


Database Normalization

Intermediate SQL Assignment (on GradeScope)
Normalization Quiz


Project Step 2 Draft: Normalized Schema + DDL with Sample Data (Group, on Ed Discussions)


Design Project HTML UI

Advanced SQL Assignment (on GradeScope)
Project Step 2 Review

Project Step 3 Draft Version: Design HTML Interface + DML SQL (Group / On Ed Discussion )


Project Development

Project Step 3 Review

Project Step 3 Final Version: Design HTML Interface (Group / On Canvas)


Continue Project Development


Project Step 4 Draft Version: Implement CRUD for One Entity (Group on Ed Discussions)


Analytical DBs and BI

Project Step 4 Review

Project Step 5 Draft Version: Implement MOST Remaining Entities/Pages (Group on Ed Discussions)


Finish Project & No SQL

Analytical DB and BI Assignment
Project Step 5 Review

SLE Completion
Reflections on Learning Strategies used in CS 340

Extra Credit Research or Transactions in DB


Finals Week

Project Step 6 (Portfolio Assignment)


Grade letter Percentage floor
A 94
A- 90
B+ 87
B 84
B- 80
C+ 77
C 74
C- 70
D+ 67
D 64
D- 61
F 0


Grading Scale

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.


Maximizing Credit

In an upper-division class for the field of databases, full mastery is a very high standard. Grading assessments seek to fairly evaluate effort and provide feedback on where students may improve (because there is often room for improvement). 

You should treat the instructional staff as a client. We will provide you with a set of requirements. Requirements can be interpreted differently; this is unavoidable. You have to meet our interpretation of the requirements to get full credit. We will give you feedback on your submissions, and we expect you to address the feedback. Not addressing feedback can result in deductions on subsequent assignments. If you have any doubts about a requirement or our feedback, ask for clarification.

This course allows you to resubmit your work for some assignments up to three days after the due date. Please see the late policy for details. This course also permits you to retake your quizzes as many times as you like, and the highest score will count. These two flexible grading policies are advantageous for most students who earn a higher score than would be otherwise possible without such flexibility. Please keep that in mind, especially if you receive deductions on other assignments. As already noted, full mastery is a very high standard.

We provide grading rubrics for assignments. These rubrics are a guide to help students understand what is expected, and you are encouraged to review them carefully before submitting an assignment. Rubrics also make grading efficient and fair. However, the rubrics are subject to interpretation, and students may not always agree with how the rubrics are applied. Grading deductions help students learn where they can improve. They are not punitive, so arguing over how a rubric was applied may be counterproductive and, if handled unprofessionally, can violate the syllabus policy on civility. See the Harassment of the Instructional Staff policy for details.

If you have questions about your grade, see the grading policy. 

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.

Each team will develop a team contract that guides how they will work together and resolve differences.  Sometimes, difficulties arise when one team member is not able to do the work as expected. While team conflicts are unfortunate, professionally working through them and accomplishing the goals are important soft skills for students to learn. As in the professional world, neither your supervisor nor your instructor wants to get involved in adjudicating your group policies. The bottom line is that you have a requirement to finish the project and turn in the work. Therefore, we expect you to put aside your differences and complete the project. There have been students in CS340 who have completed the project entirely on their own very successfully. So, it is unfortunate, but not an undue burden, for example, when one student ends up doing more work on a project than another student. 

You can change your group only once through the term and to change you need to find another student willing to swap. To swap, email the instructor while copying teammates from both groups.

If your group member drops the class, contact the instructor and we will help you find a new group.

*Exceptions will be made in special circumstances. 

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:


Grade Weighting

The following shows the approximate breakdown of grading assessment for the course.

  • Quizzes - 25%
  • Assignments and activities - 25%
  • Course Project (including participation, e.g. peer reviews) - 50%
  • Extra Credit - 4%


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.

  • You may challenge the ideas held by others as part of critical thinking and the academic process if you are courteous and respectful. Please word your responses carefully and recognize that others may interpret what you say differently than you expect. A positive atmosphere of collegiality and mutual support is encouraged in the learning process.


Academic Integrity

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, as follows.

Prohibited behaviors include, but are not limited to doing or attempting the following actions:

  • Harassment. Repeated, persistent, severe, or pervasive actions... directed toward specific individual(s) with the intent or effect to harass, harm, or alarm.     
  • Cheating. Unauthorized assistance, or access to or use of unauthorized materials, information, tools, or study aids. Examples include, but are not limited to, unauthorized collaboration or copying on a test or assignment, using prohibited materials and texts, unapproved use of cell phones, internet, or other electronic devices, etc.
  • Plagiarism. Representing the words or ideas of another person or presenting someone else’s words, data, expressed ideas, or artistry as one’s own. Examples include, but are not limited to, presenting someone else’s opinions and theories as one’s own, using another person’s work or words (including unpublished material) without appropriate source documentation or citation, working jointly on a project and then submitting it as one’s own, etc.
  • Falsification. Fabrication or invention of any information. Examples include, but are not limited to, falsifying research, inventing or falsely altering data, citing fictitious references, falsely recording or reporting attendance, hours, or engagement in activities such as internships, externships, field experiences, clinical activities, etc.
  • Assisting. Any action that helps another engage in academic misconduct. Examples include, but are not limited to, providing materials or assistance without approval, altering someone’s work, grades or academic records, taking a test/doing an assignment for someone else, compelling acquisition, selling, bribing, paying or accepting payment for academic work or assistance that contributes to academic misconduct, etc.
  • Tampering. Interfering with an instructor’s evaluation of work by altering materials or documents, tampering with evaluation tools, or other means of interfering.
  • Multiple submissions of work. Using or submitting work completed for another or previous class or requirement, without appropriate disclosure, citation, and instructor approval.
  • Unauthorized recording and use. Recording and/or dissemination of instructional content without the express permission of the instructor(s), or an approved accommodation coordinated via Disability Access Services.

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.  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. 

Violations of these expectations or the Code of Student Conduct will be reported to the Office of Student Conduct and Community Standards. First infractions may result in a zero points for the assignment. Subsequent infractions may result in a failing grade for the course. 

Harassment of the Instructional Staff

As noted above, harassment, or the repeated, persistent, severe, or pervasive actions... directed toward specific individual(s) with the intent or effect to harass, harm, or alarm,      is prohibited by the Code of Student Conduct. Examples include flooding, or transmitting a similar message over multiple channels (e.g. email, Teams, Ed Discussion, etc.), having a confrontational tone, being overly demanding, argumentative, making repeated grading appeals (especially when explanatory grading comments were already provided); or demands of a grade adjustment; or public negative comments referring to the instructional staff. Such harassment is hurtful and disruptive to a positive class environment. TAs and instructors have many responsibilities and are often busy helping students. They have graded many projects and have a solid understanding of relational DB design and how to be successful in this course. You can best support the learning process by planning ahead and asking well thought out questions. It is normal for students to feel frustrated or even upset when they have a difficult programming issue, or they received challenging feedback about their work. However, it is not acceptable for students to behave uncivilly when communicating with the instructional staff. Please do not harass the instructional staff. Students who are harassing will be given one warning.  Sanctions for further misconduct may include being banned from posting on Ed Discussion/Teams, banned from using office hours, and/or being reported to the Office of Student Conduct. Misconduct is a significant offense that could result in academic penalties and other sanctions, including suspension or expulsion from Oregon State University.

Citing code

Your citation of others code should include:

  • URL of your source
  • Date you retrieved your source
  • Title of the program or application you are using
  • Type (eg. source code, application, full program, etc)
  • Author name(s) if available
  • Code version if available

1. The recommended method is to cite your sources using comments in BOTH a README file AND at the top of your code file.

Example: a good citation can be observed on lines 1-5 below:

1 # Citation for the following function:
2 # Date: 12/02/2022
3 # Copied from /OR/ Adapted from /OR/ Based on 
4 #
(Explain degree of originality) 5 # Source URL: 6

We also expect you to comment any code that is not your own so that we can see you understand how it works, for example:

## Route handles Update functions for the Customer entity. 

Any code that is not your own needs to be cited. The code from the class starter apps is not your own code. A snippet of code you copied from StackOverFlow is not your own code.

Questions about grades

Grading assessments seek to fairly evaluate effort and provide feedback on where students may improve (because there is often room for improvement). Understandably, students may not always agree with how they were graded. Grading deductions are not punitive and arguing about a small number of points is largely counter-productive and if handled unprofessionally can be a violation of the syllabus policy on civility. See the Harassment of the Instructional Staff policy for details. As noted in the sections on Maximizing Credit and the Late Policy, this course has some flexible grading policies on some assignments and most students earn a higher score than would be otherwise possible without such flexibility. Conversely, asking clarifying questions about how to apply feedback and improve future work are highly productive lines of inquiry that are encouraged.

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? Any concerns about grades should be communicated within 7 days of receiving the grade. If you do not receive a satisfactory response, you may email one of the instructors and state your case. When an instructor re-evaluates your assignment, we reserve the right to assess the entire work in addition to areas you asked for review. If you are not satisfied with the instructor's decision you may petition the EECS Head of the Online Program


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 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.


Late Policy

You must submit all assignments before the due date, even if it is incomplete! However, if your submission is incomplete your grade maybe a Zero, unless you follow these instructions.

  1. Notify the TA that you plan to resubmit it within 3 days (you can notify them by email or in the Canvas comment with your submission).
  2. If you submit a partial fulfillment of the requirements before the due date and then resubmit a revision within 3 days, your grade will reflect your final submission. If you do not resubmit within 3 days, your grade will reflect your original (potentially incomplete) submission.
  3. 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. This is because the entire class is working towards their completion and slipping the due date for one student affects the other students who are required to perform reviews and submit project steps per the schedule. 
  4. If you do not submit your first version before the due date, you will receive 0 credit. Exceptions may be made for documented emergencies e.g. hospitalization.


Communication Methods

Ed Discussion
Ed Discussion 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 Ed Discussion. 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 Teams 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 Teams), the TA would put up a message on the Teams channel informing so. If you are sharing code on Teams, look below at the Code Sharing policy.
Any email sent to the instructor about this course must originate with an OSU-issued email account. Email using the OSU-issued email addresses is the only way we can be certain of your identity (and vice versa). 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 CS340 in 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 rarely monitor Canvas email. 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 email. 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 Teams channel. At the beginning and end of each office hour, the TAs will inform on the above Teams channel.

Times are in PDT.

Time in PST








Prof. Michael Curry


9 - 10 am






Prof. Danielle Safonte
8 - 9 am




Licato, Alexander
5-7pm 5-7pm
Devin Daniels
11am-3pm 11am-3 pm 11am - 3 pm 7-11am
James Cole 11am - 1 pm 11am - 1 pm
Miguel Angel Bruni Montero 8-10am 8-10am
Patel, Rajan
5 - 7pm 5 - 7pm
Samantha Jarra, 3-5pm 3-5pm
Majewski, Dylan Miles
3-5 pm 7-9 pm
Zachary Maes
2 - 4pm 2pm - 4pm
Vida Lashkari 4-8 pm
Strato Bayitaa 3-5 pm 3-5 pm
Zhang, Xin
7 - 9 pm  7 - 9 pm 
Kiran Nair 5-7 pm 5-7 pm


Contacting the TAs - Teams

To contact Professors or TA, please send a direct message on Teams.


Contacting the Instructor

Office hours with the Instructor are available by appointment.

You can email me at if you want to schedule a time on Teams. We very active on Teams and by email so you can usually reach us there pretty quickly. You should not expect that we will see or respond to messages outside of 9-5 work hours or over the weekend, although we may sometimes. 

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 Ed Discussions so that all students can benefit from them.


OSU CS Tutoring

Tutoring link:


Communication Timelines

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.


Code Sharing

You will not get in trouble for sharing code on Ed Discussion or in Teams 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 of what it is doing so that I know you understand the code you are using.

Course Policy on the use of AI tools (e.g. ChatGPT or similar software).

You are expected to create your own work in this class. When you submit assignments (including assignments, projects, quizzes, or discussions), you are asserting that you have generated and written the text unless you indicate otherwise by the use of quotation marks and proper attribution for the source. You should know that AI tools are based on large collections of text that may have numerous errors, be highly biased and generate answers that are verifiably wrong. Submitting content obtained from other sources (e.g. ChatGPT, Grammarly, Chegg, and even Google’s autocomplete) as your own (e.g. without clear citations) is cheating and a violation of the Student Conduct Code. You may use simple editing tools to help with syntax, spelling and grammar, but you may not use AI tools to draft your work, even if you edit, revise, or paraphrase it. Do not underestimate our ability to detect the use of AI in your submissions!  The penalty for violating the policy is severe. Your work may be flagged as potentially AI generated and reported per the syllabus policy on Academic Integrity for any of the following: 

  • Evidence of a different writing style from previous work submitted in the course.
  • The topics discussed in the submission are not topics covered in class or part of the course.
  • The answer for the submission does not directly address the prompt.
  • The answer for the submission is vastly outside of the guidelines of the prompt (e.g., word count too high, writing style inconsistent with expectations, etc.).
  • The submission is highly similar to a response generated by AI when the assignment prompt is entered in AI.
  • Citations provided are fictitious.

Alternatively, AI tools are a valuable resource to help troubleshoot code and can also be used responsibly to supplement and enhance your learning and understanding of course materials. For example you may ask ChatGPT questions that you would otherwise ask the instructor after  completing a lecture. E.g. “how is relational algebra used in modern database systems?” "Why does the following code generate the error 'Cannot add or update a child row: a foreign key constraint fails'?" As with other sources (e.g. the course text, Stack overflow, etc.), your use of these is guided by the Academic Integrity Policy and anything you submit that that is not your own must be clearly cited.

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. 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.


Personal MySQL Database

Description: You will have one College of Enginering assigned MySQL database. However, many students also elect to download and install MySQL on their own personal computer. One potential advantage is they can have more than one personal database. Having more than one personal database maybe beneficial for completing assignments and the project. 

Amount of use: Moderate. Potentially used for the Assignments and Project. 

Expected knowledge: Working knowledge

Coverage in class: None. If you elect to install MySQL, follow the documentation. 

Examples: MySQL Community Installer or XAMPP.

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.

Examples: Accessing UNIX server using PuTTY (SSH) | Information Technology and Computing Support | Oregon State University

Privacy Policies

Follow this link to access Privacy Policies for commonly used external tools that require the user to create an account.

Microsoft Teams

Follow this link to access the Privacy Policy for Microsoft Teams.

Ed Discussion

Follow this link to access the Privacy Policy for Ed Discussion.

Return to the Start Here Module


Course Summary:

Date Details Due