CS 361: Syllabus -- Summer 2024

Steven Zeil

Last modified: May 16, 2024
Contents:

1 Course Description

1.1 When and Where

Website: Canvas and https://www.cs.odu.edu/~zeil/cs361/sum24/

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. Refer to the course outline for the date and time.

There will be an optional Review/Q&A session held weekly. The day and time of these will be determined by a class survey held during the first week.

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 ECSB 3208
(757) 683-4928 zeil@cs.odu.edu
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.

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.

2.1.1 Office Hours

Office hours will be conducted by Zoom and are posted online at https://www.cs.odu.edu/~zeil/officehours/

General questions about course content and reports of website problems should normally be asked on MSTeams. Information on how to join is distributed in the first week.

Questions about grades, how to solve assignments and other graded activities must be sent to zeil@cs.odu.edu.

For more discussion on course communications, please refer to the Communications policy.

My office hours are listed here.

All office hours will be conducted by Zoom, unless you make other specific arrangements in advance.

This is to facilitate the use of screen sharing to allow us to display code, examples, etc. I cannot and will not attempt to debug your coding problem over the telephone.

2.2 Text

Textbooks for this course are online and free.

In addition to the readings at the course web site, listed at the top of this document, the (required) textbook for this course is:

2.3 Course Prerequisites


The prerequisites for this course are:

or equivalents.

Although you might not be programming on a Linux system in this course, you will still need a number of the programming tools taught in CS252. Specifically, you should be familiar with running programs from the command line (in any operating system), file transfer, SSH keys and SSH key agents, git and GitHub, building with Gradle, and common programming IDEs.

2.4 Computer Accounts

Students will need three network accounts to participate in this class:

All students in this course are responsible for making sure they have working accounts prior to the first assignment.

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

Your browser will need to run Javascript, particularly when taking self-assessments, quizzes and exams, which are hosted on the ODU Canvas system.

All students in this course are responsible for setting up an acceptable programming environment in advance of the first assignment. Options for doing this are explained in the first week’s module.

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 on the course Announcements page on Canvas.

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.

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:

3.3 Grading

labs: 10%
Assignments & Quizzes: 50%
Part 1 & Part 2 Exams: 15%
Final Exam: 25%

The lowest assignment/quiz grade will be dropped before computing your overall score.

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.

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.