The purpose of this course is to provide a comprehensive foundation to apply computational research methods in solving problems in Information Systems. This course will enhance students’ reasoning and problem-solving abilities, particularly in dealing with algorithmic problems. This course covers concepts primarily from discrete mathematics and linear algebra. Example topics in discrete mathematics include logic and proofs, computational complexity, induction, and recursion. Examples of topics from linear algebra include matrix powers and diagonalization, singular value decomposition, and spectral analysis of graphs. All topics are illustrated with real world examples such as Markov chains, Google’s PageRank algorithm, social network analysis, and graph partitioning. We will not assume any background beyond high school level mathematics and familiarity with programming concepts. However, students are expected to spend time in learning the concepts in this course, many of which will be covered in details.