CS 5002 - Discrete Structures¶
Syllabus: CS 5002 Fall 2025 Vancouver
Graduate Course, Khoury College of Computer Sciences
Northeastern University, Vancouver Campus
Fall 2025 Semester
We acknowledge that the land on which we gather is the unceded territory of the Coast Salish Peoples, including the territories of the xʷməθkʷəy̓əm (Musqueam), Sḵwx̱wú7mesh (Squamish), and səlilwətaɬ (Tsleil-Waututh) Nations.
Location: All classes take place in Room 1426
Class Hours:
- Studio Session: Tuesday, 1:00 PM - 3:00 PM
Class Location: Vancouver Campus - 410 West Georgia Street
Instructors:
- Dr. Juancho Buchanan (Instructor of Record)
- Dr. Ildar Akhmetov (Co-Instructor)
Please use Slack for all course-related questions; use email only for emergencies.
Office Hours: Office hours are available by appointment. Please reach out via Slack or email to schedule a meeting during convenient times for both parties. We encourage you to come with specific questions, but you're also welcome to drop by just to say hi or discuss your progress in the course.
1 Course Description¶
The course introduces the mathematical structures and methods that form the foundation of computer science. Studies structures such as sets, tuples, sequences, lists, trees, and graphs. Discusses functions, relations, ordering, and equivalence relations. Examines inductive and recursive definitions of structures and functions. Covers principles of proof such as truth tables, inductive proof, and basic logic and the counting techniques and arguments needed to estimate the size of sets, the growth of functions, and the space-time complexity of algorithms. Also, discusses data structures such as arrays, stacks, queues, lists, and the algorithms that manipulate them.
1.1 Course Prerequisites¶
CS 5002 is a course in the Align MSCS Program that assumes no previous computer science or advanced mathematics background. This course can be taken independently or concurrently with other courses. While many students choose to take CS 5001 (Intensive Foundations of Computer Science) during the same semester for a comprehensive foundational experience, neither course is a prerequisite for the other. Each course maintains distinct mathematical curricula and independent completion requirements. We're happy you're here!
1.2 Course Objectives¶
Upon successful completion of this course, students will be able to:
- Convert between decimal, binary, and hex.
- Understand two's complement representations of negative numbers.
- Read and write mathematical logical formulas.
- Use logical operators effectively.
- Understand the set operators of union, intersection, and complement.
- Understand relations and functions.
- Perform basic counting tasks – e.g. counting possible passwords – using permutations and combinations as appropriate.
- Calculate basic probabilities by counting success outcomes and total outcomes.
- Apply proof techniques, particularly mathematical induction.
- Model problems using trees and graphs.
- Describe the number of operations in an algorithm as a function of the input size, and identify superpolynomial running times as intractable.
- Understand the meaning of big-O notation.
2 Course Structure¶
2.1 Classwork¶
CS 5002 uses an active learning approach with 2-hour Tuesday studio sessions focused on intensive discrete mathematics development through hands-on problem-solving and collaborative exploration. Most students take CS 5002 and CS 5001 concurrently, and Tuesday sessions are conducted in an integrated studio format with CS 5001 students. This carefully designed collaborative environment provides rich opportunities for learning across both mathematical and programming domains, enhancing understanding in both areas. During studio sessions, students will often be working in groups on mathematical problem-solving. We strongly invite you to get to know your group members and work closely together, supporting each other's learning and understanding to the best you can.
Classwork has both graded and ungraded activities. Students will use paper notebooks for mathematical work and explore mathematical theory concepts with connections to computational thinking during each studio session. This course coordinates with CS 5001 to provide an integrated learning experience while maintaining its own distinct mathematics-focused curriculum.
2.2 Mathematical Analysis and Projects¶
Mathematical work is completed in pairs throughout the semester. There are five major projects (worth 10% each) that develop core discrete mathematics skills including logical reasoning, proof techniques, set theory, combinatorics, graph theory, and algorithmic analysis.
Work is submitted via GitHub and focuses on rigorous mathematical thinking with emphasis on proof construction, problem-solving strategies, and theoretical foundations. Each project builds mathematical competency in areas such as inductive reasoning, formal logic, and structural analysis. Where beneficial to student learning, projects may coordinate with programming concepts being explored in CS 5001 to reinforce understanding across both domains. Paper notebooks provided in Week 0 are used for in-class mathematical work and exploration.
Note: In rare cases, assignment due dates may change due to events both within or outside our control! In which cases students would be notified in advance and would be given enough time to submit their work accordingly.
Course Schedule:
| Week | Date | Notes |
|---|---|---|
| 0 | Sep 9 | |
| 1 | Sep 16 | |
| 2 | Sep 23 | |
| 3 | No class Tuesday Sep 30 (statutory holiday) - optional class on Thursday Oct 2 | |
| 4 | Oct 7 | |
| 5 | Oct 14 | |
| 6 | Oct 21 | |
| 7 | Oct 28 | |
| 8 | Nov 4 | |
| 9 | No class Tuesday Nov 11 (statutory holiday) - optional class on Thursday Nov 13 | |
| 10 | Nov 18 | |
| 11 | Nov 25 | |
| 12 | Dec 2 | |
| 13 | Dec 9 |
Detailed Weekly Schedule: Please refer to the course website for detailed weekly topics, mathematical focus areas, problem sets, and readings. The weekly schedule will be posted there and regularly updated as the course progresses. All assignment due dates and specific requirements will be announced through the course website and Slack.
2.3 Student Expectations¶
Prior to the studio session, students must watch and complete the required videos and readings for the course. This course and the studio session will assume students have watched the required materials, which are meant to take 1-2 hours to complete.
In general, not including time spent in class, you should be prepared to spend 3-4 hours per credit hour for this course. This means that you should plan on spending a minimum of 12-16 hours per week on this course. 16 hours is a rough average of 2.2 hours per day, every day of the week. Many students find this course takes about 20 hours/week to successfully complete. 20 hours a week is a rough average of 3 hours per day, every day of the week. Some students may spend more time than that on certain weeks.
Please plan ahead! It can be hard to estimate when you might get stuck, so make sure to have extra slack time in your schedule to accommodate tricky problems or new concepts that are harder than you expect. Sometimes a problem comes along that you really need to sleep on. Finish your work as early as you can, so that when problems come up that require extra time, you have that time to spend.
Communication: Please post questions to Slack. Post a private question if it's related to grades or mathematical work.
Any questions about grades or requests to change points earned on an assignment must be asked within 7 days of the assignment's return.
Only email your instructors directly if you have to provide sensitive personal information. Emails will take the instructor between 24-72 hours to respond to. If you haven't heard from your instructor in 72 hours, please email them again with a follow-up.
3 Course Assessment¶
3.1 Grade structure¶
Final grades will reflect students' effort and performance. The course grade will be based on the following:
| Assessment | Weight | Collaboration |
|---|---|---|
| Math Quizzes (in-class) | 20% | Individual work, team quizzes + individual quizzes |
| Projects (mathematical analysis) | 50% | Pair work, 5 projects at 10% each |
| Final Project | 30% | Team work (3-4 students) |
| Total | 100% | |
| Participation Bonus | +3% | Slack posting, class engagement |
Math Quizzes (in-class) Math quizzes will include both collaborative and individual components to encourage mathematical discourse while evaluating personal theoretical understanding. Team quizzes promote mathematical discussion and peer learning, while individual quizzes evaluate conceptual mastery. Quiz dates and formats will be announced in advance. The quizzes focus on conceptual understanding of discrete mathematics concepts and their computational applications.
Projects (mathematical analysis, pair work) There will be five projects over the course of the semester, with each project worth 10% of your grade. Projects focus on developing mathematical skills including proof construction, logical reasoning, set theory applications, combinatorial analysis, and graph theory problem-solving. Each project typically includes mathematical analysis, formal proofs, problem-solving strategies, and theoretical exploration of discrete mathematics concepts. Projects are completed in pairs and submitted via GitHub. Each project has its own distinct CS 5002 assessment criteria focused on mathematical rigor, proof quality, and theoretical understanding. Where beneficial, projects may incorporate connections to computational concepts to enhance learning. Specific requirements and evaluation criteria will be provided with each project assignment.
Final Project (team work, 3-4 students) The final project is worth 30% of your grade and consists of multiple components that may include mathematical analysis, formal proofs, presentation, theoretical documentation, and demonstration elements. The specific breakdown and requirements will be detailed in the final project assignment. Teams will work collaboratively to create a substantial mathematical project that demonstrates mastery of course concepts including proof techniques, logical reasoning, and discrete mathematics applications. Where applicable, projects may draw connections to computational concepts to enhance the depth of the work.
Participation Bonus (+3%) Students who go above and beyond in creating a positive, collaborative class community may earn up to 3% bonus points added to their final grade. This bonus recognizes exceptional efforts that extend beyond expected in-class participation, such as consistently helping classmates with mathematical concepts on Slack, facilitating meaningful mathematical discussions, sharing insights that benefit the entire class, and demonstrating leadership in fostering an inclusive learning environment. This is a true bonus - no points are deducted for not receiving it.
3.2 Late Policy¶
We understand that learning happens at different paces and life circumstances vary. Each student has six (6) flexible late days for projects throughout the semester. These can be used as needed without penalty, and you're encouraged to communicate with instructors about any challenges you're facing.
For pair projects, please communicate with both your partner and instructors about any timing challenges early so we can work together to find solutions. If you need additional support beyond the provided late days, please reach out - we're here to help you succeed.
Late days cannot be used for quizzes, as these require timely coordination. Submissions via GitHub allow multiple attempts, so we encourage submitting early and iterating.
3.3 Grade Calculations¶
Grades will be calculated on an absolute basis: there will be no overall curving. The mapping of raw percentage point totals to letter grades is given below. Please note that these grade boundaries may move slightly at the discretion of the instructor, but the grade boundary for A is unlikely to change. I do not round grades.
Grades at NU are in the American style; the final letter grade, not the percentage grade, is the only grade that will appear on your transcript once you have completed the class. In other words, there is no ultimate difference between a 93% A and a 99.75% A: both award 4.0 points on the 4.0 grading scale, and both will appear as an A on your transcripts. This course uses the default Northeastern grading scale for graduate courses:
| Grade | Range |
|---|---|
| A | 93.00–100.00 |
| A- | 90.00–92.99 |
| B+ | 87.00–89.99 |
| B | 84.00–86.99 |
| B- | 80.00–83.99 |
| C+ | 77.00–79.99 |
| C | 74.00–76.99 |
| C- | 70.00–73.99 |
| F | 0.00–69.99 |
To progress, students are required to meet the grade point average (GPA) requirements for the MS Computer Science – Align as determined by Khoury College of Computer Sciences (see Khoury's website for more information). If you are unfamiliar with the 4.0 grading system, see this explanation How to Calculate Your GPA.
4 Course Materials¶
The public web page you're reading now is the main source of truth for this course. This site will contain all course information, schedules, assignments, and links to other tools and platforms used in the course.
From this central hub, you'll find links to:
- Canvas - for video content and grades
- GitHub - for code submissions and project repositories
- Gradescope - for quiz submissions and feedback
- Slack - for course communication and community discussion
Always check this public web page first for the most up-to-date information.
4.1 Textbook¶
There is a required textbook for this class, listed below. The textbook is available as a PDF and will be provided through the course - no purchase necessary.
Required:
- Discrete Structures (Version 2.1) by Harriet Fell and Javed A. Aslam PDF provided through course Canvas
Additional mathematical references will be provided as needed for specific topics.
4.2 Slack¶
Slack will be used for class discussion and course announcements. It also provides students with a platform for getting help fast and efficiently from classmates and the instructors. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Slack.
You will receive an invitation to join the course Slack workspace.
4.3 Paper Notebooks¶
Students will receive paper notebooks in Week 0 for all mathematical work. Notebooks will be yours to keep as a record of your mathematical learning journey.
4.4 GitHub¶
GitHub is used in this course to submit work. Students will submit formal mathematical work via GitHub repositories. Where applicable, mathematical work may coordinate with programming concepts from other courses to enhance learning outcomes.
5 General Policies¶
5.1 Attendance¶
Attendance will be taken at each class meeting (required by BC provincial regulation). It is expected that you attend every studio session. We begin each studio session at the scheduled time sharp. If you must miss class, regardless of the reason for your absence, it is your responsibility to catch up on the material you have missed, and obtain the notes from a classmate (not from your instructors). Failing to attend the studio sessions may have a detrimental impact on your ability to pass the course. If a graded activity takes place during studio, it is your responsibility to turn it in by the deadline whether you are in class or not. In-class quizzes that are missed may not be made up.
In-person Attendance Expectations:
According to Khoury's policy for the Vancouver campus, students must attend classes in-person after the late arrival deadline.
In case of illness or other emergencies contact your instructor and on a per-student basis, a student might be provided with a temporary link (single use and not sharable) to join the class virtually. However, in case of an ongoing condition or long-term unforeseen circumstances that prevent a student from attending classes in person, please email your instructor to discuss your individual situation. No virtual attendance is allowed without contacting your instructor and having their explicit approval.
5.2 Scheduling Meetings¶
At any time during the course, if you have any concerns, speak to your instructor at the end of class, or contact them by e-mail, and they will set up a one-on-one meeting at a mutually convenient time.
5.3 Classroom Conduct¶
To create and preserve a classroom atmosphere that optimizes teaching and learning, all participants share responsibility for creating a civil and non-disruptive forum for the discussion of ideas. Students are expected to conduct themselves at all times in a manner that does not disrupt teaching or learning and follow the student code of conduct for respectful interactions.
5.4 Khoury Student Expectations¶
- Respect should be shown in all communications and interactions with faculty, staff, industry, peers, and all others on campus. This includes respecting the preferred methods and response times of faculty and staff.
- Students come to class prepared and engaged with the online course materials before class.
- Students are to actively participate in course activities and discussions.
- Any issues that arise should be communicated to the appropriate faculty or staff member proactively.
5.5 Title IX Policy, Sexual harassment, and safety¶
Northeastern University and its faculty are committed to creating a safe and open learning environment for all students. If you or someone you know has experienced discrimination (including discrimination based on sex, gender, gender identity, gender expression, sexual orientation, pregnancy or pregnancy related condition, race, religion, national origin, disability status, veteran status etc.), or sexual violence (including sexual harassment, sexual assault, dating/domestic violence, or stalking), please know that help and support are available. Northeastern strongly encourages all members of the community to take action, seek support, and report incidents of discrimination, harassment, and sexual violence to the Office for University Equity and Compliance (OUEC) through the Online Reporting Form.
Please be aware that faculty members are Mandatory University Reporters who are required to disclose information about alleged discrimination, harassment, and sexual violence (including sexual harassment, sexual assault, dating/domestic violence, or stalking) to the OUEC. If the OUEC receives a report, a member of their office will reach out to offer information about available rights, support resources and pathways towards a resolution as a member of the campus community. Community members are not required to respond to this outreach.
If you, or another community member you know wishes to speak to a confidential resource who does not have this reporting responsibility, please contact any of the following confidential resources. These confidential resources are not required to report allegations of discrimination to the University without your signed release.
- Find@Northeastern: Offers 24/7 mental health support via phone at 877.233.9477 (in the U.S.) or +1.781.457.7777 (outside the U.S.).
- Sexual Violence Resource Center: The SVRC provides confidential, trauma-informed support services to Northeastern students who have experienced any form of sexual violence (i.e., sexual assault, sexual harassment, sexual exploitation, domestic/dating violence, and/or stalking). Request services online at bit.ly/svrequestform.
- Confidential Resource Advisor: The CRA provides confidential, restorative informed support services to Northeastern students who have been accused of sexual or identity based harm. Request services online at bit.ly/svrequestform.
- Pregnant / parenting students: Please know that the OUEC, housing the University's Title IX Coordinator, can work with students who are pregnant and/or parenting to ensure they have equal access to education programs and activities. For additional support, please contact OUEC (ouec@northeastern.edu).
Please visit ouec.northeastern.edu for a complete list of reporting options and support resources both on- and off-campus and contact the OUEC (ouec@northeastern.edu) at any time.
5.6 Collaboration and Academic Honesty¶
This course is designed around collaboration, peer learning, and authentic mathematical understanding. We encourage you to work together, learn from each other, and use all available tools (including AI) to deepen your mathematical reasoning. Academic honesty in our context means:
Authentic Learning: Your submitted work should represent your genuine mathematical understanding. You should be able to explain your proofs, defend your reasoning, and discuss the mathematical concepts behind your solutions.
Transparent Collaboration: We expect and encourage collaboration with classmates, AI tools, and mathematical resources. When you receive significant help or inspiration from any source, acknowledge it honestly - this shows mathematical integrity, not weakness.
Understanding Over Ownership: The goal is mathematical learning, not individual ownership of proofs. What matters is that you can demonstrate understanding of mathematical concepts and explain your reasoning when asked.
As with all Northeastern courses, you are expected to adhere to the university's academic integrity policy. For more information, see Academic Integrity Policy
5.7 AI tool use¶
We recognize the advancements in AI technology and have designed this course as AI-first. We strongly believe that AI is not a cheating instrument, but a core tool that students are expected to use for their learning. While embracing AI as a fundamental part of modern mathematical exploration, we also recognize the importance of foundational knowledge. You can expect paper and whiteboard exercises in class, along with practice problem sets that you'll complete by hand. This dual-track approach allows us to explore the synergy between AI assistance and fundamental mathematical understanding together.
If you have questions about academic honesty expectations, please ask us!
5.7 Students With Disabilities¶
The goal is that every student should be able to participate in this course. If you require any special accommodations, let me know immediately so that we can work out appropriate arrangements.
Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Access Services or call (844) 688-6287.
If you have already done so, please provide your letter from the DAS to the instructor early in the semester to arrange those accommodations.
5.8 Feedback¶
Your opinions are very important to us! All students are strongly encouraged to use the Teacher Rating and Course Evaluation (TRACE) system, at northeastern.edu/trace, to complete your course evaluations. A reminder about TRACE should arrive via email about two weeks before the end of the course. In addition, your instructors will be asking for your feedback throughout the semester. However, if you have concerns about the course, do not wait until you are asked. Please schedule a meeting with your instructor, and they will discuss your concerns then.
5.9 Wellness Resources¶
Wellness and Mental Health Support¶
As a graduate student, you may experience a range of challenges including significant stress, difficult life events, mood changes, excessive worry, or problems with eating and/or sleeping. If you or anyone you know is struggling, we strongly encourage you to seek support. Northeastern University provides several services and resources to support the overall wellness of students.
To access support, you can book a Wellness Consultation with the Vancouver Wellness Program Specialist. During this session, you can discuss your concerns and receive guidance on the next steps, along with access to resources that promote mental health and overall well-being. For same day appointments or more information, please email v.williams@northeastern.edu.
Students in need of immediate support can access Find@Northeastern for free 24/7 mental health support at 855.229.8797 (Canada) and +1.781.457.7777 (International) or Here2Talk, a free 24/7 counselling service for all post-secondary students in BC at: 604-642-5212 or toll free at 1-877-857-3397
Wellness Consultation Referral¶
Learning is most easily accomplished when you are physically and emotionally at your best. If you run into difficulties and need assistance, I encourage you to contact me during my office hours, reach out before or after class, or send me an email. I will do my best to support your success during the term. This includes identifying concerns I may have about your academic progress or wellbeing through a Wellness Consultation Referral. Through this process, I can connect you with the campus Wellness Program Specialist who offers support and assistance getting back on track to success. Only the Wellness Program Specialist can access any concerns I may identify, and a referral does not affect your academic record.
For more information about the Wellness Consultation Referral process or to book a consultation directly, email Victoria Williams, the Vancouver Wellness Program Specialist - v.williams@northeastern.edu.