CS 361: Syllabus -- Summer 2022
Steven Zeil
1 Course Description
1.1 When and Where
Website: Canvas and https://www.cs.odu.edu/~zeil/cs361/sum22/
This is an internet-based course. There are no regularly scheduled class lecture times. For the most part, students will work at their own chosen times, subject to deadlines for assignments and exams (described later under Course Policies).
There will be an optional Orientation session conducted via Zoom at the start of the semester.
There will be an optional Review/Q&A session held on Tuesday afternoons at 4:00PM. Sessions will be conducted via Zoom and will be recorded for those unable to attend. Links to these sessions will be in Canvas under “Course Collaboration Tool”. Recordings will also be available via Canvas under “Media Gallery”.
1.2 Objectives:
This course explores data structures, algorithms for manipulating them, and the practical problems of implementing those structures in real programming languages and environments. Heavy emphasis is placed upon the analysis of algorithms to characterize their worst and average case requirements for running time and memory.
Perhaps more than any other course, CS361 should expand the students “toolbox” of basic techniques for manipulating data at both the conceptual and the concrete level. At the conceptual level, the student will see a broad selection of standard practices and approaches used in program design. At the concrete level, the student will begin what should be a career-long practice of accumulating useful, reusable code units.
2 Basic Information
2.1 Instructor
Steven Zeil | E&CS 3208 |
(757) 683-4928 | zeil@cs.odu.edu |
Important: All email related to this course should have the phrase “CS361
” somewhere in the subject line. This flags your message in my mailbox for faster attention. Omit this, and your message may get lost amid the ton of daily spam and ODU administrative messages I get each day.
I try to respond to all (properly marked) messages within 24 hours M-F, within 48 on weekends & holidays.
2.1.1 Office Hours
Office hours are posted online at http://www.cs.odu.edu/~zeil/officehours/
General questions about course content and reports of website problems should normally be asked in Teams or via email.
Questions about grades, how to solve assignments and other graded activities must be sent to zeil@cs.odu.edu, not posted in Teams.
For more discussion on course communications, please refer to the Communications policy.
2.2 Text
In addition to the readings at the course web site, listed at the top of this document, the (required) textbook for this course is:
- Weiss, Data Structures & Algorithm Analysis in C++, 4e, 2013, Pearson PH, 013284737X 978-0132847377
2.3 Course Prerequisites
The prerequisites for this course are:
-
CS 250, Problem Solving and Programming, or CS 333, Problem Solving and Programming in C++
-
CS 252 Introduction to Unix for Programmers
-
MATH 163, Pre-Calculus II,
or equivalents.
2.4 Computer Accounts
Students will need two network accounts to participate in this class:
-
An ODU ITS (Midas) account. This is the account associated with your
@odu.edu
email. It will allow you to log into the course’s Blackboard site when taking quizzes and exams.All ODU students automatically receive this account, though you may need to activate yours, particularly if you are new to ODU.
-
An account on the CS Dept. network. This will be used for access to the CS dept computing resources, and for accessing and submitting assignments.
You may have a CS account already if you were registered for a CS class last semester. If not, the account setup and password can be initiated at http://www.cs.odu.edu/ by clicking on “Account Creation” under “Online Services”.
A few notes about this:
-
Typically, new accounts can be created no earlier than 1-2 weeks before the start of classes.
-
There are time lags in the way that information flows around the University and within the CS network.
-
Typically you will need to have been enrolled in a CS course for 24-48 hours before you can create an account.
-
Once your account is activated, you may need to wait another 24 hours before your account information becomes available to the course website and you are able to access the course’s assignment pages.
-
All students in this course are responsible for making sure they have working accounts prior to the first assignment.
-
-
An account on GitHub.
A ordinary free account will do, although students can obtain a free upgrade to a “Pro” account, which offers additional features that may be useful.
Students on campus will have access to the CS Dept’s PC labs. All students can access the CS Dept’s Linux servers and the Virtual Computer Portal from off campus or from other computer labs on campus.
2.5 Software Requirements
2.5.1 Required
- Web browser: Most up-to-date web browsers should suffice for this course. Chrome and Firefox are recommended. Internet Explorer and Safari are discouraged.
Your browser will need to run Javascript, particularly when taking self-assessments, quizzes and exams, which are hosted on the ODU BlackBoard system.
-
ssh, sftp: Any program should do. The CS252 website has some recommendations.
-
Respondus Lockdown Browser will be required for quizzes and exams. The webcam option (also known as Respondus Monitor) will not be required.
You will not be able to take quizzes and exams using a regular web browser. Because Respondus requires either Windows (10, 8) or MacOs (10.12 to 11.1), you will need access to a PC with one of those operating systems to take any of these tests.
All students in this course are responsible for making sure they have Respondus available and working prior to a quiz or exam.
-
Students will need to install software giving them access to a C++ compiler, debugger, and IDE, whether on their own PCs or via remote access to the CS Linux servers. Recommended options for doing this will be covered in the first week.
All students in this course are responsible for setting up an acceptable programming environment in advance of the first assignment.
3 Course Policies
3.1 Due Dates:
The course is divided into three parts. Each part has associated assignments and a closing exam. (The final exam following Part III, is cumulative). Most assignments are marked with an explicit due date, and are due at the end of that day (11:59:59PM, ET). Where a date range is indicated, the assignment or test is due at the end of the final day listed. You will find these dates on the outline page and possibly in Canvas as well.
Late submissions will generally not be accepted. That said, for programming assignments managed via GitHub, there may be a short time lapse between when the assignment was due and when the instructor downloads your code for grading. Most often, this download will occur early in the morning after an assignment was due. No penalties will be assessed for programming assignments submitted before the instructor downloads the code.
Late submissions of quizzes, non-programming assignments, and exams (anything not submitted via GitHub) will not be accepted.
Except as outlined above, exceptions to due dates will be made only in situations of unusual and unforeseeable circumstances beyond the student’s control.
“I’ve fallen behind and can’t catch up”, “I’m having a busier semester than I expected”, or “I registered for too many classes this semester” are not grounds for an extension.
3.2 Academic Honesty:
Everything turned in for grading in this course must be your own work.
The instructor reserves the right to question a student orally or in writing and to use his evaluation of the student’s understanding of the assignment and of the submitted solution as evidence of cheating. Violations will be reported to the Office of Student Conduct & Academic Integrity for consideration for possible punitive action.
Students who contribute to violations by sharing their code/designs with others may be subject to the same penalties.
Students are expected to use standard Unix protection mechanisms (chmod
) to keep their assignments from being read by their classmates. Failure to do so will result in grade penalties, at the very least.
This policy is not intended to prevent students from providing legitimate assistance to one another. Students are encouraged to seek/provide one another aid in learning to use the operating system, in issues pertaining to the programming language, or to general issues relating to the course subject matter.
Students should avoid, however, explicit discussion of approaches to solving a particular programming assignment, and under no circumstances should students show one another their code for an ongoing assignment, nor discuss such code in detail.
Use of Online Resources
You may not post details of course assignments, projects, or tests at online Forums, Bulletin Boards, Homework sites, etc., soliciting help.
You may use information that you have not solicited but have located, subject to the following restrictions:
-
Just as when writing a paper, if you use someone else’s ideas, you must cite your sources appropriately. Within code, such citations appear in comments.
Example:
⋮ double x = 23.0; double xsqrt = sqrt(x); // Search algorithm based upon code by S Zeil at // https://www.cs.odu.edu/~zeil/cs361/latest/Public/functionAnalysis/index.html#orderedsequentialsearch int loc = 0; while (loc < arraySize && numbers[loc] < xsqrt) ⋮
-
Just as when writing a paper, if you use someone else’s words (code), you must cite your sources appropriately and mark the quoted text. Within code, such citations appear in comments.
Example:
⋮ double x = 23.0; double xsqrt = sqrt(x); // Begin quoted code from S Zeil at // https://www.cs.odu.edu/~zeil/cs361/latest/Public/functionAnalysis/index.html#orderedsequentialsearch int loc = 0; while (loc < listLength && list[loc] < searchItem) { ++loc; } // End quoted code ⋮
-
Failure to appropriately cite any such “found code” will be taken as evidence of plagiarism.
-
The overall principle stated in the first sentence of this section remains in effect. “Everything turned in for grading in this course must be your own work.” If the bulk of your assignment, project, test answer, etc., are copied, even with appropriate citation, to the degree that, in the judgment of the instructor, you have not demonstrated your own knowledge of the course material, you will receive a zero for that submission.
3.3 Grading:
Assignments & Quizzes: | 45% |
Part 1 & Part 2 Exams: | 25% |
Final Exam: | 30% |
The lowest assignment/quiz grade and the lower of the first two exams will be dropped before computing your overall score.
- A running estimate of the student’s overall grade in the course can be found here.
- Details on how grades are computed.
4 Educational Accessibility:
Old Dominion University is committed to ensuring equal access to all qualified students with disabilities in accordance with the Americans with Disabilities Act (ADA). The Office of Educational Accessibility (OEA) is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations.
-
If you experience a disability which will impact your ability to access any aspect of the course, present me with an accommodation letter from OEA so that we can work together to ensure that appropriate accommodations are available to you.
-
If you feel that you will experience barriers to your ability to learn and/or complete examinations in the course but do not have an accommodation letter, consider scheduling an appointment with OEA to determine if academic accommodations are necessary.
The Office of Educational Accessibility is located at 1021 Student Success Center, and their phone number is (757)683-4655. Additional information is available at the OEA website.