On this page:
✔️ Course Outcomes
✔️ Expectations
✔️ Late Policy
✔️ Collaboration and Academic Honesty
✔️ Grading
✔️ Accommodations
✔️ Academic Support Services
✔️ Anti-Bias
✔️ Covid Safety
✔️ Religious Holidays
✔️ Tentative Schedule
Course Outcomes
Upon successful completion of the course, you should be able to:
- Implement code using pointers and dynamic memory allocation
- Implement solutions that involve recursive functions
- Implement sorting algorithms and understand their performance under different scenarios
- Implement and use basic algorithms, data structures, and containers
- Implement algorithmic solutions using the appropriate data structures and algorithms
- Compare different algorithms and data structures based on efficiency, using empirical and theoretical algorithm analysis techniques
Expectations
TLDR: Be a responsible adult and a good human being.
What you should expect from me
- To foster a welcoming, inclusive, supportive, and empowering space for all.
- To welcome and ask for feedback and constructive criticism.
- To (re)act to improve based on feedback and constructive criticism received.
- To make assignment expectations and grading guidelines available before assignments are due.
What I expect from you
- To understand that your learning and that of your peers’ relies on your understanding of the material and your ability to exchange ideas in class and online.
- To come prepared for class. That means you should have read and/or watched the material posted online before coming to class.
- To participate in class. Ask questions, share concerns and resources.
- To hold yourself accountable and manage your time wisely.
- To have high expectations of yourself and your work.
- To collaborate well with others in both small and large groups.
Late Policy
TLDR: No late work. Manage your time wisely and submit what you can.
No late work will be accepted. If you’re running tight on time, submit a partial solution so you can resubmit later.
Collaboration and Academic Honesty
TLDR: Read this policy before you end up in the Dean’s office.
Collaborating is key to succeeding in this course. Helping others will allow you to gauge and improve your own understanding, while asking for help will allow you to move forward without feeling overwhelmed or being stuck for too long.
The following is NOT allowed:
- You may not share your own code or psuedocode with anyone in any form (this includes screen sharing, file sharing, posting your code, pictures of your code, etc.).
- You may not copy code from peers (current or past students of the course).
- You may not copy code from online or other resources.
The following is allowed:
- You may discuss assignments with others, without writing or sharing code or psuedocode. That means you may discuss approaches and share publicly available resources.
- You must mention, somewhere on your assignment, who you worked with and how.
- You may ask for help and may help others with debugging.
- You must mention, somewhere on your assignment, who helped you and with what.
- You may, and are encouraged to, seek help online/in books.
- You must mention, somewhere on your assignment, the sources you used and for what.
Grading
TLDR: Read this as it’s something you’re not used to.
In computer science you learn by doing so while you may think or feel that the assignments are solely for a grade, their whole purpose is for you to learn through them! Your grade should be a reflection of your learning and learning is an ongoing process, therefore, you are allowed and encouraged to continue working on assignments throughout the duration of the course and resubmit as your assignments show your learning progress.
Because I want you to emphasize your learning rather than your grades, grading is structured to reflect that:
- To receive a D
- you must:
- Meet all the requirements for
60%14-15 of all labs assigned (and graded) - Complete and submit a final project
- Meet all the requirements for
- To receive a C
- you must:
- Meet all the requirements for
70%16-17 of all labs assigned (and graded) - Complete and submit a final project
- Meet all the requirements for
- To receive a B
- you must:
- Meet all the requirements for
80%18-19 of all labs assigned (and graded) - Complete and submit a final project
- Meet all the requirements for
- To receive a A
- you must:
- Meet all the requirements for
90%20+ of all labs assigned (and graded) - Complete and submit a final project
- Meet all the requirements for
- To receive a +
- If you have a D, C, or B and would like to receive a D+, C+, or B+ (respectively) you must:
- Keep a dated learning journal where you log daily or weekly reflections on how the course is going and how your learning is progressing.
- Life happens
- To drop a missing or incomplete lab, you must:
- Complete one application on any topic, of your choosing, related to the course (max limit of one).
Accommodations
TLDR: Let me know ASAP how to best support you and ensure your success in the course.
I am working very hard to ensure my course is as accessible as possible. That being said, if you need any accommodations, please contact me as soon as possible so that we may work together to support your success in this course. While I do not require students to have a documented disability to receive accommodations in my course, most courses do and as such, I encourage you to contact Disability Services for Students (Office of Student Life, 330 Memorial Union, 401-874-2098).
Academic Support Services
TLDR: Use all the resources available to you.
URI offers an array of resources to enable you to succeed in all your courses. While I recommend you first contact me or our TAs and come to our hours, the University offers a variety of services through the Academic Enhancement Center (AEC) and Writing Center (WC). For information on any of their programs, visit uri.edu/aec or call the AEC’s main number at 401-874-2367.
Anti-Bias
TLDR: There’s zero tolerance in my class for any kind of -ism. Know better, do better, be better.
We, as a class and community, respect the rights and dignity of each individual and group. We reject prejudice and intolerance, and we work to understand differences. We believe that equity and inclusion are critical components for campus community members to thrive. If you are a target or a witness of a bias incident, you are encouraged to submit a report to the URI Bias Response Team at uri.edu/brt. There, you will also find people and resources to help.
Covid Safety
TLDR: We are STILL in the middle of a very real pandemic. Don’t be foolish.
As members of the URI community, students are required to comply with standards of conduct and take precautions to keep themselves and others safe. Students are required to comply with Rhode Island state laws, including the Rhode Island Executive Orders related to health and safety, ordinances, regulations, and guidance adopted by the University as it relates to public health crises, such as COVID-19. You are expected to know and comply with these obligations, including but not limited to:
- Wearing of face masks by all community members when on a URI campus in the presence of others
- Maintaining physical distancing of at least six feet at all times
- Following state rules on the number of individuals allowed in a group gathering
- Completing a daily health self-assessment also available through the Rhody Connect app before coming to campus
- Submitting to COVID-19 testing as the University monitors the health of our community Following the University’s quarantine and isolation requirements
If you are already on campus and start to feel ill, you need to remove yourself from the public and notify URI Health Services via phone immediately at 401-874-2246 and go home/back to your room and self-isolate while you await direction from Health Services.
Religious Holidays
If you’ll be missing class to observe a religious holiday, please email me in advance.
Tentative Schedule
Each time we meet, you’ll be focusing on a new topic. We move incredibly fast so don’t fall behind.
Week | Tuesday | Wednesday | Thursday |
---|---|---|---|
1 | Intro & Setup | C++ Crash Course | Object Oriented Programming |
2 | Essential Math Overview & Intro to Analysis of Algos |
Dynamic Arrays | Basic Sorting Algos |
3 | Binary Search | Sets & Maps | Hashtables |
4 | Pointers Crash Course | Linked Lists | Linked Lists, cont’d |
5 | Queues | Stacks | Priority Queues |
6 | Recursion Crash Course | Mergesort | Quicksort |
7 | Analyzing Recursive Functions (w/ recurrences) |
Recursive Backtracking | Recursive Backtracking, cont’d |
8 | Intro to Trees | Binary Search Trees | BSTs, cont’d |
9 | Self-Balancing Trees | Heaps | Heapsort |
10 | Intro to Graphs | BFS & DFS | Dijkstra |