Skip to content

CS 5001 - Intensive Foundations of Computer Science

Syllabus: CS 5001 Fall 2025 Vancouver

Align 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 and recitations take place in Room 1426

Class Hours:

  • Class Session: Tuesday, 10:45 AM - 12:45 PM (2 hours)
  • Recitation: Thursday, 10:45 AM - 12:45 PM (2 hours)

Class Location: Vancouver Campus - 410 West Georgia Street

Instructors:

  • Dr. Ildar Akhmetov (Instructor of Record)
  • Dr. Juancho Buchanan (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 systematic problem solving through programming. Offers students an opportunity to learn how to analyze a problem, how to divide and organize the problem into appropriate components, how to describe the problem in a computer language, how to analyze and understand the behavior of their programs, and how to test that their programs are working correctly. Additionally, introduces a method of program design called object-oriented programming and various ways to organize data, including a discussion of their advantages and disadvantages. To practice the course concepts, students undertake assignments ranging from small, highly specified programming tasks to larger open-ended problems where students design and code their own solutions.

1.1 Course Prerequisites

CS 5001 is a course in the ALIGN MS in CS program that assumes no previous programming experience. This course can be taken independently or concurrently with other courses. While many students choose to take CS 5002 (Discrete Structures) during the same semester for a comprehensive foundational experience, neither course is a prerequisite for the other. Each course maintains separate grading 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:

  • Write small sized programs that people can read, understand, and modify.
  • Represent information as data. Information from the problem is captured as data to be manipulated by the program. Data must be clearly defined and documented.
  • Interpret data as information. Students must document their data to provide the interpretation of the data as real world information.
  • Use testing as an integral part of development.
  • Use function signatures, purpose statements, pre and post-conditions and invariants to specify a function's assumptions, guarantees and behaviour. Document functions using signatures, pre and post-conditions explaining what the function does, not how it does it. Purpose statements must be a clear English explanation of what the function does. Students must be able to explain through examples using inputs and outputs the functions behavior.
  • Use generalization for data and functions to limit code duplication.
  • Use common recursive data structures: lists, trees, graphs. The focus here is to expose some common data structures and their operations (ADT). The goal is to have students implement and check for correctness and clean implementation. This is not an exhaustive treatment of data structures nor is it an introduction to space/time complexity.
  • Use termination arguments and halting measure to informally reason about function termination. The goal here is for students to make a clear convincing argument based on their implementation to their peers similar to a coding interview. The focus is not a rigorous formal proof.

2 Course Structure

2.1 Classwork

CS 5001 uses an active learning approach with 2-hour Tuesday class sessions and 2-hour Thursday recitations focused on intensive programming skill development. Most students take CS 5001 and CS 5002 concurrently, and Tuesday sessions are conducted in an integrated studio format with CS 5002 students. This carefully designed collaborative environment provides rich opportunities for learning across both programming and mathematical domains, enhancing understanding in both areas. During both Tuesday sessions and Thursday recitations, students will often be working in groups. 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 explore programming implementation concepts and, where relevant, connections to mathematical thinking during each class session. This course coordinates with CS 5002 to provide an integrated learning experience while maintaining its own distinct programming-focused curriculum.

2.2 Projects and Programming Work

Programming work is completed in pairs throughout the semester. There are five major projects (worth 10% each) that develop core programming skills including algorithm implementation, data structure manipulation, problem-solving strategies, and software design principles.

Projects are submitted via GitHub and focus on programming implementation with emphasis on code quality, testing, and documentation. Each project builds programming competency in areas such as recursive thinking, data organization, and systematic problem-solving. Where beneficial to student learning, projects may coordinate with mathematical concepts being explored in CS 5002 to reinforce understanding across both domains.

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 Recitation Notes
0 Sep 9 Sep 11
1 Sep 16 Sep 18
2 Sep 23 Sep 25
3 Sep 30 Oct 2 No class Tuesday Sep 30 (statutory holiday) - class held Thursday Oct 2 during recitation time
4 Oct 7 Oct 9
5 Oct 14 Oct 16
6 Oct 21 Oct 23
7 Oct 28 Oct 30
8 Nov 4 Nov 6
9 Nov 11 Nov 13 No class Tuesday Nov 11 (statutory holiday) - class held Thursday Nov 13 during recitation time
10 Nov 18 Nov 20
11 Nov 25 Nov 27 - Fall Break
12 Dec 2 Dec 4
13 Dec 9 Dec 11

Detailed Weekly Schedule: Please refer to the course website for detailed weekly topics, labs, assignments, 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 class session, students must watch and complete the required videos and readings for the course. This course and the class 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 code.

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
Programming Quizzes (in-class) 20% Individual work, team quizzes + individual quizzes
Projects (on GitHub) 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

Programming Quizzes (in-class) Programming quizzes will include both team and individual components to encourage collaboration while assessing personal 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 computer science principles, algorithm design, problem-solving strategies, and computational thinking, and their discrete mathematics counterparts.

Projects (pair work, submitted to GitHub) There will be five projects over the course of the semester, with each project worth 10% of your grade. Projects focus on developing programming skills including algorithm design, data structure implementation, problem decomposition, and software engineering practices. Each project typically includes programming components, code documentation, testing strategies, and self-reflection on programming approaches. Projects are completed in pairs and submitted via GitHub. Each project has its own distinct CS 5001 assessment criteria focused on programming competency, code quality, and problem-solving approach. Where beneficial, projects may incorporate connections to mathematical 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 presentation, technical documentation, implementation, and demonstration elements. The specific breakdown and requirements will be detailed in the final project assignment. Teams will work collaboratively to create a substantial programming project that demonstrates mastery of course concepts including software design, algorithm implementation, and problem-solving methodologies. Where applicable, projects may draw connections to mathematical 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 on Slack, facilitating meaningful discussions, sharing resources 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 or final projects, 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 other books are recommended and are a good resource for students who are looking for additional explanations beyond what's provided in course videos. All of the following textbooks are available for free online to NU students, see directions below.

Required:

  • Think Python: How to Think Like a Computer Scientist, by Allen B. Downey Available at: O'Reilly Learning

Additional Resources:

  • Python Crash Course, 3rd Edition, by Eric Matthes. Available at: O'Reilly Learning

  • Practical Programming, 3rd Edition: An Introduction to Computer Science using Python 3.6, by Paul Gries, Jennifer Campbell, and Jason Montojo. Available at: O'Reilly Learning

  • Python in a Nutshell, 4th Edition, by Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire. Available at: O'Reilly Learning

  • Introducing Python, 2nd Edition, by Bill Lubanovic. Available at: O'Reilly Learning

As students at NU, you have access to a very awesome resource: O'Reilly Online. To access it, and all the above textbooks for free:

  1. Go to NU's library page for computer science here: Computer Science Subject Guide
  2. In the lower left hand corner, click on "Connect to O'Reilly", which will take you here O'Reilly Access
  3. Select "Not listed".
  4. Put in your northeastern.edu email and follow SSO

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 Python

This class will be using the Python 3 programming language. You can download this for free from Python.org. We will be using Visual Studio Code and GitHub Copilot for this course. We may be introducing other IDEs and tools as the course progresses.

4.4 GitHub

GitHub is used in this course to manage assignments and provide version control experience. Each assignment will have a dedicated repository, and students will submit work via GitHub. GitHub Classroom will be used for assignment distribution.

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 class session and recitation. We begin each class session and recitation 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 class sessions and recitations may have a detrimental impact on your ability to pass the course. If a graded activity takes place during class or recitation, 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 understanding. We encourage you to work together, learn from each other, and use all available tools (including AI) to deepen your learning. Academic honesty in our context means:

Authentic Learning: Your submitted work should represent your genuine understanding. You should be able to explain your approach, defend your solutions, and discuss the reasoning behind your code.

Transparent Collaboration: We expect and encourage collaboration with classmates, AI tools, and online resources. When you receive significant help or inspiration from any source, acknowledge it honestly - this shows integrity, not weakness.

Understanding Over Ownership: The goal is learning, not individual ownership of ideas. What matters is that you can demonstrate understanding of concepts and explain your work 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 programming, 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 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.