CS 520 Computer Science Foundations - Syllabus

Term and Credits

Spring 2018-2019
3 Credits

Room and Time

Monday 6:00pm-8:50pm 3675 Market Street Room 1052

Videos lectures will be provided for online section.

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: 3675 Market Street Room 1058
Extention: 215-895-2347
Office Hours: Tuesday 2-5PM, Wed 3-4PM

Teaching Assistant(s)

Adit Gupta
Electronic Mail Address: ag3338@drexel.edu
Office: Drexel CLC (Room 1066 First Floor 3675 Market Street)
Office Hours:See CLC Website
https://www.cs.drexel.edu/clc

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 prove properties of algorithms and data structures using induction.
  3. Gain familiarity with basic data structures and algorithms related to them, such as trees and graphs.
  4. Learn the limits and applications of regular expressions, context free grammars, and turing machines.
  5. Learn relationships between languages and automata.
  6. Learn to use logic to prove properties of algorithms.

Audience and Purpose within Plan of Study

This course is for graduate students with little or no 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
None

What Students Should Know Prior to this Course

  1. Basic Computer Usage Skills.
  2. Some experience with programming is recommended but not required.
  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 be able to prove properties of algorithms using induction, proof by contradiction, and predicate logic.
  4. Students will be able to apply regular expressions and context free grammars to parse strings.
  5. Students will be able to determine the applications and limits of data structures, algorithms, and languages.

Textbook

We will use only free/library resources for this class.

Book of Proof (Second Edition)
Richard Hammack
Paperback: ISBN 978-0-9894721-0-4
Hardcover: ISBN 978-0-9894721-1-1
Available for Free online at: http://www.people.vcu.edu/~rhammack/BookOfProof/

Introduction to Theory of Computation
Anil Maheshwari and Michiel Smid
Available for Free online at: http://cglab.ca/~michiel/TheoryOfComputation/

Supplemental Texts

If you want a textbook about the Algorithms we will be studying, I recommend this one. It is not required. I just think its a great resource.

Algorithms (4th Edition)
Robert Sedgewick, Kevin Wayne
ISBN-10: 032157351X
ISBN-13: 860-1400041420
See it on Amazon

Course Material

Lectures

Labs

Homeworks

Presentatations

Reflections

Midterm/Final Exam

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.

Computer/Software Help
iCommons: http://drexel.edu/cci/about/our-facilities/rush-building/iCommons/

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. Graphs
  2. Searching
  3. Sorting
  4. Proof Methods
  5. Computational Models: DFA, CFG, Turing Machines

Tentative Course Schedule

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

Week Topic Reading In Class Homework
1 (4/1/19) Binary Numbers, Boolean Logic Chapter 2 for Book of Proof
Binary Numbers
Two's Complement
Logic Circuits
Binary Addition
Number Representations
Lab 1 and Lab 2  
2 (4/8/19) DFA and Languages Chapter 2.1-2.4 of Theory of Computation
Lab 3 and Lab 4  
3 (4/15/19) NFA and Regular Expressions Chapter 2.5-2.9 of Theory of Computation
DFA/NFA Simulator
Lab 5 Homework 1 - Due April 15, 2019 at 11:59PM
4 (4/22/19) Context Free Grammars Chapter 3.1-3.3 of Theory of Computation
Lab 6 Homework 2 - Due April 22, 2019 at 11:59PM
5 (4/29/19) Turing Machines Church-Turing Thesis
Chapter 4 from Theory of Computation
Turing Machine Simulator
Lab 7 Homework 3 - Due April 29, 2019 at 11:59PM
Presentation 1 Due April 29, 2019 at 11:59PM
6 (5/6/19) Introduction to Algorithms and Induction Algorithmic Thinking: The Key for Understanding Computer Science
How to write a Pseudo Code?
Linear Search
Binary Search
Big Oh Notation
Complexity
Asymptotic Notations
Lab 8 Homework 4 - Due May 6, 2019 at 11:59PM
Reflection 1 - Due May 6, 2019 at 11:59PM
Midterm - Online
7 (5/13/19) Sorting Algorithms Merge Sort
Quick Sort
Insertion Sort
Tower of Hanoi
Lab 9 Midterm - Due May 15, 2019 at 11:59PM
8 (5/20/19) Intro to Trees Binary Search Trees
Lab 10 Homework 5 - Due May 20, 2019 at 11:59PM
Presentation 2 - Due May 20, 2019 at 11:59PM
9 (5/27/17) - No Monday Class Intro to Graphs and Shortest Paths Graph Representations
Depth First Search
A* and Dijkstra
Dijkstra
Lab 11 Homework 6 - Due May 27, 2019 at 11:59PM
Reflection 2 - Due May 27, 2019 at 11:59PM
10 (6/3/19) Induction Chapter 10 (Induction) from Book of Proof
Minimum Spanning Trees will not be included but you might still find the below links interesting.
Prim's Algorithm
Kruskal's Algorithm
Lab 12 Homework 7 - Due June 3, 2019 at 11:59PM
Presentation 3 Due June 3, 2019 at 11:59PM
11 (6/10/19) Final Online Due June 14th 11:59PM - No In Class Events this week Homework 8 - Due June 10, 2019 at 11:59pm
Reflection 3 - Due June 10, 2019 at 11:59PM