Introduction
About Me
Syed Fahad Sultan سید فہد سلطان
Pronunciation: Saiyyudh Fahad Sool-tahn
Just call me “Dr. Sultan” (click on the speaker for a short audio clip: 🔈)

I am originally from Lahore, Pakistan and joined Furman University in Fall 2022 after earning my Ph.D. in Computer Science from State University of New York at Stony Brook.

Fresh out of college, I worked as a professional video game developer for a startup that later got acquired by the Japanese gaming giant DeNA. During this time, I was part of the team that built TapFish, the top-grossing game worldwide, for two weeks in 2011, on both the App Store and Google Play.
![]() |
![]() |
![]() |
|
|
|
I then went on to work at Technology for People Initiative, an applied research lab in my where I mined social media and cell phone data for proxies of socio-economic indicators that allowed more inclusive policy-making for marginalized communities. During these years, I also dabbled in data journalism and helped organize a boot camp on using data for journalists with the support of the International Center for Journalists (ICFJ) and the Knight Foundation.
In 2015, I moved to Mecca, Saudi Arabia to work for the GIS Innovation Center (now Wadi Makkah). There I worked on innovative urban sensing techniques for better crowd control during the annual pilgrimage to the city, the largest human gathering in the world every year.
During my PhD, I worked at the intersection of computational neuroscience, bioinformatics and machine learning. My work focused on identifying neurological and genetic biomarkers linking type-2 diabetes with cognitive disorders such as Alzheimer’s and other dementias.
How to Reach Me
Office: Riley Hall 200-H
Email: fahad.sultan@furman.edu
I don’t hold fixed office hours, but I’m available for on-demand meetings in real time. If you’d like to guarantee a time, you can schedule a meeting using this link. https://calendly.com/ssultan-dpq/15-minute-meeting.

About the Course
Course website: https://fahadsultan.com/csc272
The Syllabus is available on the course website. In particular, please make sure to read the Grading, Academic Integrity and Textbook and other Resources sections carefully.
All of the course content will be posted on this website.
Important announcements will be made on both the course website homepage and in class.
You are to submit assignments and exams on the course Moodle page. I will also upload all of your grades there.
How-to knowledge > What-is knowledge
Declarative knowledge is knowledge about facts. It is knowledge that answers the “What is” questions. Most courses outside Computer Science are about declarative knowledge.
In contrast, Imperative knowledge is knowledge about how to do things. It is knowledge that answers the “How to” questions.
While we will spend a non-trivial amount of time in this course on declarative knowledge, the overwhelming majority of this course will focus on imperative knowledge. Your grade in this course will be determined by your ability to apply declarative and more importantly imperative knowledge to solve problems.
Research shows that there is only one way to acquire imperative knowledge: Practice, Practice, Practice !. Practice combined with feedback is the only way to achieve mastery.
In this course, you will be given ample opportunities to practice along with regular feedback.
Assignments
Approach assignments purely as opportunities to learn, prepare for exams and to prepare for your career.
It is not worth cheating on assignments. Just come talk to me if you are struggling with an assignment. I will literally just tell you the answer.
You can schedule a time to get your assignments graded using this link.
Written Assignments:
Written assignments are to help you build a deeper understanding of algorithms and math covered in class.
These could simply be math problems or involve tracing algorithms and dry-runs.
Both handwritten or typed submissions are acceptable. Submissions, as always, on Moodle.
Programming Assignments:
Programming assignments are going to be posted at the start of the lab session each week and will be due in 10 days, unless otherwise specified.
All Programming assignments will be graded through an in-person code review. You are to give a walkthrough of your code and be able to answer questions about it.
During these code review, you will be given feedback on how to improve your code and avoid common mistakes.
You should expect questions in the exams similar to assignments.
AI Policy
This course encourages you to explore the use of generative artificial intelligence (GAI) tools such as ChatGPT for all assignments and assessments. GAI is a subset of AI that utilizes machine learning models to create new, original content, such as images, text, or music, based on patterns and structures learned from existing data. As is indicated in the University academic integrity policy, use of GAI must be appropriately acknowledged and cited as you would any other source. By submitting assignments in this class, you pledge to affirm that they are your own work and you attribute use of any tools and sources. Violations of this policy will be considered academic misconduct.
It is your responsibility to assess the validity and applicability of any GAI output that is submitted; you bear the final responsibility. You should be aware that all GAI tools have a tendency to make up incorrect facts and fake citations or confidently reassert factual errors, that code generation models have a tendency to produce inaccurate outputs, and that image generation models can occasionally come up with highly offensive products. You will be responsible for any inaccurate, biased, offensive, or otherwise unethical content you submit regardless of whether it originally comes from you or a GAI tool. Please also note that different classes at Furman may implement different GAI policies, and it is your responsibility to conform to expectations for each course.
Class Participation
Given the glut of information accessible online and otherwise in this day and age, meaningful interactions with your peers and teachers is essentially why you are paying your college tuition.
To encourage this, I have allocated 5% of your course grade to class participation. Ways to earn class participation points include:
- Coming to class and labs regularly
- Asking questions during class
- Sharing your thoughts and comments during class discussions
- (Optional) Answering questions during class
Class participation is somewhat subjective, but I will do my best to be as fair as possible. I will share your overall class participation points with you with each graded exam.
Exams
There will be three exams in the course, including the final. The final exam will be cumulative. Exams constitute 60% of your course grade.
All exams will be on paper and closed-book. Exam 3 will be on the last day of class.
The finals week will be used for project presentations.
Giant Asterisk *
Everything is tentative and subject to change
Any and all feedback is welcome!
I will an anonymous feedback poll on Moodle. Please use this to anonymously share any feedback.
Share any changes you want me to make in the course, at any point in the semester. You can submit multiple times over the span of the semester.
Think of it as a Complaints Box for the course.
What is Data Mining?
“Data Mining” is a term from the 1990s, back when it was an exciting and popular new field. Around 2010, people instead started to speak of “big data”. Today, the popular term is “data science”. There are some who even regard data mining as synonymous with machine learning. There is no question that some data mining appropriately uses algorithms from machine learning. However, during all this time, the concept remained the same: use the most powerful hardware, the most powerful programming systems, and the most efficient algorithms to solve problems in science, commerce, healthcare, government, the humanities, and many other fields of human endeavor.

From the Venn Diagram, the course content is going to cover ✅ Hacking Skills and ✅ Math & Statistics in detail but not ☐ Substantive Expertise. For that missing piece, I strongly encourage you to bring in knowledge from your GERs and other Non-CS department courses into this class and the term project in particular. Nothing would make me happier than to see projects that combines CS with your other interests.
Expect lots of Programming and lots of Math!
“But wait, I am not a Math Person!” you say!
There is no such thing as a “Math Person”. I do recognize, however, that Math Anxiety is a real thing and is very common. It is a feeling of fear based on a belief that one is not good at math or that math is inherently difficult.
Please use this course as an opportunity to overcome your Math anxiety!
In this course, the code you write will be mostly math. Most modern “AI” is just that: math, in code.
This presents a unique opportunity for you to overcome your Math anxiety. You will be able to see the math in action, be able to visualize the results and have a conversation with it.
Trust me, there is a tremendous amount of beauty and joy to be found in mathematics. And if beauty and joy aren’t really your thing, then let me also assure you there is a lot of money to be made these days by being good at coding math. Either way, the rewards are well worth the effort!
Pandas
Pandas
is a powerful Python library that is widely used in data science and data analysis. It provides data structures and functions that make working with tabular data easy and intuitive.
It is generally accepted in the data science community as the industry- and academia-standard tool for manipulating tabular data.
Jupyter Notebooks
Jupyter Notebooks are an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text.
They are widely used in data science, scientific computing, and machine learning for data cleaning and transformation, numerical simulation, statistical modeling, data visualization, and much more.
Google Colab
Google Colab is a free, cloud-based platform that allows you to write and execute Python code in your web browser. It provides a Jupyter notebook environment with access to powerful computing resources, including GPUs and TPUs.
Note that code running on Google Colab is on a remote server, not on your local machine. This means that any files you want to use in your code must be uploaded to the Colab environment or accessed from a cloud storage service like Google Drive.