{"id":5528,"date":"2025-08-19T15:24:49","date_gmt":"2025-08-19T15:24:49","guid":{"rendered":"https:\/\/danielschlegel.org\/wp\/?page_id=5528"},"modified":"2025-09-29T19:17:17","modified_gmt":"2025-09-29T19:17:17","slug":"csc241-fall-2025","status":"publish","type":"page","link":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/","title":{"rendered":"CSC241 &#8211; Fall 2025"},"content":{"rendered":"\n<h1 class=\"wp-block-heading has-text-align-center\">Abstract Data Types and Programming Methodologies<\/h1>\n\n\n\n<p class=\"has-text-align-center\"><strong>Quick Links: <a class=\"ek-link\" href=\"#grading\">Grading<\/a> | <a class=\"ek-link\" href=\"#schedule\">Daily Schedule<\/a> | <a class=\"ek-link\" href=\"http:\/\/www.oswego.edu\/mylearning\">Brightspace<\/a> | <\/strong><a href=\"https:\/\/github.com\/digitalneoplasm\/csc241-fall-2025\"><strong>Class Code (GitHub)<\/strong><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Instructor:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">Prof. Daniel R. Schlegel, 464 Shineman Center, <a href=\"mailto:daniel.schlegel@oswego.edu\">daniel.schlegel@oswego.edu<\/a><br>Office\/Lab hours: Monday\/Wednesday 2-4PM. Email any time with questions! <br>Section 810: MWF 9:10-10:05, Shineman 444<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Course Description:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">A developing computer scientist must understand and explain how their proposed data structures and algorithmic solutions compare to other solutions in terms of complexity, run time, and resource requirements. This course introduces students to traditional techniques used to describe such solutions. In addition, we will look at classic data structures and their applications in order to expand the depth and breadth of a student\u2019s knowledge.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">This course is intended to challenge the student to design and implement software based on specifications prepared by the instructor. Throughout the semester, each student will need to identify appropriate design elements and justify their selections.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Course Objectives:<\/span><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>To employ object-oriented design techniques to model problems and solutions.<\/li>\n\n\n\n<li>To employ decomposition techniques to break a program into smaller pieces<\/li>\n\n\n\n<li>To analyze algorithmic solutions using asymptotic notation<\/li>\n\n\n\n<li>To demonstrate effective use of abstract data types (ADTs), e.g., stacks, queues, lists, hash tables, trees, etc., in their designs<\/li>\n\n\n\n<li>To demonstrate correct use of recursive algorithms and data structures<\/li>\n\n\n\n<li>To articulate the advantages and disadvantages of competing algorithmic solutions<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Textbooks:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\"><span style=\"text-decoration: underline;\">Recommended:<\/span> Koffman, E.B. and Wolfgang, P.A.T., <em>Data Structures: Abstraction and Design Using Java, 3e<\/em>. Wiley, 2015.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Useful Resources:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\"><a href=\"https:\/\/chortle.ccsu.edu\/javaLessons\/index.html\">Introduction to Computer Science Using Java<\/a><br><a class=\"ek-link\" href=\"https:\/\/en.wikibooks.org\/wiki\/Data_Structures\">Data Structures\u00a0@ Wikibooks<\/a><br><a class=\"ek-link\" href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/Algorithms.html\">Data Structure Visualizations<\/a><br><a class=\"ek-link\" href=\"http:\/\/docs.oracle.com\/javase\/tutorial\/java\/index.html\">Java Tutorials\u00a0@ Oracle<br><\/a><a href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/21\/\">JDK 21 Documentation @ Oracle<\/a><a href=\"https:\/\/www.linkedin.com\/learning\/search?keywords=java\"><br>Java on LinkedIn Learning<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Attendance and Modality:<\/span><\/h4>\n\n\n\n<p>As per college policy, attendance in all sessions is obligatory. If you cannot attend a class meeting due to religious, athletic, health related circumstance, or circumstance of particular hardship, please notify me in advance via email. Please be ready to present proof, if necessary.&nbsp;<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">We meet in person three times a week. There will be no recording, and I won\u2019t work through the content with you in a one-on-one fashion during office hours or an appointment \u2013 basically, if you miss class then you missed out on what you signed up for when registering for the class and you will have to work through the content independently. Of course, I will answer questions about the content, if you have any, and there are exceptions for excused absences due to illness etc.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\"><span style=\"text-decoration: underline;\" class=\"ek-underline\">\u201cGo Remote\u201d Days Due to Weather<\/span>: In short, we value our snow days and will do what is reasonable to make sure that no commuter is in danger, while also maintaining academic integrity. In long, the concept of a &#8220;Go Remote&#8221; day due to weather is crap. We deserve our snow days. Yes, snow days are a serious inconvenience and create a content crunch, especially if classes are cancelled indiscriminately. But, snow days are also a weather-gifted day of respite and nearly everyone appreciates an occasional day of rest. We may choose to skip certain topics during the semester so that we can afford to cancel class on a &#8220;Go Remote&#8221; day. If it turns out that many classes are cancelled due to weather, then we will have to assign independent reading \/ activities to cover some of the content.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Classroom Etiquette:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">A positive learning environment relies upon creating an atmosphere where all students feel welcome. Discussion is meant to allow us to hear a variety of viewpoints. This can only happen if we respect each other and our differences. Hostility and disrespectful behavior is not acceptable.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">Cell phones and headphones should&nbsp;not be out or&nbsp;used during lecture, and laptops should only be used for taking notes. If use of any electronics becomes distracting to other students I reserve the right to discontinue the allowance of their use.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Asignments:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">All assignments will be completed alone, but working together <strong>without writing or sharing code<\/strong> to come up with general solutions is encouraged. The assignments are difficult, and I recommend starting work on them early, avoiding any tendency toward <a href=\"https:\/\/www.youtube.com\/watch?v=mhFQA998WiA&amp;feature=youtu.be\">procrastination<\/a>. You should plan on spending <em>at least<\/em> 10 hours per week on course work outside of class.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">AI Policy:<\/span><\/h4>\n\n\n\n<p>No AI or large language models should be used during CSC241. These tools are great and you will be using them in later courses, but foundational skills must be learned through reading, experimentation, trial and error, struggle, and hard work. The skills you learn in this course will help you decide if the answers given by AI models are really helpful or not in your later work, so don&#8217;t deprive yourself of that! <\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"grading\"><span style=\"color: #008000;\">Grading:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">Assignments will be submitted via Brightspace and graded according to the <a href=\"http:\/\/danielschlegel.org\/wp\/teaching\/csc241-assignment-grading-criteria\/\">grading criteria<\/a>. <strong>Code which does not compile or immediately crashes will receive no credit.<\/strong> There may be in-class presentations and\/or live demos of your work at various points in the semester.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">Assignments may be submitted up to five calendar days late with a 5% per day penalty. After five days no credit will be assigned. Outside of this late policy, no late assignments will be accepted. Assignments submitted late will be graded later than those submitted on time.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">The total points received on assignments&nbsp;will then summed and divided by the points possible and scaled as appropriate according to the percentages given below.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">\n<table id=\"tablepress-68\" class=\"tablepress tablepress-id-68\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Assessment<\/th><th class=\"column-2\">Points<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Assignments (7)<\/td><td class=\"column-2\">500 <\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Midterm Exam<\/td><td class=\"column-2\">200<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Final Exam<\/td><td class=\"column-2\">300<\/td>\n<\/tr>\n<\/tbody>\n<tfoot>\n<tr class=\"row-5\">\n\t<th class=\"column-1\"><b>Total<\/b><\/th><th class=\"column-2\"><b>1000<\/b><\/th>\n<\/tr>\n<\/tfoot>\n<\/table>\n<!-- #tablepress-68 from cache -->\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">You may not receive a grade more than one letter grade above min(exams, assignments). That is, if your exam average is D, the best grade you can achieve in the course is a C. Likewise if you receive an E average on your assignments, the highest grade you can expect is a D.<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">The default grading for the course will be along the university&#8217;s standard grading curve:<\/p>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">\n<table id=\"tablepress-1\" class=\"tablepress tablepress-id-1\">\n<tbody>\n<tr class=\"row-1\">\n\t<td class=\"column-1\"><strong>A<\/strong>: 93-100<\/td><td class=\"column-2\"><strong>C+<\/strong>: 77-79<\/td>\n<\/tr>\n<tr class=\"row-2\">\n\t<td class=\"column-1\"><strong>A-<\/strong>: 90-92<\/td><td class=\"column-2\"><strong>C<\/strong>: 73-76<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\"><strong>B+<\/strong>: 87-89<\/td><td class=\"column-2\"><strong>C-<\/strong>: 70-72<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\"><strong>B<\/strong>: 83-86<\/td><td class=\"column-2\"><strong>D+<\/strong>: 67-69<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\"><strong>B-<\/strong>: 80-82<\/td><td class=\"column-2\"><strong>D<\/strong>: 60-66<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">\u00a0<\/td><td class=\"column-2\"><strong>E<\/strong>: 0-59<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-1 from cache -->\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">A more generous curve may be used, but should not be expected.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Schedule\/Outline:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">During the semester we aim to cover the following topics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Object Orientation<\/li>\n\n\n\n<li>Problem-solving Techniques<\/li>\n\n\n\n<li>Recursion<\/li>\n\n\n\n<li>Sorting Algorithms<\/li>\n\n\n\n<li>Basic Search Algorithms<\/li>\n\n\n\n<li>Lambdas and Streams in Java<\/li>\n\n\n\n<li>Asymptotic Analysis<\/li>\n\n\n\n<li>Data Structures<\/li>\n<\/ul>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\"><strong>This syllabus and the course schedule are subject to change by the instructor.<\/strong> All changes and related justifications will be announced in class, and updates will be reflected in this web version.<\/p>\n\n\n\n<p id=\"schedule\" style=\"--ek-indent:20px\" class=\"has-ek-indent\">Selected lecture materials which the instructor deems too cumbersome for note taking will be maintained on <a class=\"ek-link\" href=\"http:\/\/www.oswego.edu\/mylearning\">Brightspace<\/a>, but most lecture materials will require fastidious note taking on the part of the student.<\/p>\n\n\n\n<table id=\"tablepress-80\" class=\"tablepress tablepress-id-80 tbody-has-connected-cells\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Week<\/th><th class=\"column-2\">Day<\/th><th class=\"column-3\">Date<\/th><th class=\"column-4\">Topic<\/th><th class=\"column-5\">Assignment\/Assessment<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td rowspan=\"3\" class=\"column-1\">1<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">8\/25<\/td><td class=\"column-4\"><i>First Day of Class<\/i><br \/>\nSyllabus &amp; Overview<br \/>\n<a href=\"https:\/\/danielschlegel.org\/files\/CSC241_Fl25\/csc241project.pdf\">Project Description<\/a><\/td><td class=\"column-5\"><a href=\"http:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-1\/\">Assignment 1<\/a> due 9\/2, 11:59PM on Brightspace<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">8\/27<\/td><td class=\"column-4\">Object Orientation'<br \/>\nShort Individual Exercise on Method Writing<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">8\/29<\/td><td class=\"column-4\">Class Design<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td rowspan=\"3\" class=\"column-1\">2<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">9\/1<\/td><td class=\"column-4\"><i>No Class - Labor Day<\/i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">9\/3<\/td><td class=\"column-4\">Interfaces<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">9\/5<\/td><td class=\"column-4\">Interfaces and Inheritance<\/td><td class=\"column-5\"><a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-2\/\">Assignment 2<\/a> due 9\/19 on Brightspace.<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td rowspan=\"3\" class=\"column-1\">3<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">9\/8<\/td><td class=\"column-4\">Inheritance<br \/>\nEnums and Records<br \/>\nNote: OH only 3-4 today.<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">9\/10<\/td><td class=\"column-4\">Abstract Classes<br \/>\nAssignment Q&amp;A<br \/>\nEvent-Driven Programming Introduced<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">9\/12<\/td><td class=\"column-4\">SAX Parsing<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td rowspan=\"3\" class=\"column-1\">4<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">9\/15<\/td><td class=\"column-4\">SAX Parsing GraphML Example, contd.<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">9\/17<\/td><td class=\"column-4\">Data Structures Introduction, Expandable Array Planning<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-13\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">9\/19<\/td><td class=\"column-4\">Starting to implement Expandable Array<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-14\">\n\t<td rowspan=\"3\" class=\"column-1\">5<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">9\/22<\/td><td class=\"column-4\">Continuing to build ExpandableArray<\/td><td class=\"column-5\"><a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-3\/\">Assignment 3<\/a> due 10\/3 on Brightspace<\/td>\n<\/tr>\n<tr class=\"row-15\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">9\/24<\/td><td class=\"column-4\">Continuing to build ExpandableArray<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-16\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">9\/26<\/td><td class=\"column-4\"><a href=\"https:\/\/github.com\/openjdk\/jdk8\/blob\/master\/jdk\/src\/share\/classes\/java\/util\/ArrayList.java\">Java ArrayList Implementation<\/a><br \/>\nQ&amp;A, Work Day<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-17\">\n\t<td rowspan=\"3\" class=\"column-1\">6<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">9\/29<\/td><td class=\"column-4\">Asymptotic Analysis Introduced<br \/>\n<i>Last day of new material for midterm exam<\/i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-18\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">10\/1<\/td><td class=\"column-4\">More Time Complexity, Some Space Complexity<br \/>\n<a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/midterm-study-guide\/\">Midterm Study Guide<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-19\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">10\/3<\/td><td class=\"column-4\">Linked List Introduction<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-20\">\n\t<td rowspan=\"3\" class=\"column-1\">7<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">10\/6<\/td><td class=\"column-4\">Linked List Implementation Started<br \/>\nStatic inner classes<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-21\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">10\/8<\/td><td class=\"column-4\"><b>Midterm Exam<\/b><\/td><td class=\"column-5\"><b>Midterm Exam<\/b><br \/>\n<a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-4\/\">Assignment 4<\/a> due 10\/24 on Brightspace<\/td>\n<\/tr>\n<tr class=\"row-22\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">10\/10<\/td><td class=\"column-4\"><i>No Class - Fall Break<i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-23\">\n\t<td rowspan=\"3\" class=\"column-1\">8<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">10\/13<\/td><td class=\"column-4\">Linked List Implementation Exercises<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-24\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">10\/15<\/td><td class=\"column-4\"><a href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/java\/generics\/types.html\">Generic Types<\/a><br \/>\nLL Remove<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-25\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">10\/17<\/td><td class=\"column-4\">Work Day in Class<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-26\">\n\t<td rowspan=\"3\" class=\"column-1\">9<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">10\/20<\/td><td class=\"column-4\">Let's think about sorting...<br \/>\n<a href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/ComparisonSort.html\">Visualization<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-27\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">10\/22<\/td><td class=\"column-4\">More n^2 sorting<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-28\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">10\/24<\/td><td class=\"column-4\">Selection Sort<br \/>\nBenchmarking<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-29\">\n\t<td rowspan=\"3\" class=\"column-1\">10<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">10\/27<\/td><td class=\"column-4\">Writing Unit Tests<br \/>\n<a href=\"https:\/\/docs.junit.org\/current\/user-guide\/\">JUnit User Guide<\/a><\/td><td class=\"column-5\"><a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-5\/\">Assignment 5<\/a> due 11\/7 on Brightspace<\/td>\n<\/tr>\n<tr class=\"row-30\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">10\/29<\/td><td class=\"column-4\">Lambdas &amp; Streams<br \/>\n<a href=\"https:\/\/dev.java\/learn\/lambdas\/\">Lambdas Tutorial<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-31\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">10\/31<\/td><td class=\"column-4\">Design Exercise: Adding Features to Existing Software<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-32\">\n\t<td rowspan=\"3\" class=\"column-1\">11<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">11\/3<\/td><td class=\"column-4\">Stacks, Queues, Sets, and Maps!<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-33\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">11\/5<\/td><td class=\"column-4\">Data Structure Comparison, Benchmarks<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-34\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">11\/7<\/td><td class=\"column-4\">Binary Search on Lists<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-35\">\n\t<td rowspan=\"3\" class=\"column-1\">12<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">11\/10<\/td><td class=\"column-4\">Trees<\/td><td class=\"column-5\"><a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-6\/\">Assignment 6<\/a> due 11\/21 on Brightspace<\/td>\n<\/tr>\n<tr class=\"row-36\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">11\/12<\/td><td class=\"column-4\">BST Implementation<br \/>\n<a href=\"https:\/\/www.cs.usfca.edu\/~galles\/visualization\/BST.html\">BST Visualization<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-37\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">11\/14<\/td><td class=\"column-4\">BST Remove, Practice<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-38\">\n\t<td rowspan=\"3\" class=\"column-1\">13<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">11\/17<\/td><td class=\"column-4\">Binary Tree Traversals<br \/>\nSorting with a BST<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-39\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">11\/19<\/td><td class=\"column-4\">MergeSort<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-40\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">11\/21<\/td><td class=\"column-4\">MergeSort Implementation<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-41\">\n\t<td rowspan=\"3\" class=\"column-1\">14<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">11\/24<\/td><td class=\"column-4\"><i>No Class - Thanksgiving Break<\/i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-42\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">11\/26<\/td><td class=\"column-4\"><i>No Class - Thanksgiving Break<\/i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-43\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">11\/28<\/td><td class=\"column-4\"><i>No Class - Thanksgiving Break<\/i><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-44\">\n\t<td rowspan=\"3\" class=\"column-1\">15<\/td><td class=\"column-2\">Monday<\/td><td class=\"column-3\">12\/1<\/td><td class=\"column-4\">Let's have some fun: <a href=\"https:\/\/adventofcode.com\/\">Advent of Code<\/a><\/td><td class=\"column-5\"><a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/assignment-7\/\">Assignment 7<\/a> due Thursday at 5PM on Brightspace!<\/td>\n<\/tr>\n<tr class=\"row-45\">\n\t<td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">12\/3<\/td><td class=\"column-4\">QuickSort<\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-46\">\n\t<td class=\"column-2\">Friday<\/td><td class=\"column-3\">12\/5<\/td><td class=\"column-4\">Let's play each other's games! <br \/>\n<a href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/final-exam-study-guide\/\">Final Exam Study Guide<\/a><\/td><td class=\"column-5\"><\/td>\n<\/tr>\n<tr class=\"row-47\">\n\t<td class=\"column-1\">Finals Week<\/td><td class=\"column-2\">Wednesday<\/td><td class=\"column-3\">12\/10<\/td><td class=\"column-4\"><b>Final Exam 8-10am<\/b><\/td><td class=\"column-5\"><b>Final Exam 8-10am<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-80 from cache -->\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Academic Integrity:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">SUNY Oswego is committed to Intellectual Integrity. Any form of intellectual dishonesty is a serious concern and therefore prohibited. You can find <a href=\"https:\/\/www.oswego.edu\/intellectual-integrity\/home\" target=\"_blank\" rel=\"noreferrer noopener\">the full policy online<\/a>. While it is acceptable to discuss general approaches with your fellow students, the work you turn in must be your own. You may not turn in code found on the internet or generated using AI models. If you have any problems doing the assignments, consult the instructor. See this page on <a href=\"http:\/\/danielschlegel.org\/wp\/teaching\/plagiarism\/\">plagiarism<\/a> for an explanation of what we consider cheating. <\/p>\n\n\n\n<p><strong>All parties involved in <em>minor<\/em> academic integrity violations will receive a score of zero for that quiz\/exam\/assignment, and all violations will be reported. Minor violations are those which could feasibly happen accidentally or due to a little carelessness. Major violations will result in failing the course. Repeat violations, including across semesters, will result in failing the course.<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\"><strong>SUNY Oswego Basic Needs Syllabus Statement<\/strong>:<\/span><\/h4>\n\n\n\n<p>SUNY Oswego is dedicated to recognizing the basic needs of every individual on campus by connecting them to resources and services that assist them in meeting their basic needs. If you are in need of <a href=\"https:\/\/ww1.oswego.edu\/dean-students\/shop\" target=\"_blank\" rel=\"noreferrer noopener\">food, clothing<\/a>, academic supplies, emergency housing, addiction services or are unsure of what resources are available to meet your basic needs, please complete the following form to connect to the Office of the Dean of Students: <a href=\"https:\/\/cm.maxient.com\/reportingform.php?SUNYOswego&amp;layout_id=200\" target=\"_blank\" rel=\"noreferrer noopener\">Basic Needs Self-Disclosure Form<\/a>.&nbsp;<\/p>\n\n\n\n<p>For information on mental health services visit the <a href=\"https:\/\/ww1.oswego.edu\/counseling-services\/\" target=\"_blank\" rel=\"noreferrer noopener\">Counseling Services website<\/a> and for information on health services visit the <a href=\"https:\/\/ww1.oswego.edu\/health-services\/\" target=\"_blank\" rel=\"noreferrer noopener\">Health Services website<\/a>.<\/p>\n\n\n\n<p>If you have any questions or would like to schedule a meeting with one of the Assistant Dean of Students, email <a href=\"mailto:deanofstudents@oswego.edu\" target=\"_blank\" rel=\"noreferrer noopener\">deanofstudents@oswego.edu<\/a> or call 315-312-5483. Visit the Office of the Dean of Students website <a href=\"https:\/\/ww1.oswego.edu\/dean-students\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/ww1.oswego.edu\/dean-students\/<\/a> for more information.<\/p>\n\n\n\n<p>For other inquiries, visit the Oz Concern Navigator at <a href=\"https:\/\/oswego.concerncenter.com\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/oswego.concerncenter.com<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Accessibility:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">If you have a disabling condition which may interfere with your ability to successfully complete this course, please contact Accessibility Resources located at 155 Marano Campus Center, phone 315.312.3358, <a href=\"mailto:access@oswego.edu\">access@oswego.edu<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span style=\"color: #008000;\">Clery Act\/Title IX Reporting:<\/span><\/h4>\n\n\n\n<p style=\"--ek-indent:20px\" class=\"has-ek-indent\">SUNY Oswego is committed to enhancing the safety and security of the campus for all its members. In support of this, faculty may be required to report their knowledge of certain crimes or harassment. Reportable incidents include harassment on the basis of sex or gender prohibited by Title IX and crimes covered by the Clery Act. For more information about Title IX protections, go to<a href=\"https:\/\/www.oswego.edu\/title-ix\/\" target=\"_blank\" rel=\"noreferrer noopener\"> https:\/\/www.oswego.edu\/title-ix\/<\/a> or contact the Title IX Coordinator, 405 Culkin Hall, 315-312-5604, <a>titleix@oswego.edu<\/a>. For more information about the Clery Act and campus reporting, go to the University Police annual report: <a href=\"https:\/\/www.oswego.edu\/police\/annual-report\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.oswego.edu\/police\/annual-report<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"lead\">Abstract Data Types and Programming Methodologies Quick Links: Grading | Daily Schedule | Brightspace | Class Code (GitHub) Instructor: Prof. Daniel R. Schlegel, 464 Shineman Center, daniel.schlegel@oswego.eduOffice\/Lab hours: Monday\/Wednesday 2-4PM. Email any time with questions! Section 810: MWF 9:10-10:05, Shineman 444 Course Description: A developing computer scientist must understand and explain how their proposed data structures and algorithmic solutions compare&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"btn btn-warning\" href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":11,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":6,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"class_list":["post-5528","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CSC241 - Fall 2025 - Daniel R. Schlegel<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CSC241 - Fall 2025 - Daniel R. Schlegel\" \/>\n<meta property=\"og:description\" content=\"Abstract Data Types and Programming Methodologies Quick Links: Grading | Daily Schedule | Brightspace | Class Code (GitHub) Instructor: Prof. Daniel R. Schlegel, 464 Shineman Center, daniel.schlegel@oswego.eduOffice\/Lab hours: Monday\/Wednesday 2-4PM. Email any time with questions! Section 810: MWF 9:10-10:05, Shineman 444 Course Description: A developing computer scientist must understand and explain how their proposed data structures and algorithmic solutions compare&hellip;Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/\" \/>\n<meta property=\"og:site_name\" content=\"Daniel R. Schlegel\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-29T19:17:17+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/csc241-fall-2025\\\/\",\"url\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/csc241-fall-2025\\\/\",\"name\":\"CSC241 - Fall 2025 - Daniel R. Schlegel\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/#website\"},\"datePublished\":\"2025-08-19T15:24:49+00:00\",\"dateModified\":\"2025-09-29T19:17:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/csc241-fall-2025\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/csc241-fall-2025\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/csc241-fall-2025\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Teaching\",\"item\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/teaching\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CSC241 &#8211; Fall 2025\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/#website\",\"url\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/\",\"name\":\"Daniel R. Schlegel\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/danielschlegel.org\\\/wp\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CSC241 - Fall 2025 - Daniel R. Schlegel","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/","og_locale":"en_US","og_type":"article","og_title":"CSC241 - Fall 2025 - Daniel R. Schlegel","og_description":"Abstract Data Types and Programming Methodologies Quick Links: Grading | Daily Schedule | Brightspace | Class Code (GitHub) Instructor: Prof. Daniel R. Schlegel, 464 Shineman Center, daniel.schlegel@oswego.eduOffice\/Lab hours: Monday\/Wednesday 2-4PM. Email any time with questions! Section 810: MWF 9:10-10:05, Shineman 444 Course Description: A developing computer scientist must understand and explain how their proposed data structures and algorithmic solutions compare&hellip;Read more","og_url":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/","og_site_name":"Daniel R. Schlegel","article_modified_time":"2025-09-29T19:17:17+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/","url":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/","name":"CSC241 - Fall 2025 - Daniel R. Schlegel","isPartOf":{"@id":"https:\/\/danielschlegel.org\/wp\/#website"},"datePublished":"2025-08-19T15:24:49+00:00","dateModified":"2025-09-29T19:17:17+00:00","breadcrumb":{"@id":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/danielschlegel.org\/wp\/teaching\/csc241-fall-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/danielschlegel.org\/wp\/"},{"@type":"ListItem","position":2,"name":"Teaching","item":"https:\/\/danielschlegel.org\/wp\/teaching\/"},{"@type":"ListItem","position":3,"name":"CSC241 &#8211; Fall 2025"}]},{"@type":"WebSite","@id":"https:\/\/danielschlegel.org\/wp\/#website","url":"https:\/\/danielschlegel.org\/wp\/","name":"Daniel R. Schlegel","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/danielschlegel.org\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P83Tb6-1ra","_links":{"self":[{"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/pages\/5528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/comments?post=5528"}],"version-history":[{"count":16,"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/pages\/5528\/revisions"}],"predecessor-version":[{"id":5674,"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/pages\/5528\/revisions\/5674"}],"up":[{"embeddable":true,"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/pages\/11"}],"wp:attachment":[{"href":"https:\/\/danielschlegel.org\/wp\/wp-json\/wp\/v2\/media?parent=5528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}