Course Syllabus

NOTE: Some links in this syllabus page may only be accessible to currently enrolled students.

Instructor Introduction

Meet the instructor this term, Dr. Maher Elshakankiri

Meet the instructor this term, Doshna Umma Reddy

Full Syllabus

Download the full CS 325 Syllabus

Introduce Yourself!

Hop on over to our first discussion and introduce yourself!

Communication Policy

For all class-wide questions,  we encourage you to first post on Ed Discussions if you can't make to an office hour. Only questions of a personal nature or related to your own grade should be emailed to a TA or Instructor.

If you are hesitant to ask a question on Ed Discussions, you can always post anonymously and no one including the Instructors will know who posted it :) Remember, there are no stupid questions!

When you email your TA or the Instructors, you should expect a response within 48 hours during business days (our response time is usually much less than that). 

Please put the prefix [CS325] in the subject when you send emails to us so we can identify your emails quickly. Details of Teams & Ed Discussions is provided under the Tools Tab of this page. 

Contact Information & Office Hours



Office Hours

Office hours will be hosted on Teams, you can send a direct message to the Instructor/TA during their office hours. 

  Mon Tue Wed Thu Fri Sat Sun
08:00 - 09:00   Maher Tim     Jisoo  
09:00 - 10:00 Jisoo Maher Tim   Edgar Jisoo  
10:00 - 11:00 Jisoo Bharghav Jisoo Bharghav Edgar Jisoo  
11:00 - 12:00     Jisoo Bharghav      
12:00 - 13:00     Jisoo  Richard      
13:00 - 14:00 Doshna      Richard      
14:00 - 15:00 Doshna Tim    Richard Bharghav    
15:00 - 16:00 Bharghav Tim Bharghav  Richard Bharghav   Arvin
16:00 - 17:00     Bharghav       Arvin
17:00 - 18:00     Edgar        
18:00 - 19:00   Arvin Edgar        
19:00 - 20:00   Arvin          


Peer tutoring by the School of EECS

Note: This service is not available in Summer Term.

The School of EECS now offers free online CS peer tutoring via Zoom, and there are two ways you can use it:

This is in addition to the TA/ULA  and Instructor office hours.

TutorMe - Online Tutoring Information

Tutoring is available for free through TutorMe and can be accessed through the TutorMe link in the course navigation menu. TutorMe tutors are available 24/7 and you’re able to communicate with them via chat, video or audio conferencing – it’s up to you! If you find a tutor that you like, you can continue to schedule tutoring sessions specifically with that tutor in the future. 

Ecampus Resources

Ecampus Resources  - These resources will be useful for all of your classes throughout the term...  Library Information, Helpdesk Contact Info, Canvas Tech Support, etc...

Technical Questions on using Canvas

If you have a technical issue or question when using Canvas, 24/7 support is available in Canvas via chat, phone, or e-mail through the Help link in the menu on your left .

Additional technical support (use of software/browsers) can be accessed through the OSU Computer Helpdesk.

Academic or Student Support Services

For all other academic and student support services, refer to the Student Services link found in the course menu.

The following services are available to all Ecampus students:

Accessibility Tools for Canvas

The following tools are available within your Ecampus course. 

ReadSpeaker - is a tool that reads text on Canvas course pages aloud.

TextAid - is an additional tool that allows users to have nearly any text highlighted and read aloud, including documents, Web sites, text composed by a user, and more. For more information, please visit ReadSpeaker Text Aid.

NOTE: Some links on this page may only be accessible to registered students.

Syllabus & Course Summary

Download the full syllabus file .

You can see the full schedule for the course below, and the assignment due dates at the end of this page.

Course Schedule:

Week Topic Reading Assignments Learning Activities
1 Asymptotic Notations and Correctness of Algorithms

Readings and Videos in Canvas

Practice problems and practice quiz questions on canvas

Required Assignment and Required Discussion and

Required Quiz
2 Recursion, Recurrence Relations and Divide & Conquer

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas

Assignment and

3 Dynamic Programming

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas
Assignment and 
4 Dynamic Programming and Backtracking

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas
Assignment, Discussion and 
5 Backtracking and Greedy Algorithms

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas
Assignment and 
6 Greedy Algorithm & Midterm

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas

Review material from week 1-5 Explorations, videos, quizzes and assignments.

Midterm Exam


Graph Algorithms

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas
Assignment, Discussion and

Graph Algorithms

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas

Assignment and 


NP-completeness and Heuristic Algorithms

Readings and Videos in Canvas

Practice coding problems and practice quiz questions on canvas

Assignment, Discussion and 


Finals Week

Review material from all Explorations, videos, quizzes, midterm and assignments.



a. Ed Discussions

There is a link to Ed Discussions in the left sidebar of Canvas. This ongoing Q&A forum is a valuable resource for getting official answers to your questions (and often helpful student responses also). It's good to use the search box before posting, to see if your question has already been addressed.

b. Teams

Teams is a forum for more informal interaction with your fellow students. It is also where TAs and the Instructors will hold office hours.

You can download and install the desktop or mobile app from here or also use it from the browser.

Connecting to our class teams:

Here's how we'll use Teams:

  • General
    The landing channel when you first join. This is where office hours will be held and where you can discuss course-related questions with other students.
  • #random
    Random chat among course members (students and teachers)

On Teams you can:

  • Create your own channels
    For group-work or study-groups you can create your own (private or public) channels!
  • Create ad-hoc teleconference sessions
    Click the "phone" icon next to the channel title and invite people to join you!
  • Engage with the TAs and Instructor during office hours
  • Engage with each other

OSU's primary motivation in providing this Teams experience is to give you, the student, a built-in mechanism for building relationships and collaborations among yourselves.

a. PyCharm

PyCharm is the IDE (Integrated Development Environment) that you can use in this course to develop your assignments. There are a few steps you'll need to follow to get PyCharm set up on your computer:

  1. Download and install the current version of Python 3, found here.
  2. Download and install the Community edition of PyCharm, found here.
  3. Run PyCharm and answer the setup questions (accept the default if you aren't sure). When you reach the welcome screen, click on "Create New Project". You should now see this screen:
    Pycharm create new project 
  4. In the "Location" path, replace "untitled" with "greeting". This will be the name of your project.
  5. Click on the little arrow to the left of "Project Interpreter". You should now see the following:
    Pycharm selecting interpreter 
  6. Click on "Existing interpreter" and select whatever version of Python 3 you installed. PyCharm will remember this choice as the default for future projects (which is good, since Python 3 is what we'll use throughout the course).   [If the Python 3 interpreter you installed doesn't appear,  open the Settings/Preferences dialog, select Project <project name> | Project Interpreter, click the  The Configure project interpreter icon and select Add.  Next select System Interpreter and then select your installation of Python 3.]  You should now see this screen:
    Pycharm_welcome screen.PNG 
  7. Right-click anywhere on the document and select "Run 'greeting'" (which has a little green triangle icon to its left). This should make "Hello world." print to the output window. Congratulations - you've just created and run a program in Python!

b. is the tool that was used to create the interactive exercises in the lessons. The exercises are embedded in the lesson pages in Canvas, but you will need to be logged into in order to view them. You'll receive an invitation to join the "classroom" around the first day of class.

c. GradeScope

For a few of the assignments you submit on GradeScope. The instructions will be provided in the assignment.


Course Policies

Discussion Participation

On alternate weeks there would be group work where students would form themselves into groups and discuss a strategy to solve an assignment problem. Late submission is not accepted on discussion posts.

Weekly Homework Assignments

A homework assignment is due every week of the term, at the indicated date and time (Pacific time). Each student must complete the assignments without referring to any other student's code. Online instructors and/or teaching assistants will generally be available to answer questions online during normal business hours on weekdays. Regrade requests will be considered within two weeks of releasing the grade. Grading TA should be approached first for any grading related clarifications for the assignments. Any submission requests outside of the due date will not be considered. It is advisable to double check the files that are being submitted as part of the assignment submissions.

Late Work Policy

The course material is for each week is released one week in advance with the intent to allow both full time and part time students to be able to complete the homeworks, quizzes, discussions well before the deadline. The quizzes and discussions will be closed post due date. Homeworks may be submitted late by 24hrs after this official due date, but they will be penalized at a rate of 10% of points. Later than that homework submissions will not be accepted. Online instructors and/or teaching assistants will generally be available to answer questions online during normal work hours on weekdays. They will not necessarily be available over the weekend. Plan ahead. If any extension is required it should be informed atleast 3 days before due date.

Proctored Exams

This course will use an automated online proctoring system called Proctorio, where your exam session is recorded for instructor review.  You will not need to schedule proctoring appointments, and there is no cost to you to use Proctorio.

Please note that a functioning webcam and microphone are required for using Proctorio.  If you do not have these, you will need to locate and submit an alternative proctor through the exams and proctoring form and pay for any associated proctoring fees.

Your security and privacy are important.  You can read more about Proctorio’s privacy and data security policies on their website, and more information about using this tool can be found in the course site.

Makeup Exams

Makeup exams will be given only for missed exams excused in advance by the instructor. Excused absences will not be given for airline reservations, routine illness (colds, flu, stomach aches), or other common ailments. Excused absences will generally not be given after the absence has occurred, except under very unusual circumstances.


Incomplete (I) grades will be granted only in emergency cases (usually only for a death in the family, major illness or injury, or birth of your child), and if the student has turned in 80% of the points possible (which basically doesn't happen unless the student encounters a major problem during the final exam).

Establishing a Positive Community

It is important you feel safe and welcome in this course. If somebody is making discriminatory comments against you, sexually harassing you, or excluding you in other ways, contact the instructor, your academic advisor, and/or report what happened at so we can connect you with resources.

Statement Regarding Religious Accommodation

Oregon State University is required to provide reasonable accommodations for employee and student sincerely held religious beliefs. It is incumbent on the student making the request to make the faculty member aware of the request as soon as possible prior to the need for the accommodation. See the Religious Accommodation Process for Students.

Guidelines for a Productive and Effective Online Classroom

(Adapted from Dr. Susan Shaw, Oregon State University)

Students are expected to conduct themselves in the course (e.g., on discussion boards, email) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.

Active interaction with peers and your instructor is essential to success in this online course, paying particular attention to the following:

  • Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
  • Read your posts carefully before submitting them.
  • Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
  • Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully, and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.

Expectations for Student Conduct

Student conduct is governed by the university’s policies, as explained in the Student Conduct Code ( Students are expected to conduct themselves in the course (e.g., on discussion boards, email postings) in compliance with the university's regulations regarding civility.

Academic Integrity

Integrity is a character-driven commitment to honesty, doing what is right, and guiding others to do what is right. Oregon State University Ecampus students and faculty have a responsibility to act with integrity in all of our educational work, and that integrity enables this community of learners to interact in the spirit of trust, honesty, and fairness across the globe.

Academic misconduct, or violations of academic integrity, can fall into seven broad areas, including but not limited to: cheating; plagiarism; falsification; assisting; tampering; multiple submissions of work; and unauthorized recording and use.

It is important that you understand what student actions are defined as academic misconduct at Oregon State University. The OSU Libraries offer a tutorial on academic misconduct, and you can also refer to the OSU Student Code of Conduct and the Office of Student Conduct and Community Standard’s website for more information. More importantly, if you are unsure if something will violate our academic integrity policy, ask your professors, GTAs, academic advisors, or academic integrity officers.

Return to Modules

Course Summary:

Date Details Due