Your teachers are Vicky McDermott, Nathan Yee, Prava Dhulipalla, and Nick Steelman.
Students will improve their abilities to …
- Develop and iterate on an approach to solving software engineering problems
- Communicate and collaborate on data structure and algorithm design and implementation
- Understand why common data structures and algorithms are used
- Effectively and efficiently solve problems by using data structures and algorithms
- Assess and communicate the efficiency and complexity of algorithms
This is class is we go down on your transcript as ENGR3599A: Special Topics in Computing for 4 ENGR credits.
Office hours are located in the first floor lounge of East Hall.
If an instructor is listed on the hours, they are holding on call hours. So, message them if everyone is busy or the NINJAs can't help.
You can find a link to hours here
If you need help and it's not during office hours, check out our Slack channel, #dsa-19. We advise using it over emailing us when you have code questions (but emailing us is great too). Other people might have the same questions, so using the Slack channel can help them out too.
We have a set of expectations for this course, both for instructors and for students.
- Accommodate all experience levels with data structures and algorithms
- If we don’t know the answer to something, we’ll be willing to work with you to figure it out
- Return assignments in a timely manner
- Be open and responsive to feedback
- Treat all students with respect
- Professional conduct
- Accommodate and respect all experience levels
- Complete work, come to class, and be engaged.
- Treat the course, the instructors, and the ninjas with respect
- Communicate with instructors (provide constructive feedback, let us know if you’re falling behind or won’t be in class)
Your homeworks for this class will be coding assignments. You will receive credit for homework via checkoffs. You must go to NINJA hours before homework is due to be checked off.
You will have a “bank” of 7 late days. They can be used all for one assignment (get checked off seven days on one assignment) or split them up across multiple assignments. If you turn in an assignment late and you still have late days left, you can still receive full credit. Late days will only be subtracted on days there are NINJA hours. This means that if an assignment is due on Thursday night and you get checked off on Sunday, you lose one late day. If you get checked off on Monday, you would lose two late days (one day for Sunday, one day for Monday).
If you are out of late days, your homework will lose 50% of the total value of the assignment. We will accept late work up to week after the assignment was originally due. If you are having trouble with an assignment or have extenuating circumstances and will be unable to complete the assignment, please let the teaching team know (either in person or via email).
You may stumble upon answers online from past iterations of the course. We expect you to not consult or use the code from these Repos.
We encourage you to attempt all the assignments without outside help (other than the resources we provide). But if you get stuck feel free to use Instructors/NINJAs, classmates, and the internet (preferably in that order).
You will be expected to follow the Honor Code while doing work for this class.
- ArrayLists
- LinkedLists
- Stacks
- Queues
- Hashing, Maps
- Insertionsort
- Mergesort
- Quicksort
- Heapsort
- Representations
- Binary Search Trees
- Self-balancing Trees
- Representations
- Breadth First Search
- Depth First Search
- Topological sort
- Shortest Path Algorithms (Dijkstra and A*)
Throughout the course, we will look at some key concepts like runtime and space analysis, data structure augmentation, and intentional decision-making.
If you want to know your current grade in the class at any point, ask us and we’ll let you know.
Point values/totals subject to change
Grade Scale:
- 92%: A
- 90%: A-
- 88%: B+
- 82%: B
- 80%: B-
- 78%: C+
- 72%: C
- 70%: C-
- 68%: D+
- 60%: D
This will be the rubric we will be using for your homework assignments:
- 50: Checked off on time
- 25: Checked off late
- 0: Not checked off