CSCI241 2025S Syllabus
CSCI241 2025S Syllabus
The best means of reaching us is through private Piazza posts. We ask that you use
this medium primarily for communications. Email is a particularly unreliable means
of reaching us.
Required Materials
• Assuming they don’t require fees, we will use Piazza for class discussion and
questions. Different students often pose similar questions and answering
questions in a public forum benefits more people, including those who might
not have thought to ask the question. You will receive an e-mail invitation to
Piazza; please accept it. Piazza has changed their model to one that asks for
voluntary contributions. This is a function of Piazza and is not under the control
of the instructors. You are not asked by the instructors nor are required by this
course to contribute to Piazza.
• Programming in this course will be done in Python3 using the Anaconda Python
stack. We will provide instructions and assistance for setting up Anaconda for
Windows, Mac OS X, or Linux on your personal machine. You must not use
Python 2.7, which is often the default on personal computers.
• Programming in this course is done using a text editor and the command line.
You may not use any integrated development environment when
writing code in this course. We suggest VSCode, which is available for free.
Many students choose to purchase Sublime. Some use Notepad++ on
Windows. For command line environments, Mac users will employ Terminal;
Windows users will use PowerShell. Both are installed by default. If the editor
you use provide a “run” or “go” button, please don’t use it.
• In the event that virtual sessions become necessary, we will require that you
sign into Zoom (our domain is cwm) and request that you enable video during
class. For privacy, some choose to use virtual backgrounds or hang a sheet or
other cloth behind their seats, both of which are welcome. Please don’t use
animated avatars or video backgrounds during class. Signing in allows us to
maintain a record of attendance and helps secure our meetings, and we can
teach much more effectively if we can see you. Any virtual sessions will be
recorded and posted to Blackboard for your review.
Exam Information
See the course schedule at the end of this document for exam section details.
Switching exam sections requires approval of an Assistant Dean for Undergraduate
Education.
Regular reading assignments from the textbook and academic papers will appear in
Blackboard alongside lecture content. Reading assignments are very important, as
the textbook often explains things from different perspectives. There is material in
the assigned readings that will appear on quizzes and the exam, regardless of
whether that material is covered in class.
We will issue practice problems and/or practice quizzes in class and may issue
additional practice material for completion outside of class periodically to reinforce
the material we cover in class and in the textbook. Homework is not typically collected
or graded, though we may present it in electronic form that provides correctness
feedback.
You are expected to complete all materials, regardless of point values. There is a
very strong correlation between students who rigorously engage with the
practice materials and those who do well overall in the course.
There will be several short paper quizzes. The initial versions will be completed in
class. If you are not satisfied with your performance, you may retake quizzes (with
different problems) in several evening sessions that will be available throughout the
semester. Quizzes can only be completed during the in-class or retake sessions. We
do not permit individual retakes or make-up sessions.
Each person will receive an initial allocation of two slip days to adjust project
deadlines without penalty. Each applied slip day extends the deadline for a project
by exactly 24 hours and cannot be divided into smaller extensions. Budget slip days
carefully, as they become valuable at the end of the semester. Unused slip days have
no value. If you submit a project late without using slip days, you will be penalized
25% of the project's total value per 24-hour period or part thereof beginning one
minute past the posted deadline. Finally, you may combine slip days and late
penalties if you wish. Late penalties only apply when you do not apply slip days.
No other student should see the code that you create for this class.
Some programming project submissions also include brief prose sections meant to
illustrate both your theoretical and your practical understanding of the structures we
create and apply. We will provide questions or other prompts to stimulate your
responses, which will constitute a significant portion of your project scores. The
Writing Resources Center, located on the first floor of Swem Library, is a free service
provided to W&M students. Trained consultants offer individual assistance with
writing, presentation, and other communication assignments across disciplines and
at any stage, from generating ideas to polishing a final product. To make an
appointment, visit the WRC webpage www.wm.edu/wrc.
Submission expectations are clearly stated at the end of each assignment. Generally,
we only accept .pdf and .py files that are correctly named. Any deviation from
these specifications, including file names or formats, will void your
submission and you will not receive credit.
We allow you to submit an unlimited number of times, but we only download and
evaluate your most recent submission. Be certain that submissions are
complete. We will not collate files from multiple submissions, so partial
submissions cannot be evaluated.
You are expected to be present and in good hygienic condition at every class meeting.
We may take roll, including electronically. Please have your ID with you at all class
meetings. Missing more than two meetings is cause for concern and may result in a
grade penalty.
It is the policy of William & Mary to accommodate students with disabilities and
qualifying diagnosed conditions in accordance with federal and state laws. Any
student who feels s/he may need an accommodation based on the impact of a
learning, psychiatric, physical, or chronic health diagnosis should contact us privately
to discuss your specific needs. Students will also need to contact Student Accessibility
Services staff at 757-221-2512 or at [email protected] to determine if accommodations
are warranted and to obtain an official letter of accommodation. For more
information, please see www.wm.edu/sas. You have our word that such matters will
be handled professionally and with sensitivity. We associate no stigma with any form
of disability.
Please keep in mind that you are bound by all aspects of the College's Honor Code,
to which you have pledged your support. Academic dishonesty does not serve your
education well, and we will bring instances of it to the attention of the Honor Council.
We mean this. If you cheat in this class, we will pursue disciplinary action against
you, which may include suspension or permanent dismissal from the College.
We reserve the right to employ automated tools to check for plagiarism in both
programming and written work.
Grading Policies
In most cases, quizzes are scored in Gradescope. If you believe we have assigned a
score incorrectly, you may request a regrade from within Gradescope. Be honorable
in your requests; do not ask for credit that you did not earn.
Projects are evaluated using automated functionality tests and manual human
evaluation with written (electronic) feedback. We employ blind grading; the graders
do not know whose work they are evaluating. To enable blind grading, it is important
that you not include any personally identifying marks anywhere in your submission
except where specified.
Quizzes 40%
Programming Projects 40%
Final Exam 20%
Letter grades are available in Blackboard throughout the course and are updated as
items are returned.
We do not apply any curves until the end of the semester. We reserve the right
to consider class participation in borderline grade decisions. Any attendance penalties
are applied after your grade is computed.
Mental and Physical Well-Being
William & Mary recognizes that students juggle different responsibilities and can
face challenges that make learning difficult. There are many resources available at
W&M to help students navigate emotional/psychological, physical/medical,
material/accessibility concerns, including:
• The W&M Counseling Center at (757) 221-3620. Services are free and
confidential.
• The W&M Health Center at (757) 221-4386.
• For additional support or resources & questions, contact the Dean of
Students at 757-221-2510.
• For a list of other resources available to students, see:
Covered Topics
The purpose of this course is to introduce you to abstract data representation. You
will learn how to represent data for various programming problems, and how to
analyze the performance impacts of your data representation decisions. Though
algorithms are not the primary focus of this course, we will introduce some well-
known examples in order to illustrate the merits and performance of various data
structures. The general schedule for the course follows.
Read Practice Submit projects
Course
Content Before Before Progress before 2359
Week
Class Class Quizzes in class
Introductions
0 and Course
Overview
1.1 Python
Variables and
1 Arrays and Ch. 1
Project 1
Overview
1.2 Circular Ckpt.
1 5.1, 5.4, 5.5 P1 Insertion sort complete
Arrays 1.1
1.3
Ckpt.
2 Multidimensional 5.6 P1 Selection sort complete
1.2
Arrays
1.4 Performance Ckpt.
2 3.1, 3.2, 3.3 P1 Writeup begun
Analysis 1.3
Feb. 9 PROJECT DEADLINE Project 1
Ckpt.
3 1.5 Linked Lists 7.1, 7.2, 7.3 Arrays Quiz
1.4
3 1.6 Linked Lists
Project 2
Iteration,
P2 append_element, __str__
4 Exceptions, and
complete with testing
Testing
Overview
P2 insert_element_at,
Ckpt. get_element_at,
4 2.1 Stacks 6.1, 7.1.1
1.6 remove_element_at complete
with testing
P2 __iter__, __next__
Ckpt. complete with testing;
5 2.3 Recursion Ch. 4 Linked Lists Quiz
2.1 P2 Applications complete; all
bugs fixed
6.2, 6.3,
2.2 Queues and Ckpt.
5 7.1.2, 7.2.2,
Deques 2.3
7.3.2
Mar. 2 PROJECT DEADLINE Project 2
P3 Array_Deque including
Project 3 Ckpt.
6 __grow complete with test Stacks Quiz
Overview 2.2
cases.
P3 Linked_List errors fixed,
2.4 Queue
6 Linked_List_Deque complete
Statistics
with test cases.
Ckpt. P3 Stack, Queue complete
7 3.1 Binary Trees Ch. 8 Recursion Quiz
2.4 with test cases.
3.2 Binary Ckpt.
7 Ch. 8, 11.1
Search Trees 3.1
Project 4 Ckpt.
8 P3 Applications complete.
Overview 3.2
9.1, 9.2,
8 3.3 Heaps
9.3, 9.4
Mar.
PROJECT DEADLINE Project 3
30
P4 insert_element and Expression Trees and
3.4 Huffman Academic Ckpt.
9 in_order complete with Binary Search Trees
Trees Paper 3.3
in_order test cases Quiz
3.5 Balanced 11.3,
Ckpt. P4 pre_order, post_order
9 Binary Search Academic
3.4 complete with test cases
Trees Paper
3.5 Balanced P4 remove_element,
Ckpt.
10 Binary Search get_height complete with
3.5
Trees get_height test cases
Catch
10 P4 remove_element test cases
up/Review
Apr.
PROJECT DEADLINE Project 4 Milestone
13
Catch P4 __balance single rotations
11
up/Review complete with test cases
P4 __balance double rotations
11 4.1 Hash Tables 10.2
complete with test cases
Ckpt. P4 to_list, applications Balanced Binary
12 4.2 B+Trees 15.3
4.1 complete Search Trees Quiz
Catch Ckpt.
12
up/Review 4.2
Apr.
PROJECT DEADLINE Project 4 Final
27
Data Structures
13
in the Wild
Final Exam
13
Review Session
May 5 Section 03 FINAL EXAM 0900—1200
May 5 Section 01 FINAL EXAM 1400—1700
May 6 Section 04 FINAL EXAM 1400—1700
May
Section 02 FINAL EXAM 1400—1700
12