CS 520 Computer Science Foundations - Syllabus

Term and Credits

Spring 2019-2020
3 Credits

Room and Time

Videos and readings will be posted to learn.drexel.edu

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058
Extention: 215-895-2347
Office Hours: Monday 10-12 in Slack, Wednesday 3-5 in Slack
Schedule a Meeting

Teaching Assistant(s)

Nicki Barari
Electronic Mail Address: nb895@drexel.edu
CLC Website: https://www.cs.drexel.edu/clc
Office: Online in Slack
Office Hours: Wednesday 12PM-2PM in Slack, Thursday 2-4PM in Slack
Schedule a Meeting

Course Description

Survey of basic mathematics concepts needed for the study of computer science at the graduate level: induction, iteration, recursion; analysis of program running time; graphs and trees; predicate logic; regular expressions, Context Free Grammars, and Turing Machines.

Course Objective and Goals

  1. Learn to analyze the running time of iterative and recursive algorithms.
  2. Learn to analyze the running time of data structures.
  3. Gain familiarity with basic data structures and algorithms related to them, such as trees and graphs.
  4. Learn various applications of algorithms and data structures.
  5. Learn to choose the correct data structure to efficienctly solve problems.
  6. Learn the basic theoretical foundations of computation.

Audience and Purpose within Plan of Study

This course is for graduate students with little prior knowledge of data structures and algorithms. It serves to give such students a firm foundation for future graduate study, and it is a requirement of the Computer Science Minor and Computer Science Post Bachelor Certificate degree programs.

Prerequisites
CS570 is a required co/prerequisites.

What Students Should Know Prior to this Course

  1. Basic Computer Usage Skills.
  2. Some experience with programming is strongly recommended.
  3. The following concepts from mathematics will be important in class. You can review the below links for more information.
    1. Summation Notation
    2. Exponents
    3. Logarithms
    4. Polynomial Expressions
    5. Recursive Formulas

What Students will be able to do upon Successfully Completing this Course:

  1. Students will be able to analyze algorithms.
  2. Students will understand a set of fundamental algorithms and how to apply them.
  3. Students will understant fundemental data structures and when to use each.
  4. Students will be able to explain why algorithms are efficient and correct solutions to problems.
  5. Students will be able to determine the applications and limits of data structures and algorithms.
  6. Students will understand how complex computation is built from simple components.

Textbook

No Textbook. Free Online Resources Only.

Course Material

Lectures/Readings

Homeworks

Quizzes

Research Papers

Slack Channel

Late Submissions

Special Circumstances

Course Policies

Academic Honesty Policy

The CCI Academic Honesty policy is in effect for this course. Please see the policy at http://drexel.edu/cci/resources/current-students/undergraduate/policies/cs-academic-integrity/.

Academic Honesty Violations will be reported to the University. Punishment will be determined by the severity of the incident. Punishments include, but are not limited to,

Grading and Policies

Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.

University Policies
In addition to the course policies listed on this syllabus, course assignments or course website, the following University policies are in effect:

Topics

  1. Algorithm Fundamentals
  2. Recursion
  3. Searching and Sorting
  4. Fundamentals of Simple Data Structures( lists, trees, graphs)
  5. Intro to algorithm analysis and order of growth
  6. Intro to algorithms in distributed systems.

Tentative Course Schedule

Please see the appropriate assignment webpages for a detailed description of course deliverables.

Week Topic Reading Homework
1 (4/6/20) How does a computer work? Chapter 1 of PDF Homework 1
Due Monday 4/13/20 at 11:59PM
2 (4/13/20) Basic Algorithmic Structures Chapter 2 of PDF Homework 2
Due Monday 4/20/20 at 11:59PM
3 (4/20/20) Recursion Chapter 3 of PDF Homework 3
Due Monday 4/27/20 at 11:59PM
4 (4/27/20) Analysis of Algorithms Chapter 4 of PDF Homework 4
Due Monday 5/4/20 at 11:59PM
5 (5/4/20) Searching and Sorting (Part 1) Chapter 5 of PDF Homework 5
Due Monday 5/11/20 at 11:59PM
 Research Paper 1 Due Friday 5/8/20 at 11:59PM
6 (5/11/20) Searching and Sorting (Part 2) Chapter 6 of PDF Homework 6
Due Monday 5/18/20 at 11:59PM
7 (5/18/20) Linked Lists and Memory Chapter 7 of PDF Homework 7
Due Monday 5/25/20 at 11:59PM
8 (5/25/20)
Memorial Day
Trees and Sets Chapter 8 of PDF Homework 8
Due Monday 6/1/20 at 11:59PM
9 (6/1/20) Graphs Chapter 9 of PDF Homework 9
Due Monday 6/8/20 at 11:59PM
10 (6/8/20) Research Paper 2 Due Friday June 12, 2020 at 11:59PM

Additional Resource Links

  1. Binary Numbers
  2. Hex Numbers
  3. Assembly
  4. Algorithms
  5. Recursion
  6. Analysis
  7. Searching
  8. Sorting
  9. Sets
  10. Trees
  11. Graphs
  12. DFA