Unformatted Attachment Preview
CSC301: Algorithms & Data Structures
Spring 2020 (Block 8)
Instructor: Ajit Chavan (email@example.com)
Morning Sessions: 10:00 am – 12:00 pm (Zoom)
Afternoon Sessions: 2:00 – 4:00 pm (Zoom)
Textbook: “Introduction to Computer Algorithms”, by Thomas Cormen, Charles Leiserson,
Ronald Rivest, Clifford Stein, MIT Press.
This is one of the core courses in Computer Science. This course will provide you with the
essential foundation needed to be a good programmer. We will look at different data structures to
learn following aspects of each data structure:
1. how they store data?
2. What are the available operations on them.
3. Efficiency of each operation.
4. How to choose which data structure to use.
We will learn following data structures:
6. Linked List
8. Hash Tables
9. Graphs (if time permits)
Then we will move on to learning about the algorithms from Computer Science's perspective. We
will learn the following things about Computer Algorithms:
1. what is an algorithm?
2. How to prove the correctness of the algorithm?
3. How to evaluate the performance of an algorithm? In other words, given two algorithms,
how to decide which one is more efficient than the other.
4. What is the difference between an approach, an algorithm, and a program?
Then, we will start learning different algorithm examples:
1. Sorting Algorithms
2. Searching Algorithms.
In the last phase of our course, we will learn two of the most crucial algorithm design techniques
Greedy Algorithms and Dynamic Programming.
I completely understand that this is a lot to cover in a block, even under normal circumstances, and
current times are not normal in any way. I still wanted to put everything on the syllabus because
every single topic of this syllabus is crucial for you to find a good job and be a successful computer
scientist. This does not mean that I will bolt through all the topics to complete the syllabus, but I
wanted to put these topics on your radar so that you can keep studying even after the block is over
and will learn all these topics.
We will give special attention to the following education priorities as guided by Cornell College’s
Mission and Core Values:
1. Knowledge: We will improve our knowledge of data structures and algorithm methodologies.
2. Inquiry: We will discuss a lot of problems. We will discuss different solutions to these problems
and investigate which solution is better than the others.
3. Communication: We will get more experience about how to engage with others in productive
dialogue. We will present a simple concept and then have a discussion about the different architectural
implication of the newly introduce concept.
4. Ethical Behavior: We will recognize personal, academic, and professional standards and act with
1. Academic Honesty: Cornell College expects all members of the Cornell College to act with
academic integrity. An important aspect of academic integrity is respecting the work of others.
Please refer to the Cornell College’s Academic Honesty Policy.
2. Disability Services and Resources: Cornell College is committed to be an exciting place of
learning and discovery for all of its students and strives to provide equal educational opportunities
to students with disabilities. Students should notify the Coordinator of Academic Support and
Advising and their course instructor of any disabilities related accommodations within the first
three days of the term. If you have more questions regarding the accommodations, please visit
Cornell College’s policy and contact me.