From 949f197a0a24bd3f856ac28720a3baca8d9c96b9 Mon Sep 17 00:00:00 2001 From: Jidong Xiao Date: Mon, 28 Aug 2023 22:41:04 -0400 Subject: [PATCH] remove php files --- php/academic_integrity.php | 297 ------- php/advice_F11.php | 230 ------ php/advice_S14.php | 293 ------- php/advice_TAs.php | 128 --- php/calendar_data.php | 1069 -------------------------- php/course_calendar.php | 249 ------ php/crash_course_cpp_syntax.php | 74 -- php/development_environment.php | 151 ---- php/editors_ides.php | 192 ----- php/getting_help.php | 154 ---- php/global_colors.php | 6 - php/good_programming.php | 188 ----- php/grading.php | 171 ---- php/homework_policies.php | 226 ------ php/index.php | 172 ----- php/installation_test.php | 298 ------- php/lecture_polls.php | 89 --- php/memory_debugging.php | 583 -------------- php/programming_information.php | 363 --------- php/references.php | 139 ---- php/schedule.php | 360 --------- php/schedule_format.php | 105 --- php/syllabus.php | 192 ----- php/template_after.php | 17 - php/template_before.php | 678 ---------------- php/template_before_crash_course.php | 676 ---------------- php/wsl.php | 390 ---------- 27 files changed, 7490 deletions(-) delete mode 100755 php/academic_integrity.php delete mode 100755 php/advice_F11.php delete mode 100755 php/advice_S14.php delete mode 100755 php/advice_TAs.php delete mode 100755 php/calendar_data.php delete mode 100755 php/course_calendar.php delete mode 100755 php/crash_course_cpp_syntax.php delete mode 100755 php/development_environment.php delete mode 100755 php/editors_ides.php delete mode 100755 php/getting_help.php delete mode 100755 php/global_colors.php delete mode 100755 php/good_programming.php delete mode 100755 php/grading.php delete mode 100755 php/homework_policies.php delete mode 100755 php/index.php delete mode 100755 php/installation_test.php delete mode 100755 php/lecture_polls.php delete mode 100755 php/memory_debugging.php delete mode 100755 php/programming_information.php delete mode 100755 php/references.php delete mode 100755 php/schedule.php delete mode 100755 php/schedule_format.php delete mode 100755 php/syllabus.php delete mode 100755 php/template_after.php delete mode 100755 php/template_before.php delete mode 100755 php/template_before_crash_course.php delete mode 100755 php/wsl.php diff --git a/php/academic_integrity.php b/php/academic_integrity.php deleted file mode 100755 index e390b3e..0000000 --- a/php/academic_integrity.php +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - -

- -Important: Please read the following statement thoroughly. -
-If you -have any questions, contact the instructor or the TAs immediately. -
-

- -

- - Complete the short online quiz about the - -Syllabus and Collaboration Policy'; - } else { - print 'Syllabus and Collaboration Policy'; - } -?> -
before starting the first homework. -
-

- - -

Collaboration Policy & Academic Integrity

- -

Lecture Participation Polls

- -

-Responses to lecture participation polls will be used to earn incentives -for the Data Structures course. Discussion of collaborative lecture participation polls -with those seated around you is encouraged. -However, if we find anyone submitting answers for or using the account of -another individual, we will zero the lecture participation points of all involved students -and report the incident to the Dean of Students. -

- - -

Academic Integrity for Tests and Final Exam

- -

-The tests and final exam for this course will be completed -individually. Copying, communicating, or using disallowed materials -during a test is cheating, of course. Students caught cheating on a -test will receive an F in the course and will be reported to the Dean -of Students for further disciplinary action. -

- -

Collaboration Policy for Programming Labs

- -

-Collaboration is encouraged during the weekly programming labs. -Students are allowed to talk through and assist each other with these -programming exercises. Students may ask for help from each other, the -graduate lab TA, and undergraduate programming mentors. But each -student must write up and debug their own lab solutions on their own -laptop and be prepared to individually present and discuss this work -with the TA to receive credit for each checkpoint. -

- -

-As a general guideline, students may look over each other's shoulders -at their labmate's laptop screen during lab — this is the best -way to learn about IDEs, code development strategies, testing, and -debugging. However, looking should not lead to line-by-line copying. -Furthermore, each student should retain control of their own keyboard. -While being assisted by a classmate or a TA, the student should remain -fully engaged on problem solving and ask plenty of questions. -Finally, other than the specific files provided by the instructor, -electronic files or file excerpts should not be shared or copied (by -email, text, Dropbox, GitHub, or any other means). -

- - -

Homework Collaboration Policy

- -

-Academic integrity is a complicated issue for individual programming -assignments, but one we take very seriously. Students naturally want -to work together, and it is clear they learn a great deal by doing so. -Getting help is often the best way to interpret error messages and -find bugs, even for experienced programmers. Furthermore, in-depth -discussions about problem solving, algorithms, and code efficiency are -invaluable and make us all better software engineers. In response to -this, the following rules will be enforced for programming -assignments: -

- - - - - -

Homework Plagiarism Detection and Academic Dishonesty Penalty

- -

-We use an automatic code comparison tool to help spot homework -assignments that have been submitted in violation of these rules. The -tool takes all assignments from all sections and all prior terms and -compares them, highlighting regions of the code that are similar. The -plagiarism tool looks at core code structure and is not fooled by -variable and function name changes or addition of comments and -whitespace. -

- -

-The instructor checks flagged pairs of assignments very carefully, to -determine which students may have violated the rules of collaboration -and academic integrity on programming assignments. When the -instructor believes that an incident of academic dishonesty has -occurred, the involved students are contacted and a meeting is -scheduled. All students caught cheating on a programming assignment -(both the copier and the provider) will be punished. For -undergraduate students, the standard punishment for the first offense -is a 0 on the assignment and a full letter grade reduction on the -final semester grade. Furthermore, students with academic integrity -violations will lose all late days and may not earn additional late -days or early submission assignment extension incentives for future -assignments. Students whose violations are more flagrant will -receive a higher penalty. Undergraduate students caught a second time -will receive an immediate F in the course, regardless of -circumstances. Each incident will be reported to the Dean of -Students. -

- -

- -Graduate students found to be in violation of the academic integrity -policy for homework assignments on the first offense will receive an F -in the course and will be reported both to the Dean of Students and to -the chair of their home department with the strong advisement that -they be ineligible to serve as a teaching assistant for any other -course at RPI. -

- -

-You are not allowed to publicly post or privately share your Data -Structures code even after you complete the course. If code from -students is ever found in a public repository (e.g., GitHub) or other -online source or if that code matches the code submission of another -student in a later term, all involved students will be reported to the -Dean of Students and the Computer Science Department Head -- even if -they are not currently registered for Data Structures, or not -currently enrolled at RPI, or have graduated from RPI. The instructor -may file a retroactive change of semester grade with the registrar for -the Data Structures course. The instructor may also submit a takedown -notice and violation of terms of service or copyright to the website -host of the public repository. The students will also forfeit any -opportunity for a positive reference or recommendation letter from the -instructor. -

- - -

Academic Dishonesty in the Student Handbook

- -

- Refer to the - - The Rensselaer Handbook of Student Rights and Responsibilities -for further discussion of academic dishonesty. Note that: "Students -found in violation of the academic dishonesty policy are prohibited -from dropping the course in order to avoid the academic penalty." -

- -

Number of Students Found in Violation of the Policy

- -

-Historically, 5-10% of students are found to be in violation of the -academic dishonesty policy each semester. Many of these students -immediately admit to falling behind with the coursework and violating -one or more of the rules above and if it is a minor first-time offense -may receive a reduced penalty. -

- - diff --git a/php/advice_F11.php b/php/advice_F11.php deleted file mode 100755 index 0ea9fb3..0000000 --- a/php/advice_F11.php +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - -
- - - -

- -On the Fall 2011 Course Evaluations we asked:

-"What advice would you give a friend who -is considering taking this class?
-What are the necessary -prerequisites, co-requisites, or prior experience?
-What should you do -to succeed?"
-
-

-
- - - - - diff --git a/php/advice_S14.php b/php/advice_S14.php deleted file mode 100755 index 1bedaab..0000000 --- a/php/advice_S14.php +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - - - - -
- - -

Prior programming experience, knowing C++

- - - -

Who should take this course

- - - -

Time commitment

- - - -

General advice

- - - -

Lecture advice

- - - -

Lab advice

- - - -

Homework advice, starting early

- - - -

Homework advice, late days

- - - -

General homework advice

- - - -

Office hours/ALAC

- - - -

Test preparation

- - - - -

What resources did you find most helpful in learning the course material? (130 total responses)

- - - -

 

- -

-See also:
- -Advice from Fall 2011 CSCI 1200 Data Structures students -

- - - - - diff --git a/php/advice_TAs.php b/php/advice_TAs.php deleted file mode 100755 index 73ba7ef..0000000 --- a/php/advice_TAs.php +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - -
- - - - - - -

- - - - diff --git a/php/calendar_data.php b/php/calendar_data.php deleted file mode 100755 index 8fe213e..0000000 --- a/php/calendar_data.php +++ /dev/null @@ -1,1069 +0,0 @@ - "2023 01 05 00 00") return TRUE; - if ($which == 2 && $current_day > "2023 01 12 12 00") return TRUE; - if ($which == 3 && $current_day > "2023 01 16 12 00") return TRUE; - if ($which == 4 && $current_day > "2023 01 19 11 00") return TRUE; - if ($which == 5 && $current_day > "2023 01 23 11 00") return TRUE; - if ($which == 6 && $current_day > "2023 01 26 11 00") return TRUE; - if ($which == 7 && $current_day > "2023 01 30 11 00") return TRUE; - if ($which == 8 && $current_day > "2023 02 02 11 00") return TRUE; - if ($which == 9 && $current_day > "2023 02 06 11 00") return TRUE; - if ($which == 10 && $current_day > "2023 02 09 11 00") return TRUE; - if ($which == 11 && $current_day > "2023 02 13 11 00") return TRUE; - if ($which == 12 && $current_day > "2023 02 16 11 00") return TRUE; - if ($which == 13 && $current_day > "2023 02 23 11 00") return TRUE; - if ($which == 14 && $current_day > "2023 02 27 11 00") return TRUE; -/* -Probably cancel Problem Solving 2, which will make Operators lec 14, and then -leaves us free to not hold lecture on March 3rd (Friday before spring break). -Students like this (good for semester performance review), and lets us grade -Exam 2 a little more quickly, which is good since we're up against the drop -deadline. If we DON'T do this, need to add a new statement - if ($which == 15 && $current_day > "2023 03 02 12 00") return TRUE; -and renumber everything below 16....28 -*/ - if ($which == 15 && $current_day > "2023 03 13 11 00") return TRUE; - if ($which == 16 && $current_day > "2023 03 16 11 00") return TRUE; - if ($which == 17 && $current_day > "2023 03 20 11 00") return TRUE; - if ($which == 18 && $current_day > "2023 03 23 11 00") return TRUE; - if ($which == 19 && $current_day > "2023 03 27 11 00") return TRUE; - if ($which == 20 && $current_day > "2023 03 30 11 00") return TRUE; - if ($which == 21 && $current_day > "2023 04 03 11 00") return TRUE; - if ($which == 22 && $current_day > "2023 04 06 11 00") return TRUE; - if ($which == 23 && $current_day > "2023 04 10 11 00") return TRUE; - if ($which == 24 && $current_day > "2023 04 13 11 00") return TRUE; - if ($which == 25 && $current_day > "2023 04 17 11 00") return TRUE; - if ($which == 26 && $current_day > "2023 04 20 11 00") return TRUE; - if ($which == 27 && $current_day > "2023 04 24 11 00") return TRUE; - //if ($which == 26 && $current_day > "2022 04 29 12 00") return TRUE; - return FALSE; -} - -function lecturenotesreleased($which) -{ - - // ------------------------------------- - // END OF TERM, REMOVE ALL ADDITIONAL LECTURE MATERIALS -// return false; - // ------------------------------------- - - //if ($which <= 28) return TRUE; return FALSE; - return lecturereleased($which); -} - - -function labreleased($which) -{ - - // ------------------------------------- - // END OF TERM, LEAVE ALL LAB MATERIALS - // ------------------------------------- - - $current_day = date('Y m d H i'); - // YYYY MM DD HH minutes - if ($which == 1 && $current_day > "2023 01 10 16 00") return TRUE; - if ($which == 2 && $current_day > "2023 01 17 16 00") return TRUE; - if ($which == 3 && $current_day > "2023 01 24 16 00") return TRUE; - if ($which == 4 && $current_day > "2023 01 31 16 00") return TRUE; - if ($which == 5 && $current_day > "2023 02 07 16 00") return TRUE; - if ($which == 6 && $current_day > "2023 02 14 16 00") return TRUE; - if ($which == 7 && $current_day > "2023 02 21 16 00") return TRUE; - if ($which == 8 && $current_day > "2023 02 28 16 00") return TRUE; - if ($which == 9 && $current_day > "2023 03 14 16 00") return TRUE; - if ($which == 10 && $current_day > "2023 03 28 16 00") return TRUE; - if ($which == 11 && $current_day > "2023 04 04 16 00") return TRUE; - if ($which == 12 && $current_day > "2023 04 11 16 00") return TRUE; - if ($which == 13 && $current_day > "2023 04 17 16 00") return TRUE; - if ($which == 14 && $current_day > "2023 04 25 16 00") return TRUE; - return FALSE; -} - -function labsolutionsreleased($which) -{ - // ------------------------------------- - // END OF TERM, REMOVE ALL LAB SOLUTIONS - return false; - // ------------------------------------- - - if ($which <= 0) return TRUE; - return FALSE; -} - - -function homeworkreleased($which) -{ - - // ------------------------------------- - // END OF TERM, LEAVE ALL HOMEWORK ASSIGNMENTS - // ------------------------------------- - - $current_day = date('Y m d H i'); -// print "THING ".$which." ".$current_day; - - if ($which == 1 && $current_day > "2023 01 13 10 00") return TRUE; - if ($which == 2 && $current_day > "2023 01 20 10 00") return TRUE; - if ($which == 3 && $current_day > "2023 02 03 10 00") return TRUE; - if ($which == 4 && $current_day > "2023 02 10 10 00") return TRUE; - if ($which == 5 && $current_day > "2023 02 17 10 00") return TRUE; - if ($which == 6 && $current_day > "2023 03 03 10 00") return TRUE; - if ($which == 7 && $current_day > "2023 03 17 10 00") return TRUE; - if ($which == 8 && $current_day > "2023 03 24 10 00") return TRUE; - if ($which == 9 && $current_day > "2023 04 07 10 00") return TRUE; - if ($which == 10 && $current_day > "2023 04 14 10 00") return TRUE; - - return false; - -} - -function homeworksolutionsreleased($which) -{ - - if ($which <= 0) return TRUE; - return FALSE; -} - - -function reviewproblemsreleased($which) -{ - - // ------------------------------------- - // END OF TERM, REMOVE ALL TEST REVIEW MATERIALS -// return false; - // ------------------------------------- - - $current_day = date('Y m d H i'); -// print "THING ".$which." ".$current_day; - - if ($which == 1 && $current_day > "2023 01 27 10 00") return TRUE; - if ($which == 2 && $current_day > "2023 02 24 10 00") return TRUE; - if ($which == 3 && $current_day > "2023 03 31 10 00") return TRUE; - if ($which == 4 && $current_day > "2023 04 21 10 00") return TRUE; - -// if ($which <= 4) return TRUE; return FALSE; - return false; -} - - -/* -We don't usually make use of this anymore, because we just post the review -solutions on Submitty under Course Materials. -*/ -function reviewsolutionsreleased($which) -{ - - // ------------------------------------- - // END OF TERM, REMOVE ALL TEST REVIEW MATERIALS - return false; - // ------------------------------------- - - if ($which <= 4) return TRUE; - return FALSE; -} - -/* -We don't usually make use of this anymore, because we just post the test -solutions on Submitty under Course Materials. -*/ -function testsolutionsreleased($which) -{ - - // ------------------------------------- - // END OF TERM, REMOVE ALL TEST REVIEW MATERIALS - return false; - // ------------------------------------- - - if ($which <= 3) return TRUE; - return FALSE; -} - - -/*****************************************************************/ - -function makelink($directory, $file, $text = "", $note = "") -{ - if (isset($text) && $text != "") { - if (isset($note)) { - print '' . $text . ' ' . $note . '
'; - } else { - print '' . $text . '
'; - } - } else if (isset($text) && $text == "") { - if (isset($note)) { - print '' . $file . ' ' . $note . '
'; - } else { - print '' . $file . '
'; - } - } else { - print '' . $file . '
'; - } -} - - -function makelink2($link, $text) -{ - print '' . $text . '
'; -} - -function video($link, $text) -{ - print ""; - /*if ($link == "") { - print '
live ' . $text . '
'; - } else { - print '
 ' . $text . '
'; - }*/ -} - -function old_video($link, $text) -{ - //print ""; - print '
 2020 ' . $text . ''; -} - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ - - -function lecturename($which) -{ - //if ($which == 1) return "Introduction to C++"; //
& Install Fest"; - if ($which == 1) return "Introduction to C++ & Strings"; - else if ($which == 2) return "Strings & Vectors"; - else if ($which == 3) return "C++ Classes, part 1"; - else if ($which == 4) return "C++ Classes, part 2"; - else if ($which == 5) return "Pointers and Arrays"; - else if ($which == 6) return "Dynamic Memory"; - else if ($which == 7) return "Big O Notation & Basic Recursion"; - else if ($which == 8) return "Vector Implementation"; - else if ($which == 9) return "Iterators & STL Lists"; - else if ($which == 10) return "Iterators & Linked Lists"; - else if ($which == 11) return "Doubly Linked Lists & List Implementation"; - else if ($which == 12) return "Advanced Recursion"; - else if ($which == 13) return "Problem Solving, part 1"; - //else if ($which == 14) return "Problem Solving, part 2"; - else if ($which == 14) return "Operators"; - else if ($which == 15) return "Associative Containers, part 1"; - else if ($which == 16) return "Associative Containers, part 2"; - else if ($which == 17) return "Trees, part 1"; - else if ($which == 18) return "Trees, part 2"; - else if ($which == 19) return "Trees, part 3"; - //else if ($which == 21) return "Trees, part 4"; - else if ($which == 20) return "Hash Tables, part 1"; - else if ($which == 21) return "Hash Tables, part 2"; - else if ($which == 22) return "Priority Queues"; - else if ($which == 23) return "Hybrid / Variant Data Structures"; - else if ($which == 24) return "C++ Exceptions"; - else if ($which == 25) return "Garbage Collection & Smart Pointers"; - else if ($which == 26) return "Inheritance & Polymorphism"; - else if ($which == 27) return "Concurrency & Asynchronous Computing"; - else return "UNKNOWN LECTURE " . $which; -} - - -function lectureurl($which) -{ - if ($which == 1) return "lectures/01_introduction.pdf"; - else if ($which == 2) return "lectures/02_strings_vectors.pdf"; - else if ($which == 3) return "lectures/03_classes_I.pdf"; - else if ($which == 4) return "lectures/04_classes_II.pdf"; - else if ($which == 5) return "lectures/05_pointers.pdf"; - else if ($which == 6) return "lectures/06_memory.pdf"; - else if ($which == 7) return "lectures/07_order_notation_recursion.pdf"; - else if ($which == 8) return "lectures/08_vector_implementation.pdf"; - else if ($which == 9) return "lectures/09_lists_and_iterators.pdf"; - else if ($which == 10) return "lectures/10_linked_lists.pdf"; - else if ($which == 11) return "lectures/11_list_implementation.pdf"; - else if ($which == 12) return "lectures/12_advanced_recursion.pdf"; - else if ($which == 13) return "lectures/13_problem_solving_I.pdf"; - //else if ($which == 14) return "lectures/14_problem_solving_II.pdf"; - else if ($which == 14) return "lectures/14_operators.pdf"; - else if ($which == 15) return "lectures/15_maps_I.pdf"; - else if ($which == 16) return "lectures/16_maps_II.pdf"; - else if ($which == 17) return "lectures/17_trees_I.pdf"; - else if ($which == 18) return "lectures/18_trees_II.pdf"; - else if ($which == 19) return "lectures/19_trees_III.pdf"; - //else if ($which == 21) return "lectures/21_trees_IV.pdf"; - else if ($which == 20) return "lectures/20_hash_tables_I.pdf"; - else if ($which == 21) return "lectures/21_hash_tables_II_priority_queues_I.pdf"; - else if ($which == 22) return "lectures/22_priority_queues_II.pdf"; - else if ($which == 23) return "lectures/23_hybrid_data_structures.pdf"; - else if ($which == 24) return "lectures/24_exceptions.pdf"; - else if ($which == 25) return "lectures/25_garbage_collection.pdf"; - else if ($which == 26) return "lectures/26_inheritance.pdf"; - else if ($which == 27) return "lectures/27_concurrency.pdf"; - - else return "UNKNOWN LECTURE " . $which; -} - - -function makelecturehelper($which) -{ - if (lecturereleased($which)) { - print ''; - } - print 'Lecture ' . $which . ':
' . lecturename($which); - if (lecturereleased($which)) { - print '
'; - } - - if (lecturenotesreleased($which)) { - print '

'; - if ($which == 1) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/2c4c8d17c3044705aed620191c14a7741d", "Lecture 1 (Covers our Lec 1 & 2)"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/2b0f98a358ba4b3493b7af1c07ed72ad1d", "FALL 2020 (be careful!) Syllabus Q&A"); - } else if ($which == 2) { - makelink("lectures/", "framed_diagonal.cpp"); - } else if ($which == 3) { - makelink("lectures/", "date_main.cpp"); - makelink("lectures/", "date.h"); - makelink("lectures/", "date.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/0a852d9f558b4996ae68e3a1a13301b01d", "Lecture 2 (Our Lec 3)"); - //old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/392d5e6aacdc4634a7122775e6dfcb3e1d", "Fall 2020 FAQ and Q&A"); - } else if ($which == 4) { - makelink("lectures/", "students.txt"); - makelink("lectures/", "student.h"); - makelink("lectures/", "student.cpp"); - makelink("lectures/", "student_main.cpp"); - makelink("lectures/", "stats.h"); - makelink("lectures/", "stats.cpp"); - makelink("lectures/", "name.h", ""); - makelink("lectures/", "name.cpp", ""); - makelink("lectures/", "name_main.cpp"); - makelink("lectures/", "assert_demo.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/0e7d75f3f21f4385a8933a0c3617bb071d", "Lecture 3 (Our Lec 4)"); - - } else if ($which == 5) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/842f2171ae6f4e72930f9caca7a5b6a41d", "Lecture 4A: Pointers"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/9033565fcc2c4cf387d17efe51894ad41d", "Lecture 4B: Pointer Arithmetic & Arrays"); - } else if ($which == 6) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/7f650508d4274b8db1f114f3e8e4afe01d", "Lecture 5A: Dynamic Memory Intro"); - old_video("https://mediasite.mms.rpi.edu/mediasite/Channel/rpi_csci_1200_data_structures/watch/f1e2518ed2b0473b992550a01643cc141d", "Lecture 5B: Dynamic Memory Examples"); - print("
"); - makelink("lectures/", "f23_scrap.cpp", "DCC 308 notes"); - } else if ($which == 7) { - //makelink("lectures/", "buggy.cpp"); - - //After lecture - /* - makelink("lectures/", "binsearch.cpp"); - */ - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/80abdcccee834d0ba4a5ed6af952325a1d", "Lecture 7A: Algorithm Analysis Introduction"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/ec256d8a7750496ca66db24002df08681d", "Lecture 7B: Basic Recursion (we may finish in Lecture 12)"); - } else if ($which == 8) { - makelink("lectures/", "vec.h"); - makelink("lectures/", "vec_xiao.h"); - makelink("lectures/", "vec_main.cpp"); - //After lecture - //makelink("lectures/", "vec_sol.h"); //Includes erase(), but we aren't writing erase() during lab 5 anyway. - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/2374e7449a5542ffb05ee2fad637c8251d", "Lecture 6A: Vec Implementation"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/9996be03deef4425a70bb551207b1a9c1d", "Lecture 6B: Vec Implementation"); - - } else if ($which == 9) { - makelink("lectures/", "classlist_ORIGINAL.cpp"); - makelink("lectures/", "data.txt"); - //After lecture - //makelink("lectures/", "classlist_ITER.cpp"); - //makelink("lectures/", "classlist_LIST.cpp"); - //makelink("lectures/","lec_9_notes.cpp"); // Uncomment after Lec 10 release - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/6087b00fdd544f3aab2872837841021e1d", "Lecture 8A: Iterator & STL List"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/44411e37d1314b6ba8c78652b84871481d", "Lecture 8B: Example of List & Iterator"); - - } else if ($which == 10) { - //makelink("lectures/", "lec10_ex.cpp"); - //After lecture - /* - makelink("lectures/", "lec10_ex_more.cpp"); - */ - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/49b8d53093394e079da084f5aaf577851d", "Lecture 9A: Iterators continued"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/4af59ddcde814a16bb6263758df1b4251d", "Lecture 9B: Singly-Linked Lists"); - - } else if ($which == 11) { - makelink("lectures/", "dslist_handout.h"); - //After lecture - - makelink("lectures/", "list.h"); - makelink("lectures/", "list_main.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/839a5040044148f29f1028835826f2b91d", "Lecture 10A: doubly-linked lists"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/a3dbd287b2f74f6785aae622726a4e671d", "Lecture 10B: dslist implementation"); - } else if ($which == 12) { - makelink("lectures/", "letters.txt"); - //After lecture - //makelink("lectures/", "binsearch.cpp", "", "Same as Lecture 7 version"); - makelink("lectures/", "binsearch.cpp"); - makelink("lectures/", "merge_sol.cpp"); - makelink("lectures/", "word_search_sol.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/0e73374e45c64b06867335f09518683b1d", "Lecture 11: Advanced Recursion"); - } else if ($which == 13) { - //makelink2("https://www.cs.rpi.edu/academics/courses/fall20/csci1200/lectures/13_problem_solving_II.pdf","Fall 2020 Problem Solving Part 2 PDF"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/33f5f84ee8e946e49cce016a491105941d","Lecture 12: Problem Solving I"); - //old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/de9be8276d864731a8cc7ac8b65262741d","Lecture 13: Problem Solving II"); - } else if ($which == 14) { - makelink("lectures/", "complex_lec.cpp"); - makelink("lectures/", "complex_lec.h"); - //After lecture - makelink("lectures/","concatenation_array.cpp"); - //makelink("lectures/","merge_intervals.cpp"); - makelink("lectures/","boomerang.cpp"); - makelink("lectures/","square.cpp"); - //makelink("lectures/","complex_soln.cpp"); - //makelink("lectures/","complex_soln.h"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/e1d3346022214c908bcd0302ce5c085d1d", "Lecture 14: Operators & Friends"); - } else if ($which == 15) { - makelink("lectures/", "word_count.cpp"); - - //After lecture - makelink("lectures/","search_demo.cpp"); - //makelink("lectures/","word_count_sol.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/7e617cf2376840fcb08b1baaab5ff8d11d", "Lecture 15: Maps, part 1"); - } else if ($which == 16) { - makelink("lectures/","stl_sets.pdf","stl_sets.pdf","For HW7"); - //After lecture - makelink("lectures/","two_sum.cpp"); - makelink("lectures/","word_pattern.cpp"); - //makelink("lectures/","odd_count.cpp"); - makelink("lectures/","coursegrades.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/f6640d49157046eea1b391e4d16f364f1d", "Lecture 16: Maps, part 2"); - } else if ($which == 17) { - makelink("lectures/", "ds_set_starter.h"); ///Before lecture - //After lecture - makelink("lectures/","ds_set_lec17.h"); ///After lecture - makelink("lectures/","lec17_exercises.cpp"); ///After lecture - makelink("lectures/","unique_occurences.cpp"); ///After lecture - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/c90d9578adc54db0b93f914275c7af4a1d", "Lecture 17: Trees, part 1"); - - //print("

(Optional) Old Bonus Lecture
"); - //makelink2("https://www.cs.rpi.edu/academics/courses/fall21/csci1200/lectures/drmemoryuncovered.pdf", "Dr Memory Slides"); - //old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/efe35ac83339417a9a49126b9528b0061d", "Dr. Memory Uncovered"); - } else if ($which == 18) { - makelink("lectures/", "ds_set_lec18_starter.h"); ///Before lecture - makelink("lectures/","ds_set_lec18_moresoln.h"); //After lecture - makelink("lectures/","bst_search.cpp"); //After lecture - makelink("lectures/","bst_insert.cpp"); //After lecture - //makelink("lectures/","lec18_split_solutions.pdf"); //After lecture - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/3105f1fe8fc6402b8a95e959a17c61511d", "Lecture 18: Trees, part 2 (Our Lec 18)"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/bfeaa816db6c40f29b5938b1fe68b0791d", "Lecture 19: Trees, part 3 (also Our Lec 18)"); - print("
"); - print("
"); - makelink("", "https://mediasite.mms.rpi.edu/mediasite/Play/e159b3c64b8047618fdefa9c4d489fd81d", "HW8 Meeting Recording"); - } else if ($which == 19) { - //After lecture - makelink("lectures/","ds_set_soln.h"); ///After lecture - makelink("lectures/","breadth_first_search.cpp"); ///After lecture - makelink("lectures/","erase_node.cpp"); ///After lecture - makelink("lectures/","height.cpp"); ///After lecture - makelink("lectures/","shortest_path.cpp"); ///After lecture - //makelink("lectures/","ds_set_soln.h"); ///After lecture - //makelink("lectures/","lec19_ex1.cpp"); ///After lecture - //makelink("lectures/","lec19_ex2.cpp"); ///After lecture - //makelink("lectures/","bfs_code.cpp"); ///After lecture - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/65124520994a41e288a3eb23e214f8791d", "Lecture 20: Trees, part 4 (Our Lec 19)"); - } else if ($which == 20) { - makelink("lectures/", "google_interview.txt"); - makelink("lectures/", "ds_hashset_start.h"); - //After lecture - makelink("lectures/","hash_phonebook_code.cpp"); - makelink("lectures/","two_sum_hash_table.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/39372c0a188d4d34a1419e596deaa57a1d", "Lecture 22: Hash Tables, part 1 (Our Lec 20)"); - } else if ($which == 21) { - //makelink("lectures/","stacksnqueues.cpp"); - //makelink("lectures/","ds_hashset_soln.h","","Added after Lab 11"); //After lec only if we're not doing this in lab, otherwise pop this up after lab on hash tables - print("
"); - //After lecture - makelink("lectures/","most_freq_subtree_sum.cpp"); - makelink("lectures/","max_average_subarray.cpp"); - makelink("lectures/","rearrange_words_in_a_sentence.cpp"); - makelink("lectures/","good_substrings_of_size_3.cpp"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/0a0f7d9e12444b548cdf7de38d9b77c51d", "Lecture 23: Hash Tables, part 2 (Our Lec 21"); - } else if ($which == 22) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/63c91484d96646b2bc6fd1cfa2dc93d61d", "Lecture 25: Priority Queues (Our Lec 22)"); - } else if ($which == 23) { - makelink("lectures/","queue_using_stacks.cpp"); - makelink("lectures/","stack_using_queues.cpp"); - makelink("lectures/","trie.cpp"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/af0ad643f4e84862ad689d84306f4e211d", "Lecture 21: Hybrid / Variant Data Structures (Our Lec 23)"); - } else if ($which == 24) { - makelink("lectures/","longest_common_prefix.cpp"); - makelink("lectures/","reverse_integer.cpp"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/4538503dbe074122b17f0637995f69ec1d", "Lecture 26: Exceptions"); - } else if ($which == 25) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/7c619d2b57e44f4d8d7b311bdbcc25711d", "Lecture 27: Garbage Collection & Smart Pointers"); - } else if ($which == 26) { - makelink("lectures/", "virtual_inheritance_nesting_dolls.pdf"); - print("
"); - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/ae92bf4c25804db894df18676159d4661d", "Lecture 24: (not our) HW9 Discussion & Inheritance"); - } else if ($which == 27) { - old_video("https://mediasite.mms.rpi.edu/Mediasite5/Channel/rpi_csci_1200_data_structures/watch/22ee6f5d2b2d4fa9a63b2bacc7696b291d", "Lecture 28: Concurrency & Asynchronous Computing"); - } /*else if ($which == 28) { - }*/ - - - //print '
'; - } - /*if ($which == 0) { - print '
Location:DCC 308
Time: 6-7:50pm
'; - }*/ -} - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ - -function labname($which) -{ - if ($which == 1) return "C++ Development, & Strings"; - else if ($which == 2) return "Classes"; - else if ($which == 3) return "Debugging with the Command Line Debugger"; - //else if ($which == 4) return "Vector Implementation & Memory Debugging"; - else if ($which == 4) return "Memory Diagramming and Debugging"; - else if ($which == 5) return "Vector Implementation"; - else if ($which == 6) return "Reversing Data: STL Vectors vs. STL Lists"; - else if ($which == 7) return "List Implementation"; - else if ($which == 8) return "Recursion"; - //else if ($which == 8) return "Operators"; - else if ($which == 9) return "Maps"; - //else if ($which == 9) return "Binary Search Trees &
Tree Implementation, part 1"; - //else if ($which == 10) return "Tree Implementation, part 2"; - else if ($which == 10) return "Tree Implementation"; - else if ($which == 11) return "Hash Tables"; - //else if ($which == 11) return "Operators"; - //else if ($which == 13) return "Big O Notation & Performance"; - else if ($which == 12) return "Priority Queues"; - else if ($which == 13) return "Garbage Collection & Smart Pointers"; - else if ($which == 14) return "Multiple Inheritance & Exceptions"; - else return "UNKNOWN LAB " . $which; -} - -function laburl($which) -{ - if ($which == 1) return "labs/01_getting_started/"; - else if ($which == 2) return "labs/02_classes/"; - else if ($which == 3) return "labs/03_debugging/"; - else if ($which == 4) return "labs/04_memory_debugging/"; - else if ($which == 5) return "labs/05_vectors/"; - else if ($which == 6) return "labs/06_lists_iterators/"; - else if ($which == 7) return "labs/07_list_implementation/"; - else if ($which == 8) return "labs/08_recursion/"; - //else if ($which == 8) return "labs/08_operators/"; - else if ($which == 9) return "labs/09_maps/"; - //else if ($which == 9) return "labs/09_trees_I/"; - else if ($which == 10) return "labs/10_trees_I/"; - //else if ($which == 10) return "labs/10_trees_II/"; - //else if ($which == 11) return "labs/11_operators/"; - else if ($which == 11) return "labs/11_hash_tables/"; - //else if ($which == 13) return "labs/13_big_o_notation/"; - else if ($which == 12) return "labs/12_priority_queues/"; - else if ($which == 13) return "labs/13_smart_memory/"; - else if ($which == 14) return "labs/14_exceptions_inheritance/"; - else return "UNKNOWN LAB " . $which; -} - -function makelabhelper($which) -{ - if (labreleased($which)) { - print ''; - } - //if (labreleased($which) && $which != 9) { print ''; } - //if (labreleased($which) && $which == 9) { print ''; } - print 'Lab ' . $which . ':
' . labname($which); - if (labreleased($which)) { - print '
'; - } - print '

'; - - if (labreleased($which)) { - if ($which == 1) { - print '
'; - makelink(laburl($which), "quadratic.cpp"); - makelink(laburl($which), "README.txt"); - } else if ($which == 2) { - print '
'; - makelink(laburl($which), "main.cpp"); - } else if ($which == 3) { - print("
"); - makelink(laburl($which), "point.h"); - makelink(laburl($which), "point.cpp"); - makelink(laburl($which), "line.h"); - makelink(laburl($which), "line.cpp"); - makelink(laburl($which), "roads.cpp"); - - makelink(laburl($which), "input_a.txt"); - makelink(laburl($which), "input_b.txt"); - makelink(laburl($which), "input_c.txt"); - makelink(laburl($which), "input_d.txt"); - - /* if (labsolutionsreleased($which)) { - print("
"); - makelink("https://submitty.cs.rpi.edu/courses/s21/csci1200/display_file?dir=course_materials&path=%2Fvar%2Flocal%2Fsubmitty%2Fcourses%2Ff20%2Fcsci1200%2Fuploads%2Fcourse_materials%2Flabs%2F03_pointers_and_debugging%2Fdiagram.cpp","","Checkpoint 1 Problems - diagram.cpp"); - makelink("https://submitty.cs.rpi.edu/courses/s21/csci1200/display_file?dir=course_materials&path=%2Fvar%2Flocal%2Fsubmitty%2Fcourses%2Ff20%2Fcsci1200%2Fuploads%2Fcourse_materials%2Flabs%2F03_pointers_and_debugging%2Fdiagram.pdf","","Checkpoint 1 Solutions - diagram.pdf"); - }*/ - - - } else if ($which == 4) { - makelink(laburl($which), "buggy_lab4.cpp"); - makelink(laburl($which), "first.txt"); - makelink(laburl($which), "middle.txt"); - makelink(laburl($which), "last.txt"); - //print("
"); - //makelink(laburl($which),"vec.h"); - //makelink(laburl($which),"test_vec.cpp"); - - } else if ($which == 5) { - makelink(laburl($which), "vec.h"); - makelink(laburl($which), "test_vec.cpp"); - } else if ($which == 6) { - makelink(laburl($which),"checkpoint1.cpp"); - makelink(laburl($which),"checkpoint3.cpp"); - } else if ($which == 7) { - makelink(laburl($which), "dslist.h", "dslist.h (partial)"); - makelink(laburl($which), "checkpoint1.cpp"); - makelink(laburl($which), "checkpoint2.cpp"); - } else if ($which == 8) { - makelink(laburl($which), "grid1.txt"); - makelink(laburl($which), "grid2.txt"); - makelink(laburl($which), "grid3.txt"); - makelink(laburl($which), "grid4.txt"); - makelink(laburl($which), "start.cpp", "", ""); -/* } else if ($which == 8) { - // operators lab - makelink(laburl($which),"main_checkpoint_1_and_2.cpp"); - - //makelink(laburl($which), "phonebook.cpp"); -*/ - } else if ($which == 9) { - makelink(laburl($which), "phonebook.cpp"); - - } else if ($which == 10) { - - makelink(laburl($which), "ds_set.h"); - makelink(laburl($which), "test_ds_set.cpp"); - - - } else if ($which == 11) { - - makelink(laburl($which),"ds_hashset.h"); - makelink(laburl($which),"test_ds_hashset.cpp"); - - // operators lab - //makelink(laburl($which), "main_checkpoint_1_and_2.cpp"); - - } else if ($which == 12) { - //makelink(laburl($which), "heapsort.cpp"); - makelink(laburl($which),"priority_queue.h"); - makelink(laburl($which),"test_pq.cpp"); - - - - } else if ($which == 13) { - - makelink(laburl($which), "stop_and_copy.h"); - makelink(laburl($which), "stop_and_copy.cpp"); - makelink(laburl($which), "main_stop_and_copy.cpp"); - makelink(laburl($which), "ds_smart_pointers.h"); - makelink(laburl($which), "main_smart_pointers.cpp"); - - //makelink(laburl($which),"performance.cpp"); -// makelink(laburl($which),"generate_input.cpp"); - // makelink(laburl($which),"test_input.txt"); - // makelink(laburl($which),"test_sort.txt"); - // makelink(laburl($which),"test_mode.txt"); - // m//akelink(laburl($which),"test_remove_dups.txt"); - -// -// makelink(laburl($which),"ds_hashset.h"); -// makelink(laburl($which),"test_ds_hashset.cpp"); - //makelink(laburl($which),"heapsort.cpp"); - - } else if ($which == 14) { - makelink(laburl($which), "input.txt"); - makelink(laburl($which), "simple_main.cpp"); - makelink(laburl($which), "utilities.h"); - makelink(laburl($which), "simple.txt"); - makelink(laburl($which), "output_simple.txt"); - } - } - - - if (labsolutionsreleased($which)) { - if ($which == 1) { - } else if ($which == 2) { - } else if ($which == 3) { - } else if ($which == 4) { - } else if ($which == 5) { - } else if ($which == 6) { - } else if ($which == 7) { - print '

solutions:
'; - makelink(laburl($which), "dslist_soln.h"); - print '
'; - } else if ($which == 8) { - } else if ($which == 9) { - } else if ($which == 10) { - } else if ($which == 11) { -// print '

solutions:
'; - // makelink(laburl($which),"ds_hashset_soln.h"); - // print '
'; - } else if ($which == 12) { - } else if ($which == 13) { - } else if ($which == 14) { - } - } -} - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ - -function homeworkname($which) -{ - if ($which == 1) return "Text Justification"; - else if ($which == 2) return "Hockey Classes"; - else if ($which == 3) return "Matrix Class"; - else if ($which == 4) return "Tool Rental Lists"; - else if ($which == 5) return "Linked Train Cars"; - else if ($which == 6) return "Inverse Word Search"; - else if ($which == 7) return "Smash Frames"; - else if ($which == 8) return "B+ Trees"; - else if ($which == 9) return "Miniblast Hash Maps"; - else if ($which == 10) return "Distance Fields & Priority Queues"; - else return "UNKNOWN HOMEWORK " . $which; -} - -function homeworkurl($which) -{ - if ($which == 1) return "hw/01_text_justification/"; - else if ($which == 2) return "hw/02_hockey_classes/"; - else if ($which == 3) return "hw/03_matrix_class/"; - else if ($which == 4) return "hw/04_tool_rental/"; - else if ($which == 5) return "hw/05_linked_train_cars/"; - else if ($which == 6) return "hw/06_word_search/"; - else if ($which == 7) return "hw/07_smash_frames/"; - else if ($which == 8) return "hw/08_bplus_trees/"; - else if ($which == 9) return "hw/09_miniblast_hash/"; - else if ($which == 10) return "hw/10_level_sets/"; - else return "UNKNOWN HOMEWORK " . $which; -} - -function homeworksolutionsurl($which) -{ - return preg_replace('/hw/', 'hw_solns', homeworkurl($which)); -} - - -function makehomeworkhelper($which) -{ - //$current_day = date('Y m d H i'); - - //print $current_day; - - if (homeworkreleased($which)) { - print ''; - } - if (homeworkreleased($which)) { - print 'Homework ' . $which . ':
' . homeworkname($which); - } else { - print 'Homework ' . $which; - } - if (homeworkreleased($which)) { - print '
'; - /*if ($which == 7) { - //print ' update 10/28'; - }*/ - } - print '
due @ 11:59pm

'; - - if (homeworkreleased($which)) { - makelink(homeworkurl($which), "README.txt"); - if ($which == 1) { - makelink(homeworkurl($which), "example.txt"); - makelink(homeworkurl($which), "gettysburg_address.txt"); - makelink(homeworkurl($which), "long_word.txt"); - makelink(homeworkurl($which), "example_16_flush_left.txt"); - makelink(homeworkurl($which), "example_16_flush_right.txt"); - makelink(homeworkurl($which), "example_16_full_justify.txt"); - makelink(homeworkurl($which), "gettysburg_address_70_flush_left.txt"); - makelink(homeworkurl($which), "gettysburg_address_70_flush_right.txt"); - makelink(homeworkurl($which), "gettysburg_address_70_full_justify.txt"); - makelink(homeworkurl($which), "long_word_15_full_justify.txt"); - } else if ($which == 2) { - makelink(homeworkurl($which), "no_penalties_or_overtime.txt"); - makelink(homeworkurl($which), "no_penalties_or_overtime_output.txt"); - makelink(homeworkurl($which), "2012_small.txt"); - makelink(homeworkurl($which), "2012_small_output.txt"); - makelink(homeworkurl($which), "2012_ecac.txt"); - makelink(homeworkurl($which), "2012_ecac_output.txt"); - makelink(homeworkurl($which), "2012_all.txt"); - makelink(homeworkurl($which), "2011_all.txt"); - } else if ($which == 3) { - makelink(homeworkurl($which), "matrix_main.cpp"); - makelink(homeworkurl($which), "sample_output.txt"); - } else if ($which == 4) { - makelink(homeworkurl($which), "inventory_small.txt"); - makelink(homeworkurl($which), "customer_small.txt"); - makelink(homeworkurl($which), "output_inventory_small.txt"); - makelink(homeworkurl($which), "output_customer_small.txt"); - makelink(homeworkurl($which), "inventory_medium.txt"); - makelink(homeworkurl($which), "customer_medium.txt"); - makelink(homeworkurl($which), "output_inventory_medium.txt"); - makelink(homeworkurl($which), "output_customer_medium.txt"); - makelink(homeworkurl($which), "inventory_large.txt"); - makelink(homeworkurl($which), "customer_large.txt"); - makelink(homeworkurl($which), "output_inventory_large.txt"); - makelink(homeworkurl($which), "output_customer_large.txt"); - } else if ($which == 5) { - makelink(homeworkurl($which), "main.cpp"); - makelink(homeworkurl($which), "traincar.h"); - makelink(homeworkurl($which), "traincar.cpp"); - makelink(homeworkurl($which), "traincar_prototypes.h"); - makelink(homeworkurl($which), "sample_output.txt"); - makelink(homeworkurl($which), "mtrand.h"); - makelink(homeworkurl($which), "mtrand.cpp"); - } else if ($which == 6) { - makelink(homeworkurl($which), "puzzle1.txt"); - makelink(homeworkurl($which), "puzzle2.txt"); - makelink(homeworkurl($which), "puzzle3.txt"); - makelink(homeworkurl($which), "puzzle4.txt"); - makelink(homeworkurl($which), "puzzle5.txt"); - makelink(homeworkurl($which), "puzzle6.txt"); - makelink(homeworkurl($which), "puzzle7.txt"); - makelink(homeworkurl($which), "puzzle8.txt"); - makelink(homeworkurl($which), "out1_onesol.txt"); - makelink(homeworkurl($which), "out1.txt"); - makelink(homeworkurl($which), "out2.txt"); - makelink(homeworkurl($which), "out3.txt"); - makelink(homeworkurl($which), "out4.txt"); - makelink(homeworkurl($which), "out5.txt"); - makelink(homeworkurl($which), "out6.txt"); - makelink(homeworkurl($which), "out7.txt"); - makelink(homeworkurl($which), "out8.txt"); - } else if ($which == 7) { - makelink(homeworkurl($which), "main.cpp"); - makelink(homeworkurl($which), "mini_ult_frame_data.txt"); - makelink(homeworkurl($which), "large_ult_frame_data.txt"); - makelink(homeworkurl($which), "queries1_mini.txt"); - makelink(homeworkurl($which), "queries1_large.txt"); - makelink(homeworkurl($which), "queries2_mini.txt"); - makelink(homeworkurl($which), "queries2_large.txt"); - makelink(homeworkurl($which), "output1_mini.txt"); - makelink(homeworkurl($which), "output1_large.txt"); - makelink(homeworkurl($which), "output2_mini.txt"); - makelink(homeworkurl($which), "output2_large.txt"); - } else if ($which == 8) { - makelink(homeworkurl($which), "hw8_test.cpp"); - makelink(homeworkurl($which), "BPlusTree.h"); - makelink(homeworkurl($which), "output_all.txt"); - } else if ($which == 9) { - makelink(homeworkurl($which), "input_small.txt"); - makelink(homeworkurl($which), "output_small.txt"); - makelink(homeworkurl($which), "genome_small.txt"); - makelink(homeworkurl($which), "input_medium.txt"); - makelink(homeworkurl($which), "output_medium.txt"); - makelink(homeworkurl($which), "genome_medium.txt"); - makelink(homeworkurl($which), "genome_large.txt"); - makelink(homeworkurl($which), "input_large.txt"); - makelink(homeworkurl($which), "genome_larger.txt"); - makelink(homeworkurl($which), "input_larger.txt"); - } else if ($which == 10) { - makelink(homeworkurl($which), "data_structures_300x300.ppm"); - makelink(homeworkurl($which), "dots_1000x1000.ppm"); - makelink(homeworkurl($which), "image.cpp"); - makelink(homeworkurl($which), "image.h"); - makelink(homeworkurl($which), "lines_100x100.ppm"); - makelink(homeworkurl($which), "main.cpp"); - makelink(homeworkurl($which), "priority_queue.h"); - makelink(homeworkurl($which), "small_10x10.ppm"); - makelink(homeworkurl($which), "squiggle_30x30.ppm"); - makelink(homeworkurl($which), "tiny_5x5.ppm"); - } - - makelink(homeworkurl($which), "provided_files.zip"); - //if ($which != 4) { - - // } else { - //print 'See Submitty for materials'; -// } - //if ($which == 6){ - //print '
'."Homework 6 Contest Results".'
'; - //} - - } - - - if (homeworksolutionsreleased($which)) { - print '

solutions:
'; - print '
'; - } - -} - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ - -function maketesthelper($which) -{ - - if ($which == 4) { - print 'Data Structures Final Exam'; - print '
6:30-9:30pm America/New York

'; - //print '
location: Sage 3303, 3510, & 3101'; - //print '
location: TBA'; - //West Hall Auditorium'; - //print '
Location: See SubmittyFall 2023 Final Exams Schedule'; - } else { - print 'Test ' . $which; - print '
6:00-7:50pm'; - } - - if (reviewproblemsreleased($which)) { - print '

'; - makelink("reviews/", 'problems' . $which . '.pdf', 'practice problems'); - print '

'; - if (reviewsolutionsreleased($which)) { - print '

Don\'t look at the solutions until you have fully worked the problems
'; - //makelink("reviews/",'solutions'.$which.'.pdf','practice problem solutions'); - makelink("https://submitty.cs.rpi.edu/courses/s21/csci1200/display_file?dir=course_materials&path=%2Fvar%2Flocal%2Fsubmitty%2Fcourses%2Ff20%2Fcsci1200%2Fuploads%2Fcourse_materials%2Ftest_reviews%2Fsolutions" . $which . "_out.pdf", "", "practice problem solutions"); - } else { - - if ($which == 4) { - //print '

Sample solutions to the practice problems will be posted later.'; - } else { - print '

Sample solutions to the practice problems will be posted to Course Materials on Monday morning.'; - } - } - } - if (testsolutionsreleased($which)) { - print '

'; - /*makelink("tests/",'test_solutions'.$which.'.pdf', 'Test '.$which.' Solutions');*/ - makelink("https://submitty.cs.rpi.edu/courses/s21/csci1200/display_file?dir=course_materials&path=%2Fvar%2Flocal%2Fsubmitty%2Fcourses%2Ff20%2Fcsci1200%2Fuploads%2Fcourse_materials%2Ftest_solutions%2Ftest0" . $which . "_solution.pdf", '', "Test " . $which . " Solutions"); - } -} - - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ - - -function message($msg) -{ - print '' . $msg . ""; -} - -function extramessage($msg = null) -{ - if (isset($msg)) { - print "

"; - message($msg); - } -} - -/*****************************************************************/ - -function blank($numdays = 1) -{ - print ' '; -} - -function makeday($date, $msg, $numdays = 1, $color = "white") -{ - print '' . $date . ',
'; - message($msg); - print ""; -} - - -function makeinstallfest($date, $msg, $numdays = 1) -{ - - - print '' . $date . ',
'; - message($msg); - - - print '
 
Lecture 0: Install Fest
6-8pm
Location: DCC 308
'; - - // makelink("lectures/","temperature.cpp"); - // makelink("lectures/","memory_debugger_test.cpp"); - - print ""; -} - - -function makelecture($date, $msg = null) -{ - static $which = 1; - print "" . $date . ", "; - makelecturehelper($which); - extramessage($msg); - print ""; - $which++; -} - -function makelab($date, $msg = null) -{ - static $which = 1; - print "" . $date . ", "; - makelabhelper($which); - extramessage($msg); - print ""; - $which++; -} - -function makehomework($date, $msg = null) -{ - static $which = 1; - print "" . $date . ", "; - makehomeworkhelper($which); - extramessage($msg); - print ""; - $which++; -} - -function maketest($date, $msg = null) -{ - static $which = 1; - print "" . $date . ", "; - maketesthelper($which); - extramessage($msg); - print ""; - $which++; -} - -/*****************************************************************/ - -?> - diff --git a/php/course_calendar.php b/php/course_calendar.php deleted file mode 100755 index c97760e..0000000 --- a/php/course_calendar.php +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - -

Course Calendar

- - -IMPORTANT NOTE: Due to COVID-19, all aspects of RPI's Spring 2022 Data -Structures course will be -conducted online for the first two weeks. After -that depends on RPI's decision, but hopefully labs and office hours will be in-person -when allowed. -

*/ -?> - -

-Lecture and lab topics are tentative and will be updated as the term progresses. -

- -

- All times below are the - America/New York timezone. -

- - - - - -
- - - - - - - - - -'; -makeday ("Aug 28","First Day of Classes"); -makelecture ("Aug 29"); -makelab ("Aug 30"); -blank(); -makelecture ("Sep 1"); -print ''; - - -print ''; -makeday ("Sep 4","Labor Day, No classes"); -makeday ("Sep 5", "Monday schedule"); -//makelecture ("Sep 5"); -makelab ("Sep 6"); -makehomework("Sep 7"); -makelecture ("Sep 8"); -print ''; - -print ''; -blank(); -makelecture ("Sep 12"); -makelab ("Sep 13"); -makehomework("Sep 14"); -makelecture ("Sep 15"); -print ''; - - -print ''; -blank(); -makelecture ("Sep 19"); -makelab ("Sep 20"); -//makehomework("Feb 3"); -maketest("Sep 21"); -makelecture ("Sep 22"); -print ''; - - -print ''; -blank(); -makelecture ("Sep 26"); -makelab ("Sep 27"); -makehomework("Sep 28"); -makelecture ("Sep 29"); -print ''; - - -print ''; -//makeday ("Feb 15"); -blank(); -makelecture ("Oct 3"); -makelab ("Oct 4"); -makehomework("Oct 5"); -//maketest ("Feb 18"); -makelecture ("Oct 6"); -print ''; - - -print ''; -makeday ("Oct 9", "Columbus Day, No classes"); -//makeday ("Oct 10", "Monday schedule"); -makelecture ("Oct 10"); -makelab ("Oct 11"); -makehomework("Oct 12"); -makelecture ("Oct 13"); -print ''; - - -print ''; -blank(); -makelecture ("Oct 17"); -makelab ("Oct 18"); -maketest("Oct 19"); -//makelecture ("Mar 3","Last day to drop classes"); -makelecture ("Oct 20"); -//makeday("Oct 20","DS Lecture cancelled. Last day to drop classes"); -print ''; - - -/*print ''; -//makeday ("Oct 12","No classes"); -blank(); -makelecture ("Mar 8"); -makelab ("Mar 9"); -//makehomework("Mar 10"); -maketest ("Mar 10"); -makelecture ("Mar 11"); -print '';*/ - -//print ''; -//makeday ("Mar 6-10","Spring Break",5); -//print ''; - -print ''; -blank(); -makelecture ("Oct 24"); -makelab ("Oct 25"); -makehomework("Oct 26"); -makelecture ("Oct 27"); -print ''; - -//GM WEEK -print ''; -blank (); -makelecture ("Oct 31"); -//makeday ("Mar 22", "DS Lecture cancelled"); -makelab ("Nov 1"); -//makeday ("Nov 1","GM Wednesday, no lab"); -makehomework("Nov 2"); -makelecture ("Nov 3"); -//makeday ("Mar 25", "DS Lecture cancelled"); -print ''; - -print ''; -blank (); -makelecture ("Nov 7"); -makelab ("Nov 8"); -makehomework("Nov 9"); -makelecture ("Nov 10"); -print ''; - - -print ''; -blank(); -//makeday ("Apr 4","Pass/No Credit Deadline"); -makelecture ("Nov 14"); -makelab ("Nov 15"); -maketest("Nov 16"); -makelecture ("Nov 17"); -print ''; - -print ''; -blank (); -makelecture ("Nov 21"); -//makelab ("Nov 22"); -//makehomework("Nov 23"); -makeday ("Nov 22-24","Thanksgiving Break, no classes",3); -//makelecture ("Nov 24","Pass/No Credit Deadline"); -print ''; - -print ''; -blank (); -makelecture ("Nov 28"); -makelab ("Nov 29"); -makehomework("Nov 30"); -makelecture ("Dec 1"); - -print ''; - -print ''; -blank (); -makelecture ("Dec 5"); -makelab ("Dec 6"); -//makelab ("Dec 6","Last Day of Classes"); -makehomework("Dec 7"); -makelecture ("Dec 8"); -//makeday ("Dec 7-8","Reading Days",2); -print ''; - -print ''; -makeday ("Dec 11-13","Reading Days",3); -makeday ("Dec 14","Other RPI Final Exams",1,"grey"); -maketest ("Dec 15"); -//makelab ("Dec 6","Last Day of Classes"); -print ''; - -print ''; -makeday ("Dec 18-20","Other RPI Final Exams",3,"grey"); -//makeday ("May 1-5","RPI Final Exams",5,"grey"); -print ''; - -/* -print ''; -makeday ("Dec 12-14","Reading Days",1); -makeday ("Dec 15-16","Other RPI Final Exams",2,"grey"); -maketest ("Dec 17"); -makeday ("Dec 18","Other RPI Final Exams",1,"grey"); -print ''; - -print ''; -makeday ("Dec 21","Other RPI Final Exams",1,"grey"); -blank (4); -print ''; -*/ - - - -?> - - -
MondayTuesdayWednesdayThursdayFriday
- - diff --git a/php/crash_course_cpp_syntax.php b/php/crash_course_cpp_syntax.php deleted file mode 100755 index 1f988fd..0000000 --- a/php/crash_course_cpp_syntax.php +++ /dev/null @@ -1,74 +0,0 @@ - - - - - -

Crash Course in C++ Syntax

- -

-We have developed a set of lessons on Submitty that -aim to transition you from another programming language to C++. These -exercises are targeted to students who've successfully completed -Computer Science 1 at RPI and learned Python, or students who earned -college credit for the Computer Science AP Test in Java, or students -who have done other formal coursework in or self-taught Introductory -Programming. -

- -

-https://submitty.cs.rpi.edu/courses/f23/csci1199 -
-All Students registered for CSCI 1200 Data Structures, Fall 2023 -have been added to this second (not for credit, not for a grade) -Submitty course. Contact the instructor if you do not have -access. -

- -

-The problems were designed by members of the teaching staff with years - of experience working one-on-one with Data Structures students and - highlight some of the common C++ syntax that trip up new C++ - programmers. We recommend you read through the material and work - through the problems during the first week or two of Data - Structures. However, note that these exercises are completely - optional and will not be used to compute your final grade in Data - Structures. -

- -

-Some of these exercises are rather subtle. You many need to study the -code carefully to spot the differences. Carefully reading code is an -essential skill for all programmers. If a specific problem has -stumped you, please ask a member of the teaching staff in office -hours. -

- -

-Note: The exercises in the Crash Course for C++ Syntax -are NOT typical of the problems you will see on the -Data Structures tests and the final exam. The Data Structures test -questions will not focus on "tricks" of C++ syntax, but rather on bigger -picture, fundamental concepts of Data Structures theory and practice. -

- - -

- - Be sure to click through the other pages linked on the left sidebar menu. - -

- - - diff --git a/php/development_environment.php b/php/development_environment.php deleted file mode 100755 index c8ff04f..0000000 --- a/php/development_environment.php +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - -
- -

-Depending on the native operating system for your computer, you have -several different options for C++ development with GNU g++ or LLVM -clang++. More information on each choice is below and on other pages. -

- - -

Windows 10

- - - - -

MacOSX

- - - -

-Note: The memory debugging software has not yet be updated to run on the Mac M1/M2 ARM processors. -

- -

GNU/Linux

- - - - -
- -

-NOTE: It is possible to run a true dual-boot on Windows or Mac by -partitioning your hard drive and installing a GNU/Linux distribution -there, but it requires a more complicated setup. Only do this if you -really know what you're doing. Instructions exist online for how to -do this, but it is possible to brick your machine this way and course -staff won't necessarily be able to help you with any issues you -encounter. -

- - 
- - -

MacOSX XCode

- - -

-If you're using a Mac, you'll need to install XCode, which is a free -download from the Apple App store. XCode provides both a C++ compiler -(technically the LLVM clang++ compiler) and an -integrated development environment (IDE) similar to Microsoft's Visual -Studio. -

- - -

-Make sure to install XCode's "Command Line Tools" so that you can run -the compiler from the Terminal command line. NOTE: Even if you plan -to use the XCode IDE for the bulk of your development & testing, in -lab & office hours we will usually ask you to demo your program from -the Terminal command line. -

- - - 
- - - -

Ubuntu in VirtualBox

- -

-Here are some install instructions on installing Ubuntu in -VirtualBox. If you want a different operating system, you can -generally use the same instructions and just substitute the OS image -you have for the Ubuntu one referenced in the instructions. -

- - - - 
- - -

g++ or clang++ on Ubuntu:

- -

-Installing g++ or clang++ on Ubuntu (and many other GNU/Linux -variants) is as simple as running the following -commands in a terminal: -

- -
-    sudo apt-get install g++ gdb
-    sudo apt-get install clang-10 lldb
-    sudo apt-get install gcc-multilib g++-multilib
-
-
- -

- - Be sure to click through the other pages linked in the upper right - menu. - -

- - diff --git a/php/editors_ides.php b/php/editors_ides.php deleted file mode 100755 index 8576a14..0000000 --- a/php/editors_ides.php +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - -
- - -

Code (and Plaintext) Viewers/Editors

- -

-Many different text/code editors are available for all of the -different operating systems. You'll want to pick an helpful editor -that color-highlights your code and helps with indentation. Also note -that use and display of "newlines" in plaintext files is not -standardized on UNIX/GNU Linux platforms vs. Windows. There are several -characters that are used to represent end-of-line/carriage return. We -will always use '\n' (newline) in this course. This is the UNIX/GNU Linux -way. Please do not use '\m' or '\r' in this course, it won't match the -output we are expecting on the homework submission server. In order -to examine the provided code & sample output & your own output, you'll -want to make sure you find a text viewer/editor that correctly -displays newlines ('\n'). -

- - -

-Some recommended code/text editor options: -

- - - -

-Also, ask your graduate TAs & undergraduate programming mentors what -editor and/or integrated development environment (see below) they choose and why -it's their favorite. -

- - 
- - - -

C++ Compilers

- -

You may do your programming work for this course with -any C++ compiler and development environment you wish, but your -submitted homework code must compile and run on gcc/g++ 9.4 and -llvm/clang++ 10.0 on Ubuntu 20.04. We understand that some of you may -choose to use another compiler and development environment (e.g., -Microsoft Visual Studio) for most of your work. We are asking you to -write portable code (for g++/clang++) because it is good programming -practice and it allows us to significantly streamline the grading -process for your TAs. This leaves more time for us to give -constructive feedback on programming style, individual tutoring, and -debugging help.

- -

-The good news is that the gcc/g++ and/or clang/clang++ compilers are -available for every -operating system, and you have a variety of different options for -development environments. Note: Different -gcc/g++ or clang/clang++ -compiler version numbers are ok -- you will probably -not notice any differences. (Be sure to do a practice submit of -your homework early enough each week to allow time to correct -compilation issues.) -

- -

-We recommend the - - clang/LLVM compiler, which has earned much praise for having -clear and concise compiler error messages that are especially helpful -for new C++ programmers. Once setup on your system, you simply -substitute "clang++" for "g++" when you compile your -program. -

- -

Note on C++11/C++14/etc.: Many cool new C++ -language syntax features were introduced with C++11, C++14, and -beyond. Not all operating systems/compilers support these new -features out of the box (it is ok if your development environment does -not support C++11 or C++14). Similarly, many large long-term or legacy -open-source and commercial software projects cannot or choose not to use -use some of the newest features. - -We will avoid making use of these new features in most code -examples and homework assignments for the course. Similarly, we ask -that students limit the use of these features on their homework and -tests to avoid portability issues or other confusion during grading. -Some advanced features will not be allowed; for example, -to demonstrate knowledge and mastery of types, students -should explicitly write the type and not use the auto keyword -when declaring variables. Please ask on the -Discussion Forum -if you are unsure about whether you can use a specific syntax or function. -

- -

-We have organized alot of information on the
- -C++ Installation Choices for Your Operating System. -

- - 
- -

C++ IDEs (Integrated Development Environments)

- -

-It's possible to do all of your work for this course with a simple -text editor and command line compilation & running in a terminal. And -many of us on the teaching staff prefer to code like this even for -larger projects beyond this course! -

- -

-Alternatively, you can do your work inside an Integrated Development -Environment (IDE). Here are a few C++ development environments -(similar to Visual Studio) that can be used with the GNU g++ or LLVM -clang++ compilers. Note that the teaching staff many not be familiar -with these specific tools and may not be able to help you if you get -stuck. -

- - - - - - diff --git a/php/getting_help.php b/php/getting_help.php deleted file mode 100755 index 4ea5e3d..0000000 --- a/php/getting_help.php +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - - - -
- - - -

-Your work on the homeworks and the labs for this course should be -completed on your own, following the -Collaboration Policy. However, -you are encouraged to ask lots of questions about the material when -you get stuck. Please ask your instructor, graduate TAs, -undergraduate lab programming mentors, and fellow classmates for -help.

- -

-Don't be shy or worried if you can't always figure things out all -on your own. Please ask for help. We're happy to give -you hints, programming tips, and guide you through debugging. -

- - - - -

Submitty Discussion Forum

- -

-Post your questions about homework and general questions on the -Submitty Discussion Forum. The TAs, instructor, and other students will help answer -your questions. Be sure not to post partial or full solutions to the -lab or homework problems when asking your questions or answering a -classmate's question. Posting a line or two of code that is causing a -compiler syntax error is ok. -

- -

If you registered at least a week before the first day -of classes, you should be automatically added to Submitty, you will -use your RPI RCS username & password to log in. Contact the -instructor if you cannot access Submitty. -

- -

Instructor & TA Office Hours

- - -

-A very important resource for help outside of class are the instructor -and TA office hours. You may attend the office hours of any other TA -(not just your lab TA) for questions about the course material or the -homework. If you have questions about the grading of your homework, -please see the TA who graded your assignment during their regular -office hours or make an appointment. -

- - - - -

Additional Tutoring

- -

-In addition to the Instructor and TA Office Hours for the course, you -may also want to check out: - -

- -

- - Be sure to click through the other pages linked in the upper right - menu. - -

- - diff --git a/php/global_colors.php b/php/global_colors.php deleted file mode 100755 index 27cb24c..0000000 --- a/php/global_colors.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/php/good_programming.php b/php/good_programming.php deleted file mode 100755 index 1bc38ee..0000000 --- a/php/good_programming.php +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - -
- - -

Good Programming Practices

- - -

-Points for programming assignments are awarded for error-free -compilation, correct program output, and overall program -structure. The program structure grade is an evaluation of the -quality of your code. This includes the following: -

- - - -

Use the example code given in class, in lab, and in the textbooks -as guidelines. Programs that are unclear and do not compile will earn -little or no credit. -

- -

-Program correctness will be determined by evaluating your program on a -series of test data sets. We will make available some but not all of -this data, along with sample output, prior to the assignment due -date. This will help you judge the quality of your program, but will -not guarantee correct results on all data. You will need to ensure -this on your own by creating additional test cases. -

- -See also: - - - - 
- -

Examples of Commenting

- -

-Most functions should have at least one comment (usually at the top) -explaining what the function does. And functions of more than a -couple lines should have addtional comments explaining the logic -within the function body. Of course, in some situations, a function -does not need comments (when the function's behaviour is obvious). -

- -

-We suggest you avoid adding comments that do not help in the -understanding of the program. For example: -

- -
-  string getNameOfRecipe() { // function that gets the name of the recipe
-
-  }
-
- -

-The comment above is not useful (it is obvious -that getNameOfRecipe() is a function and it is obvious that -it returns the name of the recipe). However, if the name of the -function was getNR() it would be useful to add comments explaining -that this function returns the name of the recipe. NOTE: It is better to use -a descriptive name for the function than rely on comments! -

- -

-Another example: -

- -
-  double getRoot(double a,double b, double c) { // get root function
-    double d; // declare d as a double
-    d = b*b - 4*a*c;
-    double root = (-b + sqrt( d ))/(2*a); // compute the root
-    return root; // return the result
-  }
-
- -

-The comments above are also not useful (it is obvious that the return -statement returns something; it is obvious that this is the "get root -function"). -

- -

-Here is a much more informative commenting of the same code: -

- -
-  // This functions receives the coefficients of an equation in the form
-  // ax2+bx+c=0 and returns one of its roots.
-  // Attention:  We assume that the equation has at least one real root.
-  double getRoot(double a,double b, double c) {
-    double delta = b*b - 4*a*c;
-    // We use Bhaskara's formula to compute one of the roots
-    double root =  (-b + sqrt( delta ))/(2*a); 
-    return root;
-  }
-
- -

-  -

-

-See also the main Course Grades page, the -and the Programming Advice from TAs page for more -information. -

- - diff --git a/php/grading.php b/php/grading.php deleted file mode 100755 index 8429014..0000000 --- a/php/grading.php +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - -
- - - -

Submini Lecture Polls

- -

- Each lecture will include several multiple-choice polls that - will help you gauge your understanding of new - material and collect feedback for the teaching staff. Participation - and timely completion of these exercises is strongly encouraged; - however, Submini Lecture Polls - will not be directly factored into the semester average. -

- - -

Lab Assignments

- -

-There will be a total of 14 programming labs, one each week. Labs are -graded on a scale of 0-3, depending on the amount and quality of work -completed. Labs are designed so that students who work diligently can -earn all 3 points. You must attend your assigned lab section unless -prior arrangements have been made with the graduate TA for your lab -section (see Schedule). To receive credit -for the lab exercises, the work must be completed in lab and approved -by the lab TA before the end of lab -- 10 minutes before the hour. TAs -and undergraduate programming mentors are available in lab to answer -your questions as well as check off your work. Don't wait until the -end of lab to ask questions or show your work.

- -

Lab instructions and a subset of the lab problems will be posted -on the course website by Tuesday early evening, before each -Wednesday lab. Students are encouraged to read through the materials -and get started on the exercises before their assigned lab section. -Additional problems will be distributed at the start of the lab. -Students should bring their laptop, any optional references, and recent -lecture notes to lab.

- -

-Internet access during labs is restricted to lab file downloads and -standard programming reference material only. Reading or sending -email, instant messages, social media, text messages, cell phone use, -playing video games, etc. is disallowed during lab. Students who -violate the policy will receive a 0 for the lab and be asked to leave. -

- -

Homeworks

- -

-There will be 10 homework assignments, one each week, except for weeks -when a test is scheduled. Assignments will be submitted -electronically and are due on Thursdays by 11:59pm. Please do not -email your homework assignment to the instructor or graduate TA. -Homework assignments will be made available on the course web site at -least one week before the deadline and all material for the homework -will be covered by the end of Friday's lecture. Students are -encouraged to start the assignments over the weekend, and ask the -instructor and TAs questions about the homework on -the Discussion Forum or in office hours early -in the week. -

- -

-See the Homework Policies page, the Collaboration Policy & Academic Integrity page, the Good Programming Practices, and the Programming Advice from TAs page for more -information. -

- -

Tests and Final Exam

- -

Three tests will be given during the Thursday evening test block. -A cumulative final exam will be scheduled during finals week. These -are pencil-and-paper tests that will focus on problem solving by -writing C++ code. The exams will also include short answer and -diagram-based questions. Sample exam problems from prior semesters -will be distributed about a week before each exam.

- -

The course material is cumulative and students should strive to -improve their performance on each subsequent test. When a student -"beats" their previous test score, the previous test score will be -replaced with the average of the two scores. For example, if a -student gets a 70 on Test 1 and an 82 on Test 2, the first test score -will be replaced by the average of Tests 1 & 2 = 76. If the student -then earns an 88 on Test 3, the second test score will be replaced -with the average of 82 and 88 = 85. (Note that we don't go back and -re-adjust Test 1). And similarly, the score for Test 3 will be -adjusted if the student's performance on the final exam improves upon their -performance for Test 3.

- -

- Important Note: We will not provide a makeup exam unless the -absence is officially excused by the appropriate office.

- - -

Semester Average

- -

Your final grade in this class combines your performance on the -lab exercises, homeworks, and exams as follows: -

- - - -

All components of the class are graded on a curve. What does -this mean? The homeworks and exams will contain challenging -problems and the grade breakdown will likely be lower than the typical -90%=A, 80%=B, etc. We will announce the curve for each exam and -homework when the grades are returned.

- -

Important Note: You must have a passing average on each component (labs, -homeworks, and exams) in order to pass the course. -

- -

Rainbow Grades Summary

- -

Please regularly check the grades recorded in Rainbow -Grades on Submitty and let us know if you spot a data entry error. -This chart will allow you to gauge your overall performance relative -to the class average and the estimate for the grade boundaries. Here -is a example of what the grade summary will look like:

- - - -

- -

-Note: Because the exams and homeworks change from year-to-year, -the curve for each homework/exam and the final average will be -adjusted accordingly and will not be exactly the same as this -sample.

- - diff --git a/php/homework_policies.php b/php/homework_policies.php deleted file mode 100755 index 07136fa..0000000 --- a/php/homework_policies.php +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - -
- - - -

Electronic Submission

- -

Homework assignments are due Thursday nights at 11:59pm - (America/New York timezone). -Homework is submitted electronically -and submission times are judged by the webserver timestamp. If your -submission is one minute late, it is a day late, so we suggest that -you don't actually wait until the last minute. You may submit your -assignment multiple times -- we will only grade your last submission -(or you may specify which version we should grade). Please see -the Course Calendar for the homework assignments -and due dates.

- -

Note: Please do not email your -homework assignment to the instructor or the TAs (unless explicitly - requested to do so). -We will only grade material submitted to the -homework submission server. We can login and view your submitted -homework files if you encounter a problem at submission time. Please -check the discussion forum for announcements about the current -homework and ask a new question if you do not see a similar question and -answer that helps you. -

- -

Late Day Policy

- -

-Each student will initially be given one day (whole or partial) of -grace for late homework assignments. Through consistent participation -and solid performance on Lecture Participation Polls -each student may earn additional late days. -These grace days are intended to cover minor illnesses, hardware -malfunctions, and schedule conflicts with homeworks/tests in your -other classes. -

- -

-To use a late day, simply submit the assignment as normal through the -homework submission link. You do not need to notify your TA or -instructor. For example, an assignment submitted 22 hours late -(Friday evening at 10:00pm) counts as 1 late day used. As another -example, an assignment submitted 26 hours late (Saturday morning at -2:00am) counts as 2 late days used. No more than two late days -may be used for any one assignment. Once your late days have -been exhausted, late assignments will not be accepted without an -official excused absense.

- - -

-Students should use their late days carefully, saving them for the -latter part of the semester or (better yet) not using them at all. -

- - - -

Prepare Your Assignment for Submission

- -

- -Make sure you read and follow the -Collaboration Policy and Academic Integrity statement which -applies to all homework assignments. - -

- -

-Once you've finished writing, testing, debugging, and commenting your -code, re-read the assignment description and collect all of the -necessary files for submission. Be sure to include your plaintext -README.txt (use the provided template for the assignment), your .cpp -and .h code files, and any other files specifically requested for the -assignment. You do not need to include any compiled object files or -the executable. Submitty will ignore these files if they are -included. You do not need to include any of the provided input data -files or your output files for the basic homework --- these will be -re-generated by Submitty. But you should include any new data input -files and corresponding output for any extra credit you completed, as -described in the assignment description. -

- -

Next, click the "Gradeables" link from the top of the -left sidebar to access Submitty. You will use your RCS ID and -password to access this page. Access to Submitty is -automatically given to all registered students (but it can take a day -or two). Contact the instructor if you are registered for the course -but cannot successfully login to Submitty. -

- -

Choose the appropriate assignment from the navigation -page. Drag and drop your files into the indicated area(s) or click to -launch a file browser. Press "Submit" to upload your -homework. -

- -

Note: Please do not email your -homework assignment to the instructor or the TAs (unless explicitly -requested to do so). -

- - - - - - - - - -

Automated Compilation, Testing, and Grading

- -

Submitty will compile your code with Ubuntu 20.04 gcc/g++ -9.4 and/or llvm/clang++ 10.0 and then run the resulting executable on -several test cases. It will inform you of any compile, link, and -runtime errors or warnings and will present the results of these tests -for your review. Your grade for the homework will be a combination of -this online testing of your code and (later) a TA's review of the -structure, efficiency, and overall quality of your code (see -also Good Programming Practices and -Advice from TAs), plus the TA's -grading of any additional non-code parts of the assignment.

- -

You will have practice using the submission process during the -first lab. Please see a TA during office hours if you need additional -help writing portable code. -

- - -

Carefully check the result of your submission. Verify that all -necessary files were received by Submitty. Confirm that your code -compiled and ran successfully. If you find a mistake in your -homework, you can fix it and re-submit using the same procedure. We -will only grade the most recent submission. Please see a TA in office -hours if you need help preparing your assignment for successful -submission. If the automatic grading of your homework seems incorrect -or unfair please use the discussion forum and/or see the instructor or a -TA in office hours. You may make a note to the TAs in your README.txt -file about problems with the automated grading; however, the TAs will not -edit the automated grading scores. -

- -

-NOTE: Some of the automated test cases on Submitty -will be labeled "Hidden". These additional tests with novel -inputs are intended to prevent "hardcoding" to a limited set of known -inputs, and to encourage students to think carefully about "corner -cases" when writing their programs. Other than the title of the test -case, the details of these tests will not be made available to -students before the deadline. After the deadline has passed, and the -TAs have finished their manual grading, your numeric scores for the -hidden tests will be available, but the details of these tests will -probably remain hidden. Students may see the instructor or TA in -office hours to ask questions about the hidden test cases after grades -have been returned. -

- -

Note on # of submissions:

- -

-Do not use Submitty as -your sole development/testing platform. You should use your laptop as -your primary testing & debugging interface. However, don't wait until -the last minute to submit for the first time. You should do an early -practice submission of a partially working version of the homework to -confirm you are on the right track. A small point penalty will be -assessed if the count of your submission attempts is greater than 20 -for any one homework assignment.

- -

Note on submission file size:

- -

-If you accidentally include lots of unnecessary "stuff" in your -uploaded files, it may be too big for submission. If you think you -have included only the necessary files and yet Submitty still -complains about the size of your submission, please check the -Discussion Forum -for announcements, and ask a question if no one else -has yet encountered this problem for this homework -- please don't -send your homework files by email!

- - -

Note on the submission server:

- -

-If Submitty crashes or is unresponsive, or if your submission attempt -fails and you cannot make sense of the Submitty output, check -the Discussion -Forum for announcements, and ask a question if no one else -has yet encountered this problem for this homework -- please don't - send your homework files by email!

- - diff --git a/php/index.php b/php/index.php deleted file mode 100755 index 5d2d7a0..0000000 --- a/php/index.php +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - -

CSCI 1200 Data Structures Fall 2023

- - -

Instructors

-DS Instructor Mailing List *:
-
- - -

-

Dr. Jidong Xiao

-Office: Amos Eaton 206
- -Hours: Monday 2-3:50pm,
-       -     -immediately after lecture on Tuesdays & Fridays,
-       -     -and by appointment (send email with your complete schedule for the week, appointments are not for help with assignments) - -
-Webpage: http://www.cs.rpi.edu/~xiaoj8/
- - -
- - -

Instructional Support Coordinator: Shianne Hulbert

- -

-DS Instructor Mailing List *:
-Email *:
- - -
- - -

- -* For personal/confidential matters: -Please send all emails regarding -DS course policies and administration (e.g, registration, excused -absenses, personal accommodations, etc.) to the DS Instructor Mailing -List, which is received by both the Instructor and the Instructional -Support Coordinator. -
-
-

- -

- -For general course questions: -Please use the - - Discussion Forum. This allows us to most efficiently -answer questions that other students may also have. Thank you! -
-
-

- - - -
- - -

Graduate Student Teaching Assistants / Course Assistants

- - - -

-Conor Flynn
-Email:
-

-
-

-Yuxuan Zhu
-Email:
-

-
-

-Matthew Pisano
-Email:
-

-
-

-Shuhang Tan
-Email:
-

-
-

-Ron Rattanakornphan
-Email:
-

-
-

-Kajsa Arnold
-Email:
-

-
-
- -

 

- - -

-See the weekly schedule page for office -hours and check -the Discussion -Forum for any announcements of changes to the office hours schedule. - -

- - - -

 

- - - - - diff --git a/php/installation_test.php b/php/installation_test.php deleted file mode 100755 index 90b156a..0000000 --- a/php/installation_test.php +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - -
- - -

Simple Test of Compilation

- - -
    - -
  1. -

    -To check that you're good to go, download this simple program and save -it into your data structures course directory: -

    - -temperature.cpp -
    -
    - -
  2. -

    -Open a terminal and change directory to navigate to your data structures directory: -

    - -
    -    cd INSERT_DATA_STRUCTURES_DIRECTORY_NAME
    -
    -
    - -
  3. -

    -Confirm you're in the right location by listing the directory contents typing: -

    - -
    -    ls
    -
    -
    - -

    -You should see the file temperature.cpp and maybe some other stuff. -

    - - -
  4. -

    -Compile the temperature program by typing: -

    - -
    -  g++ -Wall -g temperature.cpp -o temperature.out
    -
    -
    - -

    -(Alternatively, use clang++ instead of g++.) This -should creates an executable named temperature.out. Type ls -again to confirm the executable appeared! -

    - -
  5. -

    -Now run that executable: -

    -
    -  ./temperature.out
    -
    -
    - -

    -And you should be able to interact with this program at the keyboard. -

    -
- - - 
- - -

Simple Test of Terminating an Infinite Loop

- - -
    - -
  1. -

    -Download and save this file to your data structures directory: -

    - -infinite_loop.cpp -
    -
    - -
  2. -

    -Compile and run this program. It should start printing dots and not -stop. -

    - -
  3. -

    -Now let's confirm that your computer is spending alot of CPU resources -on this infinite loop. We'll view the list of all programs running on -your computer sorted by CPU usage. -

    - -
      - -
    • -

      -On Mac or Linux or WSL, in another terminal type: -

      - -
      -    top -o %CPU
      -
      -
      - -

      You should see the program name at or near the top of the list. -And it should be using a large amount of CPU (depending on the number -of processors on your machine). - -

    • -

      -On Windows: -

      - - -
        -
      1. Search for and launch "Task Manager" - -
      2. Click "More Details" - -
      3. Click on the "CPU" column -
      - -

      You should see the program name at or near the top of the list. -And it should be using a large amount of CPU (depending on the number -of processors on your machine). -

    - - -
  4. -

    -Confirm that you can terminate the runaway program by pressing Ctrl-c. -

    - -
- - - - 
- - -

Simple Test of Memory Debugger Installation & Usage

- -
    -
  1. -

    -Download and save this short (intentionally buggy) program: -

    - -memory_bugs.cpp -
    -
    - -
  2. -

    -Follow the instructions for your system to compile and run this program for -Memory Debugging. -

    - -
  3. -

    -Now run the program under the memory debugger and locate the report -generated by the memory debugger. (It may be printed directly to the -terminal and/or saved to a file.) -

    - -
- -

-NOTE: The memory debugger report contains lots of data which can -be intimidating the first time you see it. This tiny program has 4 -different errors! We'll discuss the code, and the errors, and how to -understand this report a few weeks into the term. -

- - - - - 
- - - -

Simple Test of the Traditional Debugger

- -
    - -
  1. Launch the temperature program (or another executable) inside of the gdb debugger: -

    - -
    -    gdb ./temperature.out
    -
    -
    - -
  2. At the gdb prompt, start the program:

    - -
    -    run
    -
    -
    - -
  3. If the program is still running, press Ctrl-C. To see the -stack backtrace of the program (listing the functions you are in the -middle of), type: -

    - -
    -    bt
    -
    -
    - -
  4. -Finally, close gdb: - -

    -    quit
    -
    -
    - -

    -(You will have to press 'y' if the program is still running.) -

    - -
- - -

-If you're using LLVM's clang++ instead of g++, you'll also use LLVM's -lldb instead of gdb. The above commands are the -same (just substitute lldb for gdb), and many of the -other commands are similar: -

- -

-     -A handy table of the different gdb/lldb commands -

-
- -

-NOTE: The traditional debugger has many powerful features that you -should learn over the term. Follow online tutorials and ask for help -in lab and office hours to most effectively debug your programming -assignments. -

- - - - - - 
- - - diff --git a/php/lecture_polls.php b/php/lecture_polls.php deleted file mode 100755 index 4e04212..0000000 --- a/php/lecture_polls.php +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - -
- - -

-We will use Submitty to collect answers to simple multiple-choice -questions during lecture (Tuesdays & Fridays). These lecture -participation polls help increase engagement in lectures and allow the -instructor to gauge student understanding & absorption of the -material. You are encouraged to discuss the questions with the -classmates sitting around you. -

- -

Participation Incentives

- -

-Lecture participation polls will not be directly factored into the -semester grade. However, as an incentive for participation and correct -answers to these exercises, students will be able to earn extra - -homework late days. -

- - -

-We will generally have 4-6 lecture participation poll questions per lecture. -Participation in a poll question (no correct answer) is worth 1.0 -points. A correct answer on a non-poll question is worth 1.0 points. -An incorrect answer on a non-poll question is worth 0.5 points. No -answer on either a poll or non-poll question is 0.0 points. -

- -

-After earning your first 15.0 lecture participation points, you will receive -an extra homework late day. And for every 30.0 lecture participation points after -that you will receive one additional homework late day. Earned late -days may not be applied to previous homeworks. You must have earned -the late day before the homework deadline in order to use the late day -on that assignment. Specifically, if your poll participation during a Friday -lecture earn you a late day, you may not use that late day on the -assignment that was due the night before. -

- - -

Academic Dishonesty

- -

-Responding to lecture poll questions with another -individual's account -constitutes academic dishonesty. -If we find anyone submitting answers or using the account of another -individual we will zero the lecture participation points of all -involved students and report the incident to the Dean of Students. -

- - - - diff --git a/php/memory_debugging.php b/php/memory_debugging.php deleted file mode 100755 index 2e6772b..0000000 --- a/php/memory_debugging.php +++ /dev/null @@ -1,583 +0,0 @@ - - - - - - - - - -
- -

-Segmentation faults and other memory bugs (reading uninitialized -memory, reading/writing beyond the bounds of an array, memory leaks, -etc.) can be hard to track down with a traditional debugger. Memory -errors can be elusive, and may not cause the program to crash -immediately. A program with memory errors may even appear to work -correctly on some datasets or on some machines. -

- -

We recommend using a special debugger to find memory errors, for -example Dr. Memory or -Valgrind. Commercial -versions of these tools include Purify and -Insure++. -

- -

We'll discuss the Dr. Memory and Valgrind memory debugging tools -and the memory error reports these tools produce at the end of Lecture -7 and during Lab 5. You'll be expected to use one of these tools for -debugging starting with Homework 3. The homework submission server -and the TAs will use these tools for grading your homework. - -

- Note that running a program under Dr. Memory or Valgrind will slow the - execution time significantly. The final step to check for memory - leaks is especially costly. We recommend starting with the the - smallest tests/input file, even if those appear to be working ok. - Fix any memory errors or leaks that are found, then work your way - to largest test cases, and be patient. - -

- - - - - -

Dr. Memory

- -

-Dr. Memory is available for -GNU/Linux, Microsoft Windows, and MacOS operating systems. For -questions, bug reports, and discussion, use the Dr. Memory Users -group: - -http://groups.google.com/group/drmemory-users - -

- -

-Please report issues with Dr. Memory to the - -Dr. Memory Users Group by email: -drmemory-users@googlegroups.com. Be sure to include details -about your operating system and the Dr. Memory version number. Don't -send your full homework submission (it is a public mailing list). -

- - -

Dr. Memory on GNU/Linux or Windows Subsystem for Linux (WSL)

- - -
    -
  1. -

    -Obtain the most recent Dr. Memory tar.gz file for your operating system from:
    -https://github.com/DynamoRIO/drmemory/releases/ - -

    - -

    -In the example below, we assume - - DrMemory-Linux-2.4.0-2.tar.gz - is the most recent release. -

    - -

    -Type these commands into your terminal:
      -

    - -
    -  cd
    -
    -  wget https://github.com/DynamoRIO/drmemory/releases/download/release_2.4.0/DrMemory-Linux-2.4.0-2.tar.gz
    -
    -  tar -xvzf DrMemory-Linux-2.4.0-2.tar.gz
    -
    -
    - -
  2. -

    -Build your application with debug information by using the -g option. For example: -

    - -
    -  g++ -g main.cpp foo_main.cpp foo_other.cpp -o foo.out
    -
    -
    - -
  3. -

    -Run your program under Dr. Memory, replacing foo.out arg1 arg2 with your executable name and any - command line arguments: -

    - -
    -  ~/DrMemory-Linux-2.4.0-2/bin64/drmemory -brief -- foo.out arg1 arg2
    -
    -
    - -
  4. -

    -Dr. Memory will report errors to the screen as it runs. It will print -a summary at the end of what it found. -

    - - -
  5. -

    -OPTIONAL: -Add Dr. Memory to your PATH by typing this at the WSL bash prompt: -

    - -
    -  echo 'PATH=$PATH:~/DrMemory-Linux-2.4.0-2/bin64' >> ~/.bashrc
    -
    -  source ~/.bashrc
    -
    -
    - -

    -NOTE: Do not attempt to edit WSL system files from Windows. The -permissions and filesystem will get messed up and you'll need to -reinstall everything to recover. -

    - -

    -After adding Dr. Memory to your PATH, you can simply type: -

    - -
    -  drmemory -brief -- foo.out arg1 arg2
    -
    -
    - -
- - -

Dr. Memory on MacOS

- -

-Note: Dr. Memory has not yet been updated to run on the Mac M1/M2 ARM processors. -

- -
    -
  1. -

    -Obtain the most recent Dr. Memory tar.gz file for your operating system from:
    -https://github.com/DynamoRIO/drmemory/releases/ - -

    - -

    -In the example below, we assume - - DrMemory-MacOS-2.4.0-2.tar.gz - is the most recent release. -

    - -
  2. -Save the package to a directory of your choice. Then untar the package by typing: -

    -
  3. - -
    -  tar -xvzf DrMemory-MacOS-2.4.0-2.tar.gz
    -
    -
    - - -
  4. Be sure to build your application with debug information, the -g option, - so you get line numbers. For example: -

    -
  5. - -
    -  g++ -g main.cpp foo_main.cpp foo_other.cpp -o foo.out
    -
    -
    - - -
  6. -Run your program under Dr. Memory, replacing foo.out arg1 arg2 -with your executable name and any command line arguments: -

    -
  7. - -
    -  ~/DrMemory-MacOS-2.4.0-2/bin64/drmemory -brief -- ./foo.out arg1 arg2
    -
    -
    - -
  8. Dr. Memory will report errors to the screen as it runs. It will print a - summary at the end of what it found. -

    - - -
  9. - OPTIONAL: Edit -your ~/.zshrc file to add the location of the DrMemory - executable to your PATH.

    - -

    - Open this file, or create an empty -file if you have none. Edit your PATH variable to insert full path for the -DrMemory bin64 directory. The PATH is the sequence - of directories (separated by ':') that are checked when you run a program. -For example:

    - -
    -  export PATH=$HOME/bin:/usr/local/bin:/Users/INSERT-YOUR-USERNAME/DrMemory-MacOS-2.4.0-2/bin64/
    -
    -
    - -

    -Make sure to replace INSERT-YOUR-USERNAME and -DrMemory-YourOperatingSystem-VersionXX. Close and re-open your -terminal. Then you can simply type: -

    - -
    -  drmemory -brief -- foo.out arg1 arg2
    -
    -
    - - - -
- - - - -

Installing Dr. Memory on Windows (not Windows Subsystem for Linux (WSL))

- -
    -
  1. Obtain Dr. Memory. To easily place it on the system path, -use the installer (the .msi file). Alternatively, you can -instead obtain the .zip file for a local install.
    - -https://github.com/DynamoRIO/drmemory/wiki/Downloads - -

    - - -
  2. -Double click on the .msi file to run the installer. -Click Next. -

    - -

    -Check the box to accept the license and click Next. -

    - - -

    -The default location for Dr. Memory installation is fine -(it's probably C:\Program Files (x86)\Dr. Memory\ for 64-bit Windows). -Click Next. -

    - - -

    -Then click Install. You'll be asked to confirm that you want to make -administrative changes to the machine. -

    - -

    -After a quick installation, press Finish. -

    - -
  3. -Follow the instructions below to compile & run your program -using the Visual Studio IDE or the Visual Studio Command -Prompt. -

    - -
- -

Dr. Memory and Visual Studio

- -

-You can use Dr. Memory with the Microsoft Visual Studio compiler: -

- -
    - - -
  1. Build your application as 32-bit with Visual Studio (32-bit is -the default). Be sure to include debug information. You can verify -that you are including debug information by looking at the properties -of your build target: -

    - -

    Press Alt-F7 to bring up the configuration properties. -Under "Configuration Properties | C/C++ | General", the "Debug -Information Format" entry should either say "Program Database (/Zi)" -or "Program Database for Edit and Continue (/ZI)". Additionally, under -"Configuration Properties | Linker | Debugging", the "Generate Debug -Info" entry should say "Yes (/DEBUG)". -For Visual Studio 2015, under "Configuration Properties | Linker | -Debugging", the "Generate Debug Info" entry should say "Optimize -for debugging (/DEBUG)" -- it should not say "Optimize -for faster linking (/DEBUG:FASTLINK)". -

    - -
  2. Disable Runtime Checks: The Visual Studio compiler's -/RTC1 flag can prevent Dr. Memory from reporting -uninitialized reads of local variables, and the /RTC1 checks -for uninitialized reads themselves may not catch everything that -Dr. Memory finds. However, /RTC1 does perform additional -stack checks that Dr. Memory does not, so for best results, your -application should be run under Dr. Memory without /RTC1, and -run natively (for development & testing without Dr. Memory) with -/RTC1.

    - -

    In the Visual Studio IDE, press Alt-F7 and then under -"Configuration Properties | C/C++ | Code Generation" ensure "Basic -Runtime Checks" says "Default". -

    - -
  3. -

    The most recent Dr. Memory installer (for version 1.8 and later) -configures Dr. Memory as a Visual Studio "External Tool", which adds a -new menu item allowing you to run Dr. Memory within the IDE. -

    - -

    -Now you can select the "Tools | Dr. Memory" menu item and Visual -Studio will run your application under Dr. Memory. You can add -arguments to your application in the box that pops up immediately -after selecting the men item by adding them at the end, after "$(TargetPath)". -

    - -
  4. The output of Dr. Memory (along with your program) will be -printed to the Visual Studio Output Window. Dr. Memory will report -errors to the screen as it runs. It will print a summary at the end -of what it found. You can double-click on a source file on any -error's callstack frame in order to automatically open up that file to the -line number indicated.

    - -
- - -

Using the Visual Studio compiler without the Visual Studio Integrated -Development Environment (IDE)

- - -
    - -
  1. -

    -Launch the Visual Studio Command Prompt. From the Start menu, -under All Programs, find your Visual Studio version (e.g., 2010) and -expand it. Then expand Visual Studio Tools. Select the "Visual -Studio 2010 Command Prompt". (You don't want the x64 or Cross Tools -versions.) -Note: this is not the Cygwin shell. -

    - -

    This Command Prompt is a cmd shell in which a batch file that -comes with Visual Studio has been executed. This batch file is called -vcvars.bat and it sets up the path and environment variables -needed to run the compiler from the command line. -

    - -

    -Note: You can extract the environment variables from the batch file and set them -up in your .bashrc so you can build from a shell. -

    - -
  2. At the command line, change to the directory containing your -source files. -

    - -
  3. - Run the compiler, which is called "cl". This will build -hw.exe from all .cpp files in the current directory: -

    -
  4. - -
    -  cl /Zi /MT /EHsc /Oy- /Ob0 /Fehw.exe *.cpp
    -
    -
    - -
  5. -

    - If you installed Dr. Memory before you opened the Command Prompt, you - can run drmemory from the same prompt. - Run this command, replacing foo.exe arg1 arg2 - with your executable name and any command line arguments: -

    -
  6. - -
    -  drmemory -brief -batch -- foo.exe arg1 arg2
    -
    -
    - -

    -If you don't see any extra output from Dr. Memory as your program -runs, remove the -batch flag and the Dr. Memory output will be sent to -a file and notepad will launch automatically to display this file. -

    - - -
    -  drmemory -brief -- foo.exe arg1 arg2
    -
    -
    - -
  7. -Dr. Memory will print a summary at the end of what errors it found. -

    - -
- - - - - -

Valgrind

- -

-Valgrind only works on Unix-based -systems (e.g., GNU/Linux, FreeBSD, and WSL). - -

-Unfortunately, Valgrind does not work on more recent versions -of MacOS (it only runs on MacOS 10.12 or earlier). - -

-Valgrind does not work on Cygwin because Cygwin -emulates UNIX at the library layer, but Valgrind operates at the -system call layer and the Windows system calls are significantly -different than UNIX system calls. -

- -

-To use Valgrind... -

- - -
    - -
  1. -

    -Valgrind is installed by default on most Linux distributions. -

    - -
  2. Your program should be compiled with debug information enabled - by specifying the -g flag. For example: -

    -
  3. - -
    -  g++ -g main.cpp foo_main.cpp foo_other.cpp -o foo.out 
    -
    -
    - -
  4. Then run the program by adding Valgrind to the beginning of -your command line (replace foo.out arg1 arg2 with your -program name and any command line arguments for your program): -

    -
  5. - -
    -  valgrind --leak-check=full --show-reachable=yes ./foo.out arg1 arg2
    -
    -
    - -

    -If that example run of your program contains any memory errors -Valgrind will output information to help you track down the error. -Note that using Valgrind can significantly slow down execution time as -it inspects every memory action. You may need to craft a smaller test -case that exhibits the same bug you would like to solve. -

    - -
- -

-Note: Because some STL classes (including string) use their -own allocators (and do other optimization tricks), there may be a -warning about memory that is ``still reachable'' even though you've -deleted all your dynamically allocated memory. The newer versions of -Valgrind automatically suppresses some of these common false positive -errors, so you may see this listed as a ``suppressed leak''. -

- - - -

Suppression of False Positives in Valgrind

- -

-If you see false positive error messages in Valgrind, you will -probably want to create an error suppression file to allow you to focus on your actual errors. -

- -
    -
  1. Add the --gen-suppressions=all option to the valgrind command line:

    -
  2. - -
    -  valgrind --leak-check=full --gen-suppressions=all ./foo.out arg1 arg2
    -
    -
    - -
  3. -

    - For each false positive (an error not obviously pointing at your - code), copy-paste the suppression text (a block of text in curly - braces) into a new file containing your custom suppressions, let's - call it my_suppressions.txt.

    - -

  4. Use that suppression file every time you run Valgrind: -
  5. -
    -  valgrind --leak-check=full --suppressions=my_suppressions.txt ./foo.out arg1 arg2
    -
    -
    - -
  6. You may need to add to that file in the future, when you use -additional library functions that cause different false positive errors.

    - -
- -

-Read more about Valgrind suppressions here:
- -http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress -

- - - - diff --git a/php/programming_information.php b/php/programming_information.php deleted file mode 100755 index 6b853b9..0000000 --- a/php/programming_information.php +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - - - -
- -

-The following C++ programming details will helpful in completing the -initial homeworks for the course. -

- -

Command Line Arguments

- -

-Most of the programs we write will expect additional information from -the user when the program is launched. We will do this by providing -this data on the command line: -

- -
-  ./my_program.exe blue 3.14159 my_input_data_file.txt my_output_data_file.txt
-
-
- -

-In order for your program to receive arguments from the command line, -you will make use of the optional arguments to the main -function. Here is the prototype: -

- -
-  int main(int argc, char* argv[])
-
-
- -

The parameter argc contains the number of strings on the -command line, including the executable name. For the example above, -argc = 5. The array argv stores those C-style -strings. You can access the executable name with -argv[0] and the arguments with argv[1], -argv[2], etc.

- -

-Important Note: To compare command line argument strings -using the == operator, you must cast this data to a - STL C++-style string: -

- -
-  if (std::string(argv[1]) == std::string("blue")) {
-     std::cout << "my favorite color is blue too!" << std::endl;
-  }
-
-
- -

Command Line Arguments in Visual Studio

- -

-You can also specify command line arguments when running the program -inside of the Visual Studio development environment. Go to "Project" -→ "Properties" → "Configuration Properties" → "Debugging" and in -"Command arguments" enter: -

- -
-  blue 3.14159 my_input_data_file.txt my_output_data_file.txt
-
-
- -

-Note, that the default directory for files is the working directory. -

- - -

Converting a C/C++ String to an Integer or Floating Point Value

- -

- -This is done using the atoi (char-to-integer) and atof -(char-to-float) functions. First, be sure to #include -<cstdlib>. Then, to convert a C++-style STL -std::string variable to an int:

- -
-  std::string my_stl_string = "17";
-  int x = atoi(my_stl_string.c_str());
-
-
- -

-Alternatively, if you are compiling with C++11 (or greater) you can use -a similar C++ version of this function: - - -

-  std::string my_stl_string = "17";
-  int x = std::stoi(my_stl_string);
-
-
- - -

-And to convert C-style char array (C-style string) to a float: -

- -
-  char* my_char_string = argv[2];
-  float y = atof(my_char_string);
-
-
- -

-Or similarly, std::stof. -

- - -

Reading From & Writing To Files

- -

The STL streams std::cin & std::cout are used to -read data from and write data to the "console". Often, we would -rather read data from a file and/or write the output to a file. We -can do this using the STL file stream library:

- -
-  #include <fstream>
-
-
- -

-Here's an example fragment of code that attempts to open an input -file stream for a file name specified on the command line above: -

- -
-  std::ifstream in_str(argv[3]);
-
-
- -

-It is good coding practice to verify that the input stream was -successfully opened: -

- -
-  if (!in_str.good()) {
-    std::cerr << "Can't open " << argv[3] << " to read.\n";
-    exit(1);
-  }
-
-
- -

-Likewise here's how to open a stream for output: -

- -
-  std::ofstream out_str(argv[4]);
-  if (!out_str.good()) {
-    std::cerr << "Can't open " << argv[4] << " to write.\n";
-    exit(1);
-  }
-
-
- -

-Once the streams are created, you can use in_str & -out_str just like you use std::cin & -std::cout. -

- -

-In general, for this course, we encourage you to use the stream -operator>> for all input parsing, rather than using -getline, eof, getc, etc. We will not deduct -points for using the other methods of parsing, but we have designed -the assignment input format specifications for easy parsing with >>. -

- -

Note that the following code has a bug. If the input file ends -with one or more extra newlines, the inner loop will "do something" -with the last successfully read element twice. It is important to -check the return value of each >> expression to be sure -the read was successful. -

- -
-  while (!in_str.eof()) {
-    in_str >> my_variable;
-    // do something with my_variable
-  }
-
-
- -

-A simpler and more robust way to write the same code is: -

- -
-  while (in_str >> my_variable) {
-    // do something with my_variable
-  }
-
-
- -

File Parsing Example with different data types

- -

-For example, if your input file contains family last name, number of children, and ages of the children: -

-
-  Smith   3   4.5   6.0   8.1
-  Jones   1  13.6
-  Lee     2   1.5   4.2
-
-
- -

-Here is code to read all of this data: -

- -
-  std::string last_name;
-  int num_children;
-  std::vector<float> ages;
-  float tmp;
-  while (in_str >> last_name) {
-    in_str >> num_children;
-    // error checking to make sure num_children is not negative
-    assert (num_children >= 0);				  
-    // clear out ages data from the last family
-    ages.clear();  
-    for (int i = 0; i < num_children; i++) {
-       in_str >> tmp;
-       ages.push_back(tmp);
-    }				  
-    // Do something interesting with the last_name and ages variables!
-  }
-
-
- -

-Note that we do not use getline or attempt to find a newline -character, so we are not relying on the newlines or spaces or tabs -being in specific places in the file. We only assume that data is -consistent -- the number of children is non-negative and the number of -floats matches the specified number of children. We could do more -error checking on each >> operation to make sure each read did not -fail, but most of the time in this course its ok to assume the input -won't be terribly broken. If there is an error in the input, this -code will get confused and break or crash. Robustly handling all -broken input is beyond the scope of this course. - - - -

Comparing Two Text Files

- -

To check the correctness of your program, you can compare your -output text file to the provided sample output text file using the -UNIX utility diff (available on Linux & WSL & MacOSX): -

- -
-  diff my_output.txt sample_output.txt
-
-
- -

Any lines in the two files that are not identical (including -whitespace), will be printed to the console. WinDiff is another -option for Windows users. Please see a TA or the instructor in office -hours if you have a question about these programs. -

- -

Redirecting Input & Output

- -

What if you have an interactive program that uses -std::cin & std::cout to read from and write to the -"console", but you'd like to take the input from a file and you'd -rather not rewrite the program to use the input & output streams -described above? This following trick is handy for repeated testing -and debugging an interactive program (you'd rather not have to -manually type in the same input test data many times). Asking the -executable to read from a file instead of the console and/or write to -a file instead of the console is called I/O redirection.

- - - - - -

-You can do the same thing in Visual Studio. (See section on "Command Line -Arguments in Visual Studio" above). -

- - - - diff --git a/php/references.php b/php/references.php deleted file mode 100755 index 5989423..0000000 --- a/php/references.php +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - -
- -

-The lecture notes posted on this website will be a complete but terse -presentation of the material covered in the course. You are -encouraged to make use of additional reference material to explain any -material you find confusing in more depth. -

- -

Textbooks

- -

-The following books are optional (recommended but not -required). The course will follow primarily the order of Ford -and Topp. Some of the lectures are based on material in Koenig and -Moo. Students are encouraged to have available a C++ reference book, -such as those by Malik or Stroustrup, and/or use on-line reference -material. -

- - - -

Web Resources

- -

-Here are several websites you should find helpful. Feel free to -search for and share other web resources. -

- - - - -

 

- - -

- -See the Helpful C++ Programming Notes -page for information on C++ command line arguments, file I/O, and -redirecting standard input & output to files. - -

- - - diff --git a/php/schedule.php b/php/schedule.php deleted file mode 100755 index 73f08b5..0000000 --- a/php/schedule.php +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - -

Weekly Lab & Office Hours Schedule

- - -

-Please attend your assigned lab section and get to know your lab TA, -the undergraduate mentors, and the other students in your lab section. -Contact your graduate lab TA in advance to re-schedule if you -can't make your lab section for a particular week. - -NOTE: Requests for extensions for homework assignments or makeup exams - must be -verified -by the appropriate office, who will send a written note to -the course instructor. -

- -

-Your graduate lab TA is your first point of contact for this course. -You may also attend the office hours of any other TA or the instructor -for questions about the course material or the homework. If you have -questions about the grading of your homework, please see the TA who -graded your assignment during their regular office hours or make an -appointment. Please also check the Discussion Forum for announcements of schedule changes. -

- -

When you seek help on a programming assignment from a TA or from -the instructor during office hours, you must arrive prepared with a -list of problems and questions. Students who are not prepared will be -turned away. -

- -

-During busy office hours (Wednesday and Thursday office hours tend to -be the most crowded) we will be using the - - Submitty Office Hours Help Queue -to ensure that -everyone has a fair turn getting help. -

- -
- -

- All times below are the - America/New York timezone. -

- -
- - - -Nate, & Osama",1,"11%"); -schedule_lab("2","10-11:50am","J-ROWL 2C30","Weiran","Youssef, Ethan,
Frank, & Marisa",1,"11%"); -schedule_lab("15","10-11:50am","PITTS 4114","Cameron","Paul, George,
Victor, & Wendy",1,"11%"); -blank(4);*/ - -schedule_lab("1","10-11:50am","Lally 102","Conor","Anthony, Daniel & Ryon",1,"11%"); //35 -schedule_lab("2","10-11:50am","Lally 104","Ron"," Sharat, Chaitanya & Xenia",1,"11%"); //35 -//schedule_lab("15","10-11:50am","Sage 4101","Connor","Evan, Niels & Ryon",1,"11%"); //35 -blank(4); -//schedule_alac("1/23","Wed 10:00-11:50am","ALAC tutoring space, 1st floor Library"); - -blank(4); -blank(4); -blank(4); -row_end(); - -row_begin(); -row_end(); - -/* -------------- 11 AM ----------------------------------------------------------------- */ - -row_begin("11am"); - -//schedule_misc("Homework Released",2); -row_end(); - -row_begin(); -row_end(); - -/* -------------- NOON ----------------------------------------------------------------- */ - -row_begin("12pm"); - -blank(4); - -/* -schedule_lab("3","noon-1:50pm","Lally 102","Cameron","Paul, Tyler,
George, & Abby(50%)",1,"11%"); -schedule_lab("4","noon-1:50pm","Lally 104","Tim","Eric P., Matt,
Vikram, & Abby(50%)",1,"11%"); -schedule_lab("11","noon-1:50pm","JROWL 2C30","Josh","Brian, Yang,
Ryan, & Wendy",1,"11%"); -blank(4); - -// Thursday -schedule_ta_officehours("12-2pm
TA: Tim
mentors: Hayes
& Osama

2-4pm
TA: Farhad
mentors: Abby,
Coen, & Matt
 
4-6pm
TA: Milo
mentors: Alex,
Grace, & Wendy"," 
Folsom Library
ALAC Tutoring Space
(SE corner of
lower level)",12); -*/ - -blank(4); -//Fu, Anthony, -schedule_lab("3","12-1:50pm","Lally 102","Conor","Jessica, Ronin & Ryon",1,"11%"); //35 -schedule_lab("4","12-1:50pm","Lally 104","Ron","Anthony, Amelia & Kiron",1,"11%"); //35 TBD1 -//schedule_lab("11","noon-1:50pm","Sage 4101","Connor & Xiaoyu","Amelia, Eleanor & Yash",1,"11%"); //18 -blank(4); - -// Thursday -//schedule_ta_officehours("12-1:50pm
mentors: Jack & Kajsa","VCC 208",8); -schedule_ta_officehours("12-1:50pm
mentors: Jack & Kajsa
VCC 208
 
2-3:50pm
mentors: Charles, Anna & Nicole
JEC 3210
 
4-5:50pm
TA: Ron
mentors: Jack & Nikul & Samir
JEC 4309
 
6-7:50pm
TA: Yuxuan
mentors: Braeden & Nicole & Kaelan
JEC 4309"," 
",16); - -//Folsom Library
ALAC Tutoring Space
(SE corner of
lower level) - -blank(4); -blank(4); - -row_end(); - -// 12:30 -row_begin(); -row_end(); - -/* -------------- 1 PM ----------------------------------------------------------------- */ - -row_begin("1pm"); -//schedule_instructor_officehours("Prof Cutler", "Lally 302","4","1-3pm"); -row_end(); - -row_begin(); -//schedule_instructor_officehours("Prof Plum", "Eaton 205","4","1-3pm"); -row_end(); - -/* -------------- 2 PM ----------------------------------------------------------------- */ - -row_begin("2pm"); -schedule_instructor_officehours("Jidong", "AE 206","4","2-3:50pm"); - -//schedule_lecture("2-3:50pm","DCC 308"); -//schedule_lecture_split("9-16","2-3:50pm","DCC 308"); -//schedule_instructor_officehours("Prof Plum*","See footnote",1,"1:45-2:15pm"); -//schedule_lecture("2-3:50pm","ONLINE"); -schedule_lecture("2-3:50pm","West Hall Auditorium"); - -/*schedule_lab("5","2-3:50pm","Lally 102","Milo","Alex, Anshul,
Tyler, & Sinclair(50%)",1,"11%"); -schedule_lab("6","2-3:50pm","Lally 104","Tim","Julian, Terry,
Victor, & Sinclair(50%)",1,"11%"); -schedule_lab("12","2-3:50pm","Eaton 216","Jianhui","Coen, Grace & Andrea",1,"11%"); - -schedule_ta_officehours("4-6pm
TA: Maurício
mentors: Hayes,
Sinclair, & Winona
 
6-8pm
TA: Milo
mentors: Cass,
Eric W., & Jakob"," 
J-ROWL 2C30
",8); -*/ - -//Tyler B., Ryon, Yash, Ali, Maryellen, Theodore, Jody, Jessica -schedule_lab("5","2-3:50pm","Lally 102","Shuhang","Alexander, Quinn & Eleanor",1,"11%"); //35 -schedule_lab("6","2-3:50pm","Lally 104","Yuxuan","Ronin, Shimu & Nikul",1,"11%"); //35 -//schedule_lab("12","2-3:50pm","Sage 4101","Abby & Nia","David, Samir, & Xenia",1,"11%"); //34 - -blank(4); -blank(4); - -//schedule_lecture_split("9-16","2-3:50pm","DCC 308"); -//schedule_lecture_split_andrew("9-16","2-3:50pm","DCC 308","Andrew A.","2-2:50pm","DCC 235"); -//schedule_instructor_officehours("Prof Plum*","See footnote",1,"1:45-2:15pm"); -//schedule_lecture("2-3:50pm","ONLINE"); -schedule_lecture("2-3:50pm","West Hall Auditorium"); -row_end(); - -row_begin(); -//blank(1); -//blank(1); -row_end(); - -/* -------------- 3 PM ----------------------------------------------------------------- */ - -row_begin("3pm"); -//blank(2); -//schedule_instructor_officehours("Prof Xiao", "Eaton 206","4","3-5pm"); -//schedule_early_officehours("9-16","2-3:50pm","DCC 308","Andrew A.","2-2:50pm","DCC 235"); -//blank(2); -//blank(2); -row_end(); - -row_begin(); -//blank(1); -row_end(); - -/* -------------- 4 PM ----------------------------------------------------------------- */ - -row_begin("4pm"); - -//monday 4-6 -//blank(4); - -//schedule_instructor_officehours("Prof Cutler","DCC 308/Lobby"); -blank(4); - -/* -schedule_lab("7","4-5:50pm","Lally 102","Milo","Jakob,
Nick, Zixiang,
& Eric W.(50%)",1,"11%"); -schedule_lab("8","4-5:50pm","Lally 104","Farhad","Coen,
Julian, Vikram,
& Eric W.(50%)",1,"11%"); -schedule_lab("13","4-5:50pm","Sage 3101","Jianhui","Coen, Ruijie,
Grace & Jared",1,"11%"); - -schedule_ta_officehours("TA: Cameron
mentors:
Alec & Rutvik","J-ROWL 2C30",4,"4-6pm");*/ - -blank(4); -//Aditya, Ryon, Yash, Joyce, Nia, Jack, Jessica -schedule_lab("7","4-5:50pm","Lally 102","Shuhang","Kaelan, Quinn & Xenia",1,"11%"); //35 -schedule_lab("8","4-5:50pm","Lally 104","Matthew","Daniel, Kiron & Charles",1,"11%"); //35 -//schedule_lab("13","4-5:50pm","Sage 4101","Mike","Aaryaman, Aleksander & Charles",1,"11%"); //34 - -//schedule_ta_officehours("4-5:50pm
TA: Abby & Bishwajit
mentors: Jaeseok, Sophia & Terry
 
6-7:50pm
TA: Kacy
mentors: Kaelan & Nyx","
Folsom Library
ALAC Tutoring Space
(SE corner of
lower level)",8); -schedule_ta_officehours("4-5:50pm
mentors: Smayan & Kajsa & Samir
AE 216
 
6-7:50pm
TA: Shuhang & Conor
mentors: Braeden","AE 216",8); - -blank(4); -schedule_ta_officehours("4-5:50pm
mentors:
Shimu & Amelia","Sage 4510",4); - -row_end(); - -row_begin(); -row_end(); - -/* -------------- 5 PM ----------------------------------------------------------------- */ - -row_begin("5pm"); -row_end(); - -row_begin(); -row_end(); - - -/* -------------- 6 PM ----------------------------------------------------------------- */ - -row_begin("6pm"); - -//schedule_alac_officehours("ALAC Review Session
Start date: TBD","6-8pm","Sage 3101",4); - -/* -schedule_ta_officehours("TA: Tim
mentors:
Andrew & Nate","J-ROWL 2C30",4,"6-8pm"); -schedule_ta_officehours("TA: Cameron
mentors:
Grace & Rutvik","J-ROWL 2C30",4,"6-8pm"); - -schedule_lab("9","6-7:50pm", "Lally 102","Maurício","Nick,
Terry, & Zixiang",1,"11%"); -schedule_lab("14","6-7:50pm", "Lally 104","Farhad","Anshul,
Ryan, & Andrew",1,"11%"); -schedule_lab("10","6-7:50pm","Sage 3101","Ayushi","Greg, Wilson G. & Ritz",1,"11%"); -schedule_lab("16","6-7:50pm", "Eaton 216","Maurício","Nick,
Terry, & Zixiang",1,"11%"); - -schedule_ta_officehours("TAs: Farhad & Maurício
mentors: Cass,
Ryan, & Winona", -" 
6-8pm
J-ROWL 2C30",4); -*/ - -schedule_ta_officehours("TA: Matthew
mentors:
Anna & Alexander","AE 215",4,"6-7:50pm"); -schedule_ta_officehours("TA: Yuxuan
mentors:
Eleanor & Smayan","AE 216",4,"6-7:50pm"); - -//Justin, Joyce, Nia, Spencer -schedule_lab("9","6-7:50pm", "Lally 102", "Matthew","Jessica, Chaitanya & Sharat",1,"11%"); -//schedule_lab("10 & 14 & 16","6-7:50pm", "Lally 104","TBD","TBD",2,"11%"); //22+7+10 = 39 -//schedule_lab("10","6-7:50pm", "Lally 104","James","David, Jody & Veevek",1,"11%"); -//schedule_lab("14 & 16","6-7:50pm","14: Sage 5101
16: Sage 4101","14: Mike
16:Yizhou","14:Justin, Rohan & Sophia
16:Aaryaman, Henry & Xenia",1,"11%"); -//schedule_lab("16","6-7:50pm", "Eaton 216","TBD","TBD",1,"11%"); -//schedule_ta_officehours("6-7:50pm
TA: Shuhang
mentors: Braeden & Samir","AE 216",8); - -blank(4); -schedule_testblock("Location: TBA
","6-7:50pm
exam weeks only","12%"); -//blank(4); - -//schedule_ta_officehours("TA: TBD
mentors: TBD
","Folsom Library
Lower Level
ALAC Tutoring",4,"6-7:50pm",1,"12%"); -blank(4); - -row_end(); - -row_begin(); -row_end(); - - -/* -------------- 7 PM ----------------------------------------------------------------- */ - -row_begin("7pm"); -row_end(); - -row_begin(); -row_end(); - -/* -------------- 8 PM ----------------------------------------------------------------- */ - -//row_begin("8pm"); -/*schedule_alac("start date","8-10pm","location");*/ - -//schedule_alac("1/19","8pm-10pm","Lally 102 (ALAC), AE 118 (CS Mentoring)"); -//blank(4); - -//schedule_alac("1/19","8pm-10pm","Lally 102 (ALAC), Lally 104 (CS Mentoring)"); -//blank(4); - -//schedule_alac("1/20","8pm-10pm","ONLINE (Office Hours Queue)", 4); -//schedule_ta_officehours("mentors: TBD
","Lally 104",4,"8-9:50pm",1,"20%"); -//schedule_alac("1/19","8pm-10pm","Lally 102 (ALAC), AE118 (CS Mentoring)",4); -//blank(4,4); - -//schedule_alac("1/20","8pm-10pm","ONLINE (Office Hours Queue)", 2); -//schedule_ta_officehours("mentors: TBD
","Amos Eaton 118",4,"8-9:50pm",1,"12%"); -//schedule_alac("1/19","8pm-10pm","Lally 102 (ALAC), AE118 (CS Mentoring)",2 ); -//blank(4,2); - -//blank(4); -//row_end(); - -//row_begin(); -//row_end(); - -/* -------------- 9 PM ----------------------------------------------------------------- */ - -//row_begin("9pm"); -//row_end(); - -//row_begin(); -//row_end(); - -/* -------------------------------------------------------------------------------------- */ - - -?> - - -
- - diff --git a/php/schedule_format.php b/php/schedule_format.php deleted file mode 100755 index 8824614..0000000 --- a/php/schedule_format.php +++ /dev/null @@ -1,105 +0,0 @@ -'.$text.'
'; - } else { - print ''.$file.'
'; - } -} - - -/*****************************************************************/ -/*****************************************************************/ -/*****************************************************************/ -function schedule_misc($what,$rowspan=4,$colspan=1){ - print ''.$what.''; -} - - -function schedule_lab($which,$time,$room,$ta,$mentors,$colspan=1,$width="100%") { -// print 'Lab Section '.$which.'
'.$time.'
'.$room.'
TA: '.$ta.'
mentors: '.$mentors.''; - print 'Lab Section '.$which.'
'.$time.'
'.$room.'
TA: '.$ta.'
mentors: '.$mentors.''; -} - -function schedule_lecture($time,$room,$rowspan=4) { - print 'Lecture
'.$time.'
'.$room.''; -} - -function schedule_testblock($time,$room) { - print 'Test Block
'.$time.'
'.$room.''; -} - -function schedule_instructor_officehours($who,$room,$rowspan=1,$time=null) { - if (isset($time)) { - print ''.$who.'
'.$time.'
'.$room.''; - } else { - print ''.$who.'
'.$room.''; - } -} - -function schedule_alac_officehours($alac,$room,$time,$rowspan,$width="100%") { - print ''.$alac.'
'.$room.'
'.$time.''; -} - - -function schedule_ta_officehours($ta,$room,$rowspan,$time=null,$colspan=1,$width="12%") { - if (isset($time)) { - print ''.$ta.'
'.$time.'
'.$room.''; - } else { - print ''.$ta.'
'.$room.''; - } -} - -function schedule_hybrid_ta_officehours($ta,$room,$rowspan,$time=null,$colspan=1,$width="12%") { - if (isset($time)) { - print ''.$ta.'
'.$time.'
'.$room.''; - } else { - print ''.$ta.'
'.$room.''; - } -} - -function schedule_studyspace($room,$rowspan,$time,$colspan=1) { - print 'study space
'.$time.'
'.$room.''; -} - -function schedule_alac($startdate,$time,$room,$colspan=1,$width="100%",$title="ALAC Drop In Tutoring") { - print ''; - print ''.$title.''; - print '
Start date: '.$startdate.''; - print '
'.$time.'
'.$room.''; -} - - - -function blank($rowspan=1,$colspan=1,$width=null) { - if (isset($width)) { - print ' '; - } else { - print ' '; - } -} - -function schedule_time($t) { - print ''.$t.''; -} - -function schedule_day($d,$width,$colspan=1) { - print ''.$d.''; -} - -function row_begin($time=null) { - print ''; - if(isset($time)) - schedule_time($time); - else - blank(1,1,"1%"); -} - -function row_end() { - print ''; -} - - -?> diff --git a/php/syllabus.php b/php/syllabus.php deleted file mode 100755 index 8074f65..0000000 --- a/php/syllabus.php +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - -
- - -

Course Description

- -

-This course covers fundamental data structures and their use in -programming. This includes both class design and features of the C++ -programming language. Much of our discussion will be built around the -design and use of the C++ standard library (STL). By using the -standard library, students will be able to write reasonably -sophisticated programs quickly. -

- -

Learning Outcomes

- -

-Students who have successfully completed this course will be able to: -

- - - -

Prerequisites

- -

-CSCI 1100 Computer Science I, equivalent university credit, -or a 5 on the AP Computer Science A Exam is the required (as of Spring 2023) -pre-requisite for this course. Here are the concepts that we assume -you have learned prior to taking CSCI 1200 Data Structures: -

- - - -

Programming Languages: C++ vs. Java vs. Python

- -

-The language used in this course is C++ but you do not need to know -C++ before taking this class. -

- -

-The Computer Science I class at RPI is taught in the Python -programming language. Transitioning a solid foundation in problem -solving, computational thinking, and implementation to a new -programming language is an important skill for all computer -scientists. Once you are comfortable with your new programming -environment (code editor, compiler/interpreter, reference material, -etc.) you will soon be busily and productively coding again! -

- -

-Similarly, many students enter this course having studied Java in -their high school AP Computer Science class. If you are a reasonably -proficient Java programmer, you should easily adapt to the differences -between the C++ and Java. -

- -

-See also: Crash Course in C++ Syntax -

- - -

Warning

- -

-This course moves at a rapid pace and will likely be substantially -more difficult than your previous programming classes. The homework -assignments are challenging and students should start the assignments -as soon as they are posted, so there is plenty of time to ask the -instructor and TAs questions on the Discussion Forum and in office hours. Students -should not get behind at any point in the semester. Students -should work practice problems and study examples from lecture. -Working with other students and working with tutors and TAs are both -encouraged, but students need to be certain they understand the -material and can do problems on their own. -

- -

-See also advice from - -Spring 2014 CSCI 1200 Data Structures students. -

- -

- - Be sure to click through the other pages linked in the upper right - menu. - -

- - diff --git a/php/template_after.php b/php/template_after.php deleted file mode 100755 index 7dd01ad..0000000 --- a/php/template_after.php +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - diff --git a/php/template_before.php b/php/template_before.php deleted file mode 100755 index 76277f7..0000000 --- a/php/template_before.php +++ /dev/null @@ -1,678 +0,0 @@ - - - Submitty Csci1200: Data Structures - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to main content -
- - - - -
-
-
- -
- - - - -
diff --git a/php/template_before_crash_course.php b/php/template_before_crash_course.php deleted file mode 100755 index 4cdac17..0000000 --- a/php/template_before_crash_course.php +++ /dev/null @@ -1,676 +0,0 @@ - - - Submitty Csci1200: Data Structures - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Skip to main content -
- - - - -
-
-
- -
- - - - -
diff --git a/php/wsl.php b/php/wsl.php deleted file mode 100755 index d0d481c..0000000 --- a/php/wsl.php +++ /dev/null @@ -1,390 +0,0 @@ - - - - - - - - - -
- -

-The instructions below apply only to those using Windows as their -primary operating system. We recommend WSL over Cygwin or VirtualBox -or dual booting Linux — unless you already know how to do that! See -C++ Installation Choices for Your -Operating System. -

-
- -
    - -
  1. -

    -You'll need Windows 10, Version 1709 (2017 Fall Creators Update) or later to use WSL
    -You can check your version by going to Start Menu → Settings → System → About.
    -And under the "Windows specification" section, look for the "Version". -

    - -
  2. -

    -Turn on "Windows Subsystem for Linux":
    -Start Menu → Settings → Search for "Turn Windows features on or off".
    -From that menu, check the box next to "Windows Subsystem for Linux"
    -Also, check the box next to "Virtual Machine Platform" and
    -check the box next to "Windows Hypervisor Platform". -

    - -
  3. -

    -You'll need to reboot your computer now. -

    - -
  4. -

    -Go to the Microsoft Store, https://aka.ms/wslstore, -
    -Click "Open" to launch the store.
    -Choose the Ubuntu distribution, and press "Get" and "Install" to download. -

    - - -If you run into problems on this step, perhaps with errors about needing to update a kernel, you can try these steps manually: -
      -
    • Open an Administrator Powershell and type these commands:
    • -
      -    wsl --shutdown
      -    wsl --set-default-version 2
      -    wsl --update
      -    wsl --shutdown
      -    wsl --install -d Ubuntu
      -  
      -
    - - -
  5. -

    - After the download is finished, press "Launch" (or "Open").
    - This will Open the WSL/Ubuntu terminal and Install Ubuntu on Windows.
    - You will be asked to choose a username & password. -

    - -
  6. -

    -You will probably want to "Pin" Ubuntu to your Start menu.
    -You can do this by searching for "Ubuntu" in your start menu, -and then right clicking on the icon. -

    - -
  7. -

    -Install Ubuntu updates
    -Type these commands into your WSL terminal:

    - -
    -    sudo apt update
    -    sudo apt dist-upgrade
    -
    -
    - -

    -And press 'y' to continue. -

    - -

    -During the installation process, you may be asked for permission to -restart services on future upgrades without asking. It should be safe to say "yes". -

    - -
  8. -

    -Install the necessary packages for this course: -

    - -
    -    sudo apt install g++ clang gdb lldb zip valgrind
    -
    -
    - - -

    -And press 'y' to continue. -

    - - - -
  9. -Install Dr. Memory for WSL:
    - -Follow these instructions... - -

  10. -

    Install a good code editor on Windows. -
    If you don't already have a favorite, we recomend -Sublime Text. -

    - - -
  11. -

    Create a new directory for your work for this course on Windows.
    -Save the sample files to this directory.

    - - - -

    -NOTE: It's easier if you avoid spaces or other non-alphanumeric -characters (underscore is fine) in your file & directory -names. -

    - -
  12. -In your WSL terminal, go to your directory for the -course.
    Windows paths are available in WSL from -the /mnt/ mount point.
    -For example, if you saved the file -here:
    -C:\Users\myusername\Documents\DataStructures\temperature.cpp
    - -
        
    -    cd /mnt/c/Users/myusername/Documents/DataStructures/
    -
    -    ls
    -
    -
    - -

    -And you should see your file. -

    - -

    -NOTE: If you have spaces in your directory or file names, you'll need -to escape them with a backslash. E.g., Data\ Structures. -

    - -

    -Now compile the file: -

    - - -
    -    clang++ -g -o temperature.out temperature.cpp
    -
    -
    - - -

    -And then run it: -

    - - -
    -    ./temperature.out
    -
    -
    - - -

    -Or to test it through the memory debugger: -

    - - -
    -    drmemory -- ./temperature.out
    -
    -
    - -

    -Or: -

    - -
    -    valgrind ./temperature.out
    -
    -
    - - -
  13. - OPTIONAL: - To disable the tab-complete bell in WSL terminal (it quickly gets annoying): -

    - -

    - CAUTION: Some students have reported problems with specific keys on their keyboard no longer working after attempting to follow these instructions. If this happens to you, you may need to un-install and re-install WSL.

    - -

    -NOTE: Do not attempt to edit WSL system files from Windows. The -permissions and filesystem will get messed up and you'll need to -reinstall everything to recover. -

    - -

    -From the WSL terminal (using vi to edit the file): -

    - -
    -    sudo vi /etc/inputrc
    -
    -
    - -

    -Scroll down to the line: -

    - -
    -    # set bell-style none
    -
    -
    - -

    -press 'x' twice to uncomment that line: -

    - -
    -    set bell-style none
    -
    -
    - -

    -press ':wq' and enter to save the file. -

    - -

    -You'll need to close and restart your WSL terminal for it to take effect. -

    - - -
  14. - OPTIONAL: - You may want to disable Ctrl Key Shortcuts (personal preference):
    -With an Ubuntu terminal open, left-click the Ubuntu icon in the upper left,
    -chose Properties, and make sure "Enable Ctrl key Shortcuts" is unchecked.
    -If you leave the box checked then Ctrl+D will not send EOF signals.
    -It's not critical for this course, but this change might be useful in a Python
    -command line interface (CLI). Note: the checkbox does NOT affect Ctrl+C or Ctrl+Z. -

    - - - - -
  15. - OPTIONAL: - Configure WSL to start in your home directory or Data Structures directory.
    - From your WSL terminal, type: -

    - -
    -  echo 'cd /mnt/c/Users/myusername/Documents/DataStructures/' >> ~/.bashrc
    -
    -
    - -

    - Replacing /mnt/c/Users/myusername/Documents/DataStructures/ with the -starting directory of your choice on your system. -

    - -

    -NOTE: Do not attempt to edit WSL system files from Windows. The -permissions and filesystem will get messed up and you'll need to -reinstall everything to recover. -

    - -

    -The next time you close and restart your WSL terminal, it will start in the directory you specified above. -

    - -
  16. - - - - -
  17. -

    -Now, Test Your Installation. - -

    - - -
- -