Welcome to COP3530
+Data Structures and Algorithms • Spring 2025
+Master fundamental computer science concepts including linear data structures, trees, graphs, sorting algorithms, and algorithmic analysis.
+ + +From 62d990b1b31692f79cb7fba56329d89ab8d4513a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 12 Sep 2025 20:22:47 +0000
Subject: [PATCH 1/3] Initial plan
From 4f464aa1b99089b4a2b93db1aaab9d815876afe8 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 12 Sep 2025 20:32:09 +0000
Subject: [PATCH 2/3] Create dashboard, data files, and modules page
Co-authored-by: kapooramanpreet <29406643+kapooramanpreet@users.noreply.github.com>
---
assets/css/custom.css | 118 ++++++++++++
assets/js/announcements.js | 119 ++++++++++++
assets/js/components.js | 248 ++++++++++++++++++++++++
assets/js/modules.js | 126 ++++++++++++
assets/js/problems.js | 244 ++++++++++++++++++++++++
assets/js/search.js | 170 +++++++++++++++++
assets/js/theme.js | 83 ++++++++
data/announcements.json | 32 ++++
data/modules.json | 50 +++++
data/problems.json | 74 ++++++++
index.html | 380 ++++++++++++++++++++++++++++++++++++-
modules.html | 255 +++++++++++++++++++++++++
12 files changed, 1897 insertions(+), 2 deletions(-)
create mode 100644 assets/css/custom.css
create mode 100644 assets/js/announcements.js
create mode 100644 assets/js/components.js
create mode 100644 assets/js/modules.js
create mode 100644 assets/js/problems.js
create mode 100644 assets/js/search.js
create mode 100644 assets/js/theme.js
create mode 100644 data/announcements.json
create mode 100644 data/modules.json
create mode 100644 data/problems.json
create mode 100644 modules.html
diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..441945b
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,118 @@
+/* Custom CSS for COP3530 Course Website */
+
+/* Smooth transitions for theme switching */
+* {
+ transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
+}
+
+/* Custom scrollbar styling */
+::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+
+::-webkit-scrollbar-track {
+ @apply bg-gray-100 dark:bg-gray-800;
+}
+
+::-webkit-scrollbar-thumb {
+ @apply bg-gray-400 dark:bg-gray-600 rounded-full;
+}
+
+::-webkit-scrollbar-thumb:hover {
+ @apply bg-gray-500 dark:bg-gray-500;
+}
+
+/* Skip to content link for accessibility */
+.skip-link {
+ position: absolute;
+ top: -40px;
+ left: 6px;
+ background: #000;
+ color: #fff;
+ padding: 8px;
+ text-decoration: none;
+ z-index: 1000;
+}
+
+.skip-link:focus {
+ top: 6px;
+}
+
+/* Custom focus styles for better accessibility */
+.focus-visible:focus-visible {
+ @apply outline-2 outline-offset-2 outline-blue-500;
+}
+
+/* Print styles */
+@media print {
+ .sidebar, .mobile-menu-button, .theme-toggle {
+ display: none !important;
+ }
+
+ .main-content {
+ margin-left: 0 !important;
+ }
+
+ .print-break {
+ page-break-after: always;
+ }
+}
+
+/* Animation for mobile sidebar */
+.sidebar-transition {
+ transition: transform 0.3s ease-in-out;
+}
+
+/* Custom card hover effects */
+.card-hover {
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
+}
+
+.card-hover:hover {
+ transform: translateY(-2px);
+ @apply shadow-lg;
+}
+
+/* Tag pill styling */
+.tag-pill {
+ @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.tag-pill:hover {
+ transform: scale(1.05);
+}
+
+.tag-pill.active {
+ @apply ring-2 ring-offset-2 ring-blue-500;
+}
+
+/* Difficulty badges */
+.difficulty-easy {
+ @apply bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200;
+}
+
+.difficulty-medium {
+ @apply bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200;
+}
+
+.difficulty-hard {
+ @apply bg-rose-100 text-rose-800 dark:bg-rose-900 dark:text-rose-200;
+}
+
+/* Search input styling */
+.search-input {
+ @apply w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:text-white;
+}
+
+/* Loading state */
+.loading {
+ @apply animate-pulse;
+}
+
+/* Error state */
+.error-message {
+ @apply text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4;
+}
\ No newline at end of file
diff --git a/assets/js/announcements.js b/assets/js/announcements.js
new file mode 100644
index 0000000..49a2354
--- /dev/null
+++ b/assets/js/announcements.js
@@ -0,0 +1,119 @@
+// Announcements page functionality
+class AnnouncementsPage {
+ constructor() {
+ this.announcements = [];
+ this.searchFilter = null;
+ this.init();
+ }
+
+ async init() {
+ await this.loadAnnouncements();
+ this.setupSearch();
+ this.renderAnnouncements();
+ }
+
+ async loadAnnouncements() {
+ const { data, error } = await Components.fetchJSON('/data/announcements.json');
+
+ if (error) {
+ this.showError('Failed to load announcements. Please try again later.');
+ return;
+ }
+
+ // Sort announcements by date (newest first)
+ this.announcements = data.sort((a, b) =>
+ new Date(b.posted_at) - new Date(a.posted_at)
+ );
+ }
+
+ setupSearch() {
+ const searchInput = document.getElementById('announcements-search');
+ const container = document.getElementById('announcements-container');
+
+ if (!searchInput || !container) return;
+
+ this.searchFilter = new SearchFilter({
+ items: this.announcements,
+ searchInput: searchInput,
+ container: container,
+ renderFunction: (announcement) => this.createAnnouncementCard(announcement),
+ searchFields: ['title', 'body']
+ });
+ }
+
+ createAnnouncementCard(announcement) {
+ const card = document.createElement('article');
+ card.className = 'bg-white dark:bg-gray-800 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-6 mb-4';
+
+ const relativeTime = Components.formatRelativeTime(announcement.posted_at);
+ const formattedDate = new Date(announcement.posted_at).toLocaleDateString('en-US', {
+ year: 'numeric',
+ month: 'long',
+ day: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit'
+ });
+
+ card.innerHTML = `
+
+ ${announcement.title}
+
+
No announcements available yet.
+${subtitle}
`; + } + + if (content) { + cardContent += `${message}
+${module.summary}
+No modules available yet.
+${problem.description}
+No problems found matching your criteria.
+ +No tags available.
'; + return; + } + + sortedTags.forEach(tag => { + const tagBadge = Components.createBadge(tag, { + variant: 'default', + size: 'sm', + clickable: true, + dataTag: tag, + onClick: () => this.searchFilter.toggleTag(tag) + }); + + tagCloudContainer.appendChild(tagBadge); + }); + } + + clearAllFilters() { + this.selectedTags.clear(); + document.querySelectorAll('[data-tag]').forEach(element => { + element.classList.remove('active', 'ring-2', 'ring-offset-2', 'ring-blue-500'); + }); + + const searchInput = document.getElementById('problems-search'); + if (searchInput) { + searchInput.value = ''; + } + + this.renderProblems(); + } + + showError(message) { + const container = document.getElementById('problems-container'); + if (container) { + container.appendChild(Components.createErrorMessage(message, { + title: 'Loading Error' + })); + } + } +} + +// Initialize when DOM is loaded +document.addEventListener('DOMContentLoaded', () => { + if (document.getElementById('problems-container')) { + window.problemsPage = new ProblemsPage(); + } +}); \ No newline at end of file diff --git a/assets/js/search.js b/assets/js/search.js new file mode 100644 index 0000000..d4cd47e --- /dev/null +++ b/assets/js/search.js @@ -0,0 +1,170 @@ +// Generic search and filter functionality for COP3530 website + +class SearchFilter { + constructor(options = {}) { + this.items = options.items || []; + this.searchInput = options.searchInput; + this.container = options.container; + this.renderFunction = options.renderFunction; + this.searchFields = options.searchFields || ['title']; + this.filterTags = new Set(); + this.init(); + } + + init() { + if (this.searchInput) { + this.setupSearchInput(); + } + this.render(); + } + + setupSearchInput() { + this.searchInput.addEventListener('input', (e) => { + this.search(e.target.value); + }); + } + + search(query) { + const searchTerm = query.toLowerCase().trim(); + + if (!searchTerm) { + this.render(this.items); + return; + } + + const filteredItems = this.items.filter(item => { + return this.searchFields.some(field => { + const value = this.getNestedValue(item, field); + if (Array.isArray(value)) { + return value.some(v => v.toLowerCase().includes(searchTerm)); + } + return value && value.toLowerCase().includes(searchTerm); + }); + }); + + this.render(filteredItems); + } + + filterByTags(tags) { + if (!tags || tags.length === 0) { + this.render(this.items); + return; + } + + const filteredItems = this.items.filter(item => { + const itemTags = item.tags || []; + return tags.every(tag => itemTags.includes(tag)); + }); + + this.render(filteredItems); + } + + toggleTag(tag) { + if (this.filterTags.has(tag)) { + this.filterTags.delete(tag); + } else { + this.filterTags.add(tag); + } + + this.updateTagUI(tag); + this.filterByTags(Array.from(this.filterTags)); + } + + updateTagUI(tag) { + const tagElements = document.querySelectorAll(`[data-tag="${tag}"]`); + tagElements.forEach(element => { + if (this.filterTags.has(tag)) { + element.classList.add('active'); + } else { + element.classList.remove('active'); + } + }); + } + + clearFilters() { + this.filterTags.clear(); + document.querySelectorAll('[data-tag]').forEach(element => { + element.classList.remove('active'); + }); + this.render(this.items); + } + + render(itemsToRender = this.items) { + if (!this.container || !this.renderFunction) { + console.warn('SearchFilter: container or renderFunction not provided'); + return; + } + + this.container.innerHTML = ''; + + if (itemsToRender.length === 0) { + this.container.innerHTML = ` +No items found matching your criteria.
+Welcome to Data Structures and Algorithms! This semester we'll explore fundamental computer science concepts including linear data structures, trees, graphs, sorting algorithms, and more.
Important first steps:
Please make sure you have your C++ development environment ready by next week. We recommend:
If you need help with setup, attend office hours or post in the discussion forum.
", + "posted_at": "2025-01-15T10:30:00Z" + }, + { + "id": "2025-01-18-first-assignment", + "title": "Programming Assignment 1 Released", + "body": "The first programming assignment is now available in the Programming Problems section. This assignment covers basic algorithm analysis and implementation of simple data structures.
Due Date: February 1st, 11:59 PM
Topics: Array operations, time complexity analysis
Start early and don't hesitate to ask questions during office hours!
", + "posted_at": "2025-01-18T14:15:00Z" + }, + { + "id": "2025-01-22-office-hours", + "title": "Office Hours Update", + "body": "Office hours for this week have been updated:
Zoom link is available in Canvas.
", + "posted_at": "2025-01-22T09:00:00Z" + }, + { + "id": "2025-01-25-quiz-reminder", + "title": "Quiz 1 This Friday", + "body": "Don't forget about Quiz 1 this Friday covering:
The quiz will be held during regular class time and is closed-book. Review the practice problems in Module 1.
", + "posted_at": "2025-01-25T16:45:00Z" + } +] \ No newline at end of file diff --git a/data/modules.json b/data/modules.json new file mode 100644 index 0000000..b849b93 --- /dev/null +++ b/data/modules.json @@ -0,0 +1,50 @@ +[ + { + "id": "week01-intro", + "title": "Introduction & Algorithm Analysis", + "week": 1, + "topics": ["Algorithms", "Complexity"], + "summary": "Course overview, Big-O basics, introduction to algorithm analysis and complexity theory.", + "contentUrl": "https://github.com/COP3530/Instructional-Content/tree/main/Week01", + "resources": [ + {"label": "Slides", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week01/slides.pdf"}, + {"label": "Notes", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week01/notes.md"} + ] + }, + { + "id": "week02-linear", + "title": "Linear Data Structures", + "week": 2, + "topics": ["Arrays", "Lists", "Stacks", "Queues"], + "summary": "Introduction to fundamental linear data structures: arrays, linked lists, stacks, and queues.", + "contentUrl": "https://github.com/COP3530/Instructional-Content/tree/main/Week02", + "resources": [ + {"label": "Slides", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week02/slides.pdf"}, + {"label": "Code Examples", "url": "https://github.com/COP3530/Instructional-Content/tree/main/Week02/examples"} + ] + }, + { + "id": "week03-trees", + "title": "Trees and Binary Search Trees", + "week": 3, + "topics": ["Trees", "BST", "Tree Traversal"], + "summary": "Understanding tree structures, binary search trees, and various traversal algorithms.", + "contentUrl": "https://github.com/COP3530/Instructional-Content/tree/main/Week03", + "resources": [ + {"label": "Slides", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week03/slides.pdf"}, + {"label": "Visualization Tool", "url": "https://visualgo.net/en/bst"} + ] + }, + { + "id": "week04-hashing", + "title": "Hash Tables and Hash Functions", + "week": 4, + "topics": ["Hashing", "Hash Tables", "Collision Resolution"], + "summary": "Hash functions, hash tables implementation, and collision resolution techniques.", + "contentUrl": "https://github.com/COP3530/Instructional-Content/tree/main/Week04", + "resources": [ + {"label": "Slides", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week04/slides.pdf"}, + {"label": "Hash Function Demo", "url": "https://github.com/COP3530/Instructional-Content/blob/main/Week04/hash_demo.cpp"} + ] + } +] \ No newline at end of file diff --git a/data/problems.json b/data/problems.json new file mode 100644 index 0000000..01966bf --- /dev/null +++ b/data/problems.json @@ -0,0 +1,74 @@ +[ + { + "id": "pp-001", + "title": "Two Sum Variant", + "topic": "Arrays", + "difficulty": "Easy", + "tags": ["array", "hash-map", "two-pointers"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/arrays/two-sum-variant", + "description": "Find two indices whose values sum to target with O(n) time complexity using hashing techniques." + }, + { + "id": "pp-002", + "title": "Balanced Parentheses", + "topic": "Stacks", + "difficulty": "Easy", + "tags": ["stack", "string", "parsing"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/stacks/balanced-parentheses", + "description": "Determine if a string of parentheses is balanced using stack data structure." + }, + { + "id": "pp-003", + "title": "Binary Tree Traversal", + "topic": "Trees", + "difficulty": "Medium", + "tags": ["tree", "traversal", "recursion", "dfs"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/trees/binary-tree-traversal", + "description": "Implement inorder, preorder, and postorder traversal of binary trees both recursively and iteratively." + }, + { + "id": "pp-004", + "title": "Hash Table Implementation", + "topic": "Hashing", + "difficulty": "Medium", + "tags": ["hash-table", "collision-resolution", "implementation"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/hashing/hash-table-impl", + "description": "Build a hash table from scratch with chaining collision resolution and dynamic resizing." + }, + { + "id": "pp-005", + "title": "Graph Shortest Path", + "topic": "Graphs", + "difficulty": "Hard", + "tags": ["graph", "dijkstra", "shortest-path", "priority-queue"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/graphs/shortest-path", + "description": "Implement Dijkstra's algorithm to find shortest paths in weighted graphs." + }, + { + "id": "pp-006", + "title": "Merge Sort Implementation", + "topic": "Sorting", + "difficulty": "Medium", + "tags": ["sorting", "divide-conquer", "merge-sort"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/sorting/merge-sort", + "description": "Implement merge sort algorithm with O(n log n) time complexity and analyze space usage." + }, + { + "id": "pp-007", + "title": "AVL Tree Operations", + "topic": "Trees", + "difficulty": "Hard", + "tags": ["avl-tree", "self-balancing", "rotations"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/trees/avl-tree", + "description": "Implement a self-balancing AVL tree with insertion, deletion, and rotation operations." + }, + { + "id": "pp-008", + "title": "Dynamic Programming - Knapsack", + "topic": "Dynamic Programming", + "difficulty": "Hard", + "tags": ["dynamic-programming", "optimization", "knapsack"], + "repoPath": "https://github.com/COP3530/Programming-Problems/tree/main/dp/knapsack", + "description": "Solve the 0/1 knapsack problem using dynamic programming with space optimization." + } +] \ No newline at end of file diff --git a/index.html b/index.html index 6dab14a..cfb8c0f 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,379 @@ - -Test2 + + + + + +Data Structures and Algorithms • Spring 2025
+Master fundamental computer science concepts including linear data structures, trees, graphs, sorting algorithms, and algorithmic analysis.
+ + +Explore instructional content organized by week and topic.
+The midterm exam is scheduled for February 21st during regular class time...
", + "posted_at": "2025-02-01T09:00:00Z" +} +``` + +## 🎯 Usage Guide + +### For Students +1. **Dashboard**: Start here for quick access to recent announcements and upcoming content +2. **Modules**: Browse weekly course materials and access instructional content +3. **Problems**: Search and filter programming assignments by topic, difficulty, or tags +4. **Schedule**: View assignment due dates and exam schedules +5. **Resources**: Find development tools, textbooks, and study materials + +### For Instructors +1. Update JSON files in the `data/` directory to modify course content +2. All changes are automatically reflected on the live site +3. No build process required - just commit and push changes +4. Use the GitHub repository interface for quick content updates + +## 🔧 Development + +### Local Development +```bash +# Clone the repository +git clone https://github.com/COP3530/cop3530.github.io.git +cd cop3530.github.io + +# Serve locally (any HTTP server works) +python -m http.server 8000 +# or +npx serve . +# or +php -S localhost:8000 +``` + +### Customization +- **Colors**: Modify Tailwind color classes in HTML files +- **Styling**: Add custom CSS to `assets/css/custom.css` +- **Functionality**: Extend JavaScript files in `assets/js/` +- **Content**: Update JSON files in `data/` directory + +### Browser Support +- Modern browsers (Chrome, Firefox, Safari, Edge) +- ES6+ JavaScript features required +- CSS Grid and Flexbox support needed + +## 🚀 Deployment + +The site automatically deploys to GitHub Pages when changes are pushed to the main branch. No build process is required. + +### Manual Deployment +1. Ensure all files are committed to the repository +2. Push changes to the main branch +3. GitHub Pages will automatically update the live site +4. Changes typically appear within 1-5 minutes + +## 🔮 Future Enhancements + +### Planned Features (TODOs) +- [ ] **Build Process**: Migrate from CDN to compiled Tailwind CSS for smaller file sizes +- [ ] **GitHub API Integration**: Fetch live content from course repositories +- [ ] **Offline Support**: Add service worker for offline functionality +- [ ] **Markdown Support**: Enable markdown rendering for announcements and syllabus +- [ ] **Search Indexing**: Implement full-text search across all content +- [ ] **Static Site Generator**: Consider migration to Eleventy or similar tool +- [ ] **Progressive Enhancement**: Enhanced features for modern browsers + +### Potential Improvements +- Assignment submission interface +- Grade tracking dashboard +- Student progress visualization +- Discussion forum integration +- Calendar sync (Google Calendar, Outlook) +- Email notification system +- Mobile app companion + +## 📝 Contributing + +1. Fork the repository +2. Create a feature branch (`git checkout -b feature/new-feature`) +3. Make your changes following the existing code style +4. Test your changes locally +5. Commit with descriptive messages +6. Push to your fork and create a pull request + +### Content Guidelines +- Use semantic HTML structure +- Follow existing JavaScript patterns +- Maintain consistent styling with Tailwind utilities +- Ensure accessibility standards are met +- Test on multiple devices and browsers + +## 📄 License + +This project is open source and available under the [MIT License](LICENSE). + +## 🤝 Support + +- **Issues**: Report bugs and request features via GitHub Issues +- **Discussions**: Join project discussions on GitHub Discussions +- **Documentation**: Comprehensive guides available in the Wiki +- **Contact**: Reach out to course instructors for academic content questions + +--- + +**Built with ❤️ for COP3530 students at the University of Florida** \ No newline at end of file diff --git a/announcements.html b/announcements.html new file mode 100644 index 0000000..360b9c6 --- /dev/null +++ b/announcements.html @@ -0,0 +1,245 @@ + + + + + +Stay updated with important course information and deadlines.
+Practice data structures and algorithms with these coding challenges.
+Essential tools, references, and materials to help you succeed in COP3530.
+
+ Mon/Wed: 2:00-4:00 PM
+ Friday: 10:00 AM-12:00 PM
+
Room CSE 301 & Virtual
+
+ Response within 24 hours
+ Include course number in subject
+
professor@university.edu
+
+ Canvas discussions
+ Peer and instructor help
+
Available 24/7
+Weekly breakdown of topics, assignments, and important dates.
+| Week | +Dates | +Topics | +Assignments | +Due Dates | +
|---|---|---|---|---|
| 1 | +Jan 13-17 | +
+ Introduction & Algorithm Analysis
+ Course overview, Big-O notation
+ |
+ + + Reading + + Ch 1-2 + | +- | +
| 2 | +Jan 20-24 | +
+ Linear Data Structures
+ Arrays, linked lists, stacks, queues
+ |
+ + + Programming Assignment 1 + + | ++ Jan 31 + | +
| 3 | +Jan 27-31 | +
+ Trees & Binary Search Trees
+ Tree structures, BST operations, traversals
+ |
+ + + Quiz 1 + + | ++ Jan 31 + | +
| 4 | +Feb 3-7 | +
+ Hash Tables
+ Hash functions, collision resolution
+ |
+ + + Programming Assignment 2 + + | ++ Feb 14 + | +
| 5 | +Feb 10-14 | +
+ Advanced Tree Structures
+ AVL trees, red-black trees
+ |
+ + + Reading + + Ch 7-8 + | +- | +
| 6 | +Feb 17-21 | +
+ Heaps & Priority Queues
+ Binary heaps, heap operations
+ |
+ + + Midterm Exam + + | ++ Feb 21 + | +
| 7 | +Feb 24-28 | +
+ Sorting Algorithms
+ Merge sort, quick sort, heap sort
+ |
+ + + Programming Assignment 3 + + | ++ Mar 7 + | +
| 8 | +Mar 3-7 | +
+ Graph Algorithms I
+ Graph representation, BFS, DFS
+ |
+ + + Reading + + Ch 13-14 + | +- | +
Spring 2025 • University of Florida
+Credits: 3 • Prerequisites: COP3503 (Programming 2) with grade of C or better
+Professor John Smith
+Email: jsmith@ufl.edu
+Office: CSE 301
+Phone: (352) 555-0123
+Lectures: MWF 10:40-11:30 AM
+Location: Little Hall 101
+Lab: Thursday 2:00-4:00 PM
+Lab Location: CSE 120
++ This course provides a comprehensive introduction to data structures and algorithms essential for computer science. + Students will learn to analyze, design, and implement fundamental data structures including arrays, linked lists, + stacks, queues, trees, heaps, hash tables, and graphs. The course emphasizes algorithm analysis, complexity theory, + and the selection of appropriate data structures for solving computational problems. +
+ ++ Regular attendance is strongly encouraged but not mandatory. However, students are responsible for all material covered in class, + including announcements and schedule changes. If you miss class, please check with classmates for notes and announcements. +
++ Programming assignments lose 10% per day late (including weekends). No assignments accepted more than 5 days late without + prior arrangement. Medical emergencies and university-sanctioned activities may qualify for extensions with appropriate documentation. +
++ Make-up exams will only be given in case of documented emergencies or university-sanctioned activities. + Students must contact the instructor as soon as possible to arrange a make-up exam. +
++ All work submitted must be your own. Collaboration on understanding concepts is encouraged, + but code must be written independently. Plagiarism, copying code, or unauthorized collaboration will result + in failure of the assignment and may result in failure of the course. When in doubt, ask the instructor. +
+
+ Data Structures and Algorithm Analysis in C++ (4th Edition)
+ by Mark Allen Weiss
+ ISBN: 978-0132847377
+
+ Students with disabilities who experience learning barriers are encouraged to contact the Disability Resource Center + to discuss options. All discussions remain confidential. Students must register with DRC and provide appropriate + documentation to receive accommodations. +
++ Students experiencing personal problems or lacking clear career and academic goals are encouraged to contact the + Student Mental Health unit of the Student Health Care Center (352-392-1575) or the Counseling & Wellness Center (352-392-1575). +
++ Students are expected to provide feedback on the quality of instruction through online course evaluations. + Evaluations are typically open during the last 2-3 weeks of the semester and are completely anonymous. +
+