Gary M. Weiss's Teaching
I am currently (Spring 2009) on sabbatical and am not teaching. In Fall
2009 I will be teaching one undergraduate courses, Structures of Computer
Science (M, Th 11:30 - 12:45) and one graduate course,
Algorithms and Data Analysis (Th 5:30-7:30). If you have any questions
about these courses, please email me.
I have taught a variety of courses over the years, but on this page I focus on
the courses I teach regularly or have taught recently. I teach several courses
in my field of specialization, data mining and machine learning,
at both the undergraduate and graduate levels (these courses are
described below). If you are interested in these topics or in conducting
research with me, you should consider taking one of these courses as
early in your studies as feasible. The department of
Computer and Information Science is at the cutting edge in
that we offer undergraduate courses in data mining and machine learning and
require each undergraduate to take a course in one of these two topics. Note:
if you are not a CS student but are interested in these topics, please talk to
me, since it may be possible to still take some of these courses.
I also regularly teach a course in discrete mathematics, called
"Structures of Computer Science", which covers most of the areas of mathematics
that are critical to computer scientists (but are also very important to other
fields). This course satisfies Fordham's mathematical and computational
reasoning core curriculum requirement and is typically taken by Freshman.
Courses in Data Mining and Machine Learning
Data Mining involves finding hidden patterns in data using automated or
semi-automated "intelligent" methods. Data mining can be viewed as
a form of data analysis but the methods that are used tend to come out of
artificial intelligence. Machine learning is the subfield of artificial
intelligence that is concerned with methods that allow a computer to
learn, or (expressed more prosaically) improve their performance over time
(and yes, computers can learn). In a way data mining can be viewed
as a specific type off machine learning,
where the data is typically (but not always) in a database or data warehouse.
Learning to predict stock market movements based on historical data or who has
a disease based on medical data are examples of data mining (and machine
learning), but a robot learning how to navigate a maze would typically be
considered machine learning but not data mining. If these topics sound
interesting, that is because they are!
At the undergraduate level, I teach
CS4631: Data Mining and
CS4621: Machine Learning (the machine learning course is relatively
new and I will be teaching it for the first time in Fall 2009). Both courses
tend to have a project that allows the student to explore a significant
issue in the field, because I think it is important to allow students to
explore an issue in depth and "get their hands wet." Although not expected,
I encourage students to submit their work to workshops or conferences in the
field and am happy to say that several students have accepted the challenge
and have had their work accepted and published. At the graduate level
I teach a course which is essentially an applied course in data mining,
CSGA 6950: Algorithms and Data
Analysis. This course is frequently taken by students who are not computer
scientists but who have a need to analyze data and want to learn (the much
in demand) data mining techniques to supplement their knowledge of statistical
data analysis techniques. Thus, this course assumes little specific knowledge
of computer science, which is not a problem since the course focuses on
applying techniques, not understanding the details of how the computer
algorithms function. As with the undergraduate class in data mining, this
class also includes a significant project. This class, when paired with a
course in financial econometrics from the Economics department, enables a
student to obtain an advanced certificate in Financial Econometrics and
Data Analysis.
Course in "Structures of Computer Science"
This core curriculum course covers many of the topics that make up discrete
mathematics. We typically cover sequences and sets, propositional logic,
functions, relations, combinatorics (counting and probability), and graph
theory (of these topics my favorite by far is combinatorics). In addition, the
course includes one or two computer projects, which assume no prior knowledge
of computer programming. These projects typically involve creating web pages
and/or creating basic animations using a simple "drag-and-drop" user
interface. These projects are designed to not just teach you something
valuable, but to also be fun. Hopefully if you enjoy them you will consider
additional coursework in Computer Science.
|