Website: Canvas and https://www.cs.odu.edu/~zeil/cs361/s24-web/
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. The dates will be announced later. However, students are encouraged to utilize Q&A Discussion forum in Canvas to discuss about about course contents, assignment/ lab activities.
Optional sessions will be conducted via Zoom and recorded for those unable to attend. Links to these sessions will be in Canvas under “Course Collaboration Tool/Announcements”. Recordings will also be available via Canvas under “Media Gallery”.
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.
Ashok Kumar Veerasamy | DRGS office-number |
(757) 683-7731 | aveerasa@odu.edu |
Dr. Zeil will be maintaining the course website. Issues with the website (missing pages, broken links, etc.) can be sent to him at 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.
Email is my favorite mode of communication with students. Don’t hesitate to email me your questions especially those related to getting help with the Assignments. I would be happy to provide guidance when needed.
My general office hours are:
Zoom link for office hours posted at “Announcement” section in Canvas.
Questions about grades, how to solve assignments and other graded activities must be sent to aveerasa@odu.edu.
For more discussion on course communications, please refer to the Communications policy.
In addition to the readings at the course web site, listed at the top of this document, the (required) textbook for this course is:
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.
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 Canvas 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 “Student” 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.
Your browser will need to run Javascript, particularly when taking self-assessments, quizzes and exams, which are hosted on the ODU Canvas system.
ssh, sftp: Any program should do. The CS252 website has some recommendations.
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.
Exams will be conducted using SmarterProctoring, which allows the student a choice of live or online proctoring. If a student opts for online proctoring, a Windows or MacOS PC is required and the students will need to install proctoring software on it.
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.
Programming assignments may be submitted up to two days late, at a penalty of 10% for the first day after the due date, 20% penalty for the second day. Late submissions of programming assignments will not be accepted after the second day.
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.
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.
Labs: | 10% |
Assignments: | 45% |
Part 1 & Part 2 Exams: | 25% |
Final Exam: | 20% |
The lowest assignment/quiz grade will be dropped before computing your overall score.
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.