CS 310: Data Structures (All Sections)
George Mason University
Department of Computer Science

Spring 2022
  1. Course Basics

    Instructors:

    Name: Katherine Russell(Ph.D.)
    Email: krusselc-at-gmu-dot-edu
    Webpage: https://cs.gmu.edu/~krusselc/
    Hours: T 3:30 - 5:00 PM
    Office: Nguyen Engineering Building, Room 5328
    Name: Wes Masri(Ph.D.)
    Email: wmasri-at-gmu-dot-edu
    Webpage: TBA
    Hours: W 12:00 - 1:30 PM or by appointment
    Office: Nguyen Engineering Building, Room 4709
    Name: Tessema Mengistu (Ph.D.)
    Email: tmengis-at-gmu-dot-edu
    Webpage: https://cs.gmu.edu/~tmengis/courses/SP22/CS310Spring22.html
    Hours: TR 10:30 AM - 12:00 PM or by appointment
    Office: Nguyen Engineering Building, Room 2703

    Graduate Teaching Assistants:

    Name: Syeda Sabrina Akter
    Email: sakter6-at-gmu-dot-edu
    Hours: T 9:00-11:00 AM
    Office: ENGR 4456

    Name: John DeCarlo
    Email: jdecarl-at-gmu-dot-edu
    Hours: W 11:00 AM - 1:00 PM
    Office: ENGR 4456

    Name: Archange Destine
    Email: adestine-at-gmu-dot-edu
    Hours: F 2:00 - 4:00 PM
    Office: ENGR 4456

    Name: Nursena Kurubas
    Email: nkurubas-at-gmu-dot-edu
    Hours: F 12:00 - 2:00 PM
    Office: ENGR 4456

    Name: Preksha Shukla
    Email: pshukla8-at-gmu-dot-edu
    Hours: M 11:00AM - 1:00 PM
    Office: ENGR 4456

    Name: Weisen Zhao
    Email: wzhao9-at-gmu-dot-edu
    Hours: W 2:00 - 4:00 PM
    Office: ENGR 4456

    Undergraduate Teaching Assistants:

    Name: Matiullah Abbasi
    Name: Melisa Evcimen
    Name: Gianmarco Huaytan
    Name: Johnny Tran Le
    Name: Pranil M Shrestha
    Name: Troy Acuff
    Name: Alejandro Capecchi Perez
    Name: Isabelle H Trenkova
    Name: Seohae Lee
    Name: Qizra Sameen
    Name: Minhyuk Ko
    Name: Riyanka Ray

    Prerequisites: CS 211 (C or better) and MATH 113 or MATH 124 (C or better)

    Format: Lecture

    Lectures:

    SectionDaysTimesLocation
    Sec 001TR12:00 - 1:15 PMPlanetary Hall 129
    Sec 002TR1:30 - 2:45 PMPlanetary Hall 129
    Sec 003TR4:30 - 5:45 PMEnterprise Hall 80
    Sec 004MW1:30 - 2:45 PMPlanetary Hall 131

    Textbooks:

    Required Data Structures and Abstractions with Java, Frank M. Carrano and Timothy M. Henery, 5th edition, Pearson
    ReferencesData Structures & Problem Solving Using Java, Mark Allen Weiss, 4th edition, Addison Wesley.

    Blackboard: Blackboard will be used for all official announcements, course slides, assignments (including submissions), and grades.

    Piazza: Piazza will be used for online discussion; any information discussed on Piazza will be assumed to be known to students.

    • The discussion board on Piazza is required reading for all projects. You MUST read the discussion board for clarifications and project updates.
    • Course schedule, announcements discussion. GTA/UTA contacts and office hours will be on Piazza too.
    • Do not e-mail course staff about programming problems; use the discussion board.
    • Use public posts on Piazza to discuss programming project requirements, labs, and other material related to the course.
    • When prompted by a TA, use private posts on Piazza to share portions of your code pertaining to your questions. Don't share your project code in public posts.
    • Email course staff only for logistical issues such as meeting outside of office hours, missing lab/lecture, grading disputes, medical situations, etc. Email addresses are listed on above and on Piazza.

    Software & Programming Requirements

    For All Classes:

    • You will need a computer for this class with some modern operating system capable of running a Java compiler (for Java 1.9 or higher, the latest stable version of OpenJDK is preferred). Remember that lab computers are also available on campus, see campus resources below.
    • The prerequisite for this course is C or better in CS 211. We will assume that you have developed a significant degree of skill in programming (program organization, coding, documenting, testing and debugging) -- you will develop yet more this semester. We will also assume that you are acquainted with basic complexity analysis ("big O") and are able to build abstract data types using Java classes.
    • Be prepared to move online if the semester requires it for any reason (see online class requirements below).

    For Online and Hybrid Classes:

    • You will regularly use either Blackboard Collaborate (https://mymason.gmu.edu) or Zoom (https://zoom.us/) for your class meetings.
    • You are required to have regular, reliable access to a computer with an updated operating system (recommended: Windows 10 or Mac OSX 10.13 or higher) and a stable broadband Internet connection (cable modem, DSL, satellite broadband, etc., with a consistent 1.5 Mbps [megabits per second] download speed or higher.
    • You are required to have a device with a functional camera and microphone.
  2. Course Information

    Course Description:

    Focuses on object-oriented programming with an emphasis on tools and techniques for developing moderate to large programs. Topics include use and implementation of linear and nonlinear data structures and the design and analysis of elementary algorithms.

    Course Outcomes

    By the end of the semester, students will:

    • Gain an ability to analyze the runtime efficiency of algorithms that create and manipulate data structures.
    • Gain an ability to compare data structure tradeoffs such that the student is able to choose appropriate implementations for a given data structure and appropriate data structures for a given application.
    • Reinforce their knowledge of basic data structures (linked lists, dynamic array lists, stacks, and queues) and extend their knowledge to more sophisticated data structures, including hash tables, balanced trees, priority queues, and basic graphs.
    • Implement and use learned data structures to solve real computing problems. This includes substantial reinforcement of language-specific techniques for abstract data types and design and debugging techniques.

  3. Coursework

    Programming assignments

    Students will receive a number of programming projects during the semester. These programming projects will be a primary focus of your grade - each one should take multiple sessions of coding, with questions asked in between. Don't be surprised if you're spending 20+ hours on each one. All project grades will be averaged together evenly. Programming projects are INDIVIDUAL work.

    • Submission
      • All projects are to be submitted to Blackboard. You can submit your work an unlimited number of times to BlackBoard, and by default only the last version will be graded.
      • Turning in the wrong files will likely result in a zero. You can and should download your submitted attempts to verify that you turned in a working copy.
      • Broken Code == Bad Scores. Any code turned in that does not compile, specifically on Java 1.8 is likely to receive a zero. If the grader is able to quickly fix your code, you might get some points back. If the grader cannot immediately spot and fix the issue, you'll be fortunate to get any points at all.

    • Notes:
      • Submission times are automatically recorded by Blackboard, and there's no distinction between a tiny bit late and nearly a day late - plan ahead to make sure that your submission is on time.
      • Blackboard being unavailable is not an excuse for turning in a late assignment; in the rare situation that the website is somehow unavailable or giving the student an error, the student MUST email their submission to their GTA before the deadline, otherwise it will be considered late.
      • Catastrophic computer failure will not be cause for an extension. Use a backup service such as DropBox (or any cloud service), emailing yourself, storing to a USB drive, whatever it takes. Every semester multiple students' computers die, are stolen, or otherwise 'lose' projects. Don't be the student who forgot to (frequently) back up your work!
      • All projects numbered above 0 will be worth the same amount of points. Your four projects grades will count for 40% of your semester grade (10% each). There is Project 0 that will not be part of the calculation, but instead act as a "flag". You will not receive credit for any project until you pass this project, but there will be infinite resubmissions for Project 0 (until some specified date, usually in the middle of the semester). If at the specified date you still have not passed Project 0, your current (and future) project grades will be replaced with a 0s.

    Midterm Exam: closed resource;individual work; online or paper-pencil based (dependent on the instructor). You may need Respondus browser lockdown installed to take the exam. Please refer here about respodus browser lockdown. You may also need to have a working webcam and microphone as well.
    Final Exam: is closed resources and comprehensive; individual; online or paper-pencil based (dependent on the instructor). You may need Respondus browser lockdown installed to take quizzes. Please refer here about respodus browser lockdown. You may also need to have a working webcam and microphone as well.
  4. Class Participation: is instructor dependent. It may include lecture attendances and pop quizzes during lectures.
  5. Grading Procedures

    Grade Distribution

    MaterialWeightNote
    Class Participation5%
    Programming Projects(4)40%
    Midterm Exam25%
    Final exam30%

    Grading Policies

    • Grades within a category (i.e. exams, projects ) are weighted equally.
    • Students must have Respondus Browser locakdown installed before taking any quiz or exams.
    • The final exam is cumulative.
    • Challenging of any grade must occur within a week of when the graded assignment has been returned.
    • Any number of resubmissions are allowed (the most recent is used), however a resubmission turned in after the deadline will be considered a late submission.
    • In general, make-ups are not allowed except on exams ( under very special circumstances).
    • Assignments are typically due at midnight on the listed due date.
    • Late submission policy (up to 48 hours) is as follows: <=24 hours with 10% off, >24 hours &&<=48 hours with 25% off, > 48 hours will receive 0. For example, if you are late by 10 hours and you get 75 on the assignment, your final points will be 67.5. Submission times are automatically recorded by Blackboard, and there is no distinction between a minute late and a day late. Please plan ahead to make sure that your submission is on time. Taking backups regularly is highly recommended.

    Grading Scale

    Grade A+AA- B+BB- C+CC- DF
    max 9791 898781 797771 6959
    min 989290 888280 787270 60

  6. Honor Code

    Unless specific instructions are given to the contrary, programming assignments are an individual effort, no group work is allowed. In addition to code, this includes the sharing of test cases, pseudocode, or approaches, receiving assistance in debugging code, as well as the use of external Internet sites.

    Both the GMU Honor Code and the CS Department Honor Code apply in this class. Any use of a direct contribution on any program, homework, quiz, or exam will be reported as a violation of the honor code.

    We take the honor code quite seriously. Any attempts at copying or sharing code, algorithms, or other violations of the honor code simply will not be tolerated. We use automated software to flag suspicious cases, and then review them to find the cases that must be submitted to the Office of Academic Integrity. The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance. Confirmed cases of cheating almost always translate into course failure.

    Some kinds of participation in online study sites violate the Mason Honor code: these include accessing exam or quiz questions for this class; accessing exam, quiz, or assignment answers for this class; uploading of any of the instructor’s materials or exams; and uploading any of your own answers or finished work. Always consult your syllabus and your professor before using these sites.

  7. Privacy

    All course materials posted to Blackboard or other course sites are private; by federal law, any materials that identify specific students (via their name, voice, or image) must not be shared with anyone not enrolled in this class. Video recordings of class meetings that include audio or visual information from other students are private and must not be shared. Live Video Conference Meetings (e.g. Collaborate or Zoom) that include audio or visual information from other students must be viewed privately and not shared with others.

  8. Non-Discrimination and Inclusiveness

    We are committed to providing an educational environment free from any discrimination on the basis of race, color, religion, national origin, sex, disability, veteran status, sexual orientation, gender identity, gender expression, age, marital status, pregnancy status, or genetic information. If you feel there has been a violation of the University's policies on this, please contact GMU's Office of Compliance, Diversity, and Ethics (703-993-8730; cde@gmu.edu). Gender identity and pronoun use: If you wish, please share your name and gender pronouns with us and we will attempt use them to address you in class and via email. You can address any professor as "Prof. [LAST NAME]" in email and verbally if you aren't sure of their personal preferences.

  9. Sexual Harassment, Sexual Misconduct, and Interpersonal Violence

    All faculty members are designated "Responsible Employees", and are required to report all disclosures of sexual assault, interpersonal violence, and stalking to Mason’s Title IX Coordinator per university policy 1412. If you wish to speak with someone confidentially, please contact the Student Support and Advocacy Center (703-380-1434) or Counseling and Psychological Services (703-993-2380). You may also seek assistance from Mason’s Title IX Coordinator (703-993-8730; titleix@gmu.edu).

  10. Special Accommodations

    Students who have a right to accommodations due to disabilities or other conditions should discuss this with the instructor as soon as possible. Accommodations will follow the recommendations of the University's Office of Disability Services.

  11. Mason Safe Campus Guide

    We are in unprecedented times. For our collective safety, please follow these guides: Click here.

  12. Tentative Schedule

    WeekDateTopic(s)Text Book Reading ChaptersAssignmentsNotes
    week 101/24-01/30Review: Basics of OOP using Java Java Interlude 1 - 8Project-0 (Prerequsite Skills)
    Sun, Jan 30Project -0 due
    week 201/31-02/06Linked List vs. Array1-3Project-1
    week 302/07 - 02/13Efficency of Algorithms4
    Sun, Feb 13Project-1 due
    week 402/14-02/20Stacks and Queues 5 - 8Project 2
    week 502/21-02/27Review: Recursion ;
    Trees

    9,14
    24,25
    week 602/28-03/06 Binary Search Trees26
    Sun, Mar 06Project 2 due
    week 703/07-03/13 Midterm Exam Project-3
    Sun, Mar 13final resubmission Project-0
    week 803/14 -03/20SPRING BREAK
    week 903/21-03/27Hashing
    22,23
    week 1003/28-04/03 Priority Queues & Heaps 27
    Sun, Apr 03Project - 3 due
    week 11 & 1204/04-04/17Introduction to Graphs29,30Project 4
    week 1304/18-04/24 AVL Trees 28
    week 1404/25-05/01 Red Black Trees 28
    Sun, May 01Project - 4 due
    week 1505/02-05/08 Final Exam Review
    Exam week R, May 12Final Exam 10:30 AM - 1:15 PMSec 001
    T, May 17Final Exam 1:30 - 4:15 PMSec 002
    T, May 17Final Exam 4:30 - 7:15 PMSec 003
    W, May 11Final Exam 1:30 - 4:15 PMSec 004