Jupyter at Bryn Mawr College |
|||
Public notebooks: /services/public/dblank / CS206 Data Structures / 2017-Spring |
Course Description: Introduction to the fundamental algorithms and data structures using Java. Topics include: Object-Oriented programming, program design, fundamental data structures and complexity analysis. In particular, searching, sorting, the design and implementation of linked lists, stacks, queues, trees and hash maps and all corresponding complexity analysis. In addition, students will also become familiar with Java’s built-in data structures and how to use them.
2017
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30
Week | Date | Topic | Activity | Lab Assignment |
---|---|---|---|---|
1 | Jan 18 | Introduction to Java | Get accounts, create a notebook | Lab1 |
2 | Jan 23 | Java Language: syntax | In-class activity; read Appendix A | functions (parameters/arguments, calling), booleans, control, etc. |
Jan 25 | No class or lab today | On your own | Lab2 | |
3 | Jan 30 | Variables, Functions, and Loops, OOP | For Thursday, bring 3 questions of your own making based on the material from Appendix A | |
Feb 1 | Data Structures | LinkedList, LinkedListSummary | ||
4 | Feb 6 | Recursion and Stacks | Read Chapter 1, 5; Recursion: Chapter 5 | Interfaces, and Inheritance |
Feb 8 | Abstractions, ADT, and Interfaces, BinaryTrees | Read Chapter 2 | Lab3 | |
5 | Feb 13 | BinaryTrees | Read Chapter 2.4; Trees: Chapter 6 | |
Feb 15 | BinaryTrees | |||
6 | Feb 20 | Stacks and Queues | Chapter 3, 4 | |
Feb 22 | Stacks and Queues | |||
7 | Feb 27 | Review | Review notes | |
Mar 1 | Exam #1 | |||
8 | Mar 6 | Spring break - No classes | ||
Mar 8 | Spring break - No classes | |||
9 | Mar 13 | Sorting, Files, and Graphs | Sorting: Chapter 8; Graphs: Chapter 10; Files: Appendix A.10 | Lab5 |
Mar 15 | Sets and Maps | Read Chapter 7 | ||
10 | Mar 20 | Dictionaries | POGIL Activity | |
Mar 22 | Hashing | POGIL Activity | ||
11 | Mar 27 | HashMaps and HashSets | ||
Mar 29 | AVL Trees | Read Chapter 9 | ||
12 | Apr 3 | Other Self-Balancing Search Trees | ||
Apr 5 | Red-Black Trees | |||
13 | Apr 10 | Graphs | Read Chapter 10 | |
Apr 12 | Graphs | |||
14 | Apr 17 | Hand out Review Sheet | Work on Projects | |
Apr 19 | Review | Work On Projects: Game Design | ||
15 | Apr 24 | Presentations | ||
Apr 26 | Presentations |
The final exam is self-scheduled during exam week.
We will be using the Jupyter Java9 interpreter and compiler, installed on the Athena computer cluster:
You will received a password and username in class.
Attendance and active participation are expected in every class. Participation includes asking questions, contributing answers, proposing ideas, and providing constructive comments.
I am available to answer your questions, listen to concerns, and talk about any course-related topic (or otherwise). Please come to office hours! This helps me get to know you. You are welcome to stop by and chat. There are many more exciting topics to talk about that we won't have time to cover in-class.
Although computer science work can be intense, please stay in touch, particularly if you feel stuck on a topic or project and can't figure out how to proceed. Often a quick e-mail, phone call or face-to-face conference can reveal solutions to problems and generate renewed creative and scholarly energy. It is essential that you begin assignments early, since we will be covering a variety of challenging topics in this course.
There will be about seven assignments, weighted equally in the final grading. Assignments must be submitted according to the Assignment Submission instructions.
At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:
Item | Percentage |
---|---|
Exam 1 | 10% |
Project | 20% |
Final Exam | 20% |
Assignments | 50% |
Total | 100% |
Incomplete grades will be given only for verifiable medical illness or other such dire circumstances.
Text below can be copied from this link:
To receive the assignments, you will need to do the following once:
Open a notebook, and paste the following into a cell and execute it:
%%file ~/nbgrader_config.py
c = get_config()
c.NbGrader.course_id = "cs206"
c.TransferApp.exchange_directory = "/opt/nbgrader/exchange/"
In the next cell, execute the following:
!nbgrader extension activate
Save your notebook.
Finally, in the upper right-hand corner you'll see a "Control Panel" button. Click it, then click on the red "Stop My Server", and then on the green "My Server". After that point, you'll be able to see an "Assignments" tab on the desktop page, listing cs206.
All work must be turned in either in hard-copy or electronic submission, depending on the instructions given in the assignment. E-mail submissions, when permitted, should request a "delivery receipt" to document time and date of submission. Extensions will be given only in the case of verifiable medical excuses or other such dire circumstances, if requested in advance and supported by your Academic Dean.
No assignment will be accepted after it is past due.
No past work can be "made up" after it is due.
There will be three exams in this course. The exams will be closed-book and closed-notes. The exams will cover material from lectures, homeworks, and assigned readings (including topics not discussed in class).
We encourage you to discuss the material and work together to understand it. Here are our thoughts on collaborating with other students:
If you have any questions as to what types of collaborations are allowed, please feel free to ask.