Computer Science Overview
The Department of Computer Science at Clark University provides a supportive environment and offers rigorous courses and programs , with excellent career prospects for students. We think of computer science neither as a narrow path to the next killer app, nor indeed to any specific product. Rather, computer science is a broad discipline that provides the means to solve complex challenges more efficiently and effectively than ever before.
As a computer science student, you will develop a strong foundation in theory and computational problem solving skills that are broadly applicable to many disciplines and careers. You will also build your expertise by applying your foundation and skills to practical applications. Our liberal arts curriculum will give you an appreciation for the interconnected nature of our society, and you will graduate ready to apply and extend your skills in society, industry, or research through digital innovations, new discoveries, and never-before-imagined solutions.
Our faculty are well-known researchers, care deeply about teaching, and work hard to help our students achieve their potential. What sets us apart is two-fold:
We have outstanding faculty with expertise in a variety of fields - more diverse than what you will find at most small colleges.
We are a small department and can provide a more supportive environment than what you will find at a bigger university.
Our faculty and students work together to provide a nurturing community such as one finds in small colleges, with the quality of a big university.
Excellent co-curricular and extra-curricular opportunities
Computer science students at Clark have excellent opportunities inside and outside the classroom, including but not limited to the following. Many of these opportunities are normally reserved for graduate students in other institutions.
Work with faculty on research projects, publish co-authored papers, and participate in professional conferences.
Follow their own interests, developing innovative projects while working with a faculty advisor.
Train and work as undergraduate teaching assistants and computer lab administrators within the department; and work at Clark’s Information Technology Services and other departments.
Participate in programming competitions and hackathons - our students have excelled in these events.
Diverse Options for Double Majors, Minors and Concentrations
Computer science students at Clark often have other interests or come from students who initially planned to study other disciplines. Clark offers a variety of wonderful programs, and many of our students double major or pursue one or more minors in diverse disciplines, such as: Data Science, Economics, Mathematics, Natural Sciences (Biology, Chemistry, and Physics), Environmental Science, Business Management, Political Science, Geography/GIS, Psychology, Education, English, Foreign Languages, Music, Philosophy, and Game Design.
Our students also volunteer in the community, study abroad, create startups, and work toward making a difference in the world.
Outstanding Student Outcomes and Return on Investment
We have an outstanding placement record of computer science students. Our graduates have gone on to some of the most prestigious companies, research labs, and graduate schools in the world. Others choose Clark’s Accelerated Degree Program (also known as “fifth-year program”), offering master’s degrees in many fields such as data analytics, information technology, finance, business administration, and education. The Columbia Combined Plan Program (also known as the 3-2 Engineering Program at Clark) allows students to earn a BA degree from Clark and a BS degree from Columbia University (subject to their admission) in diverse disciplines such as computer science, computer engineering, operations research, and financial engineering.
Recent articles about our students on the Clark website (https://clarknow.clarku.edu/topic/computer-science/) and our department Facebook page (https://www.facebook.com/MathCSAtClark/) highlight many of their achievements. These students have diverse interests, including double majors and minors, and have been active in student organizations such as Student Council, Model UN, Diversity, Hip Hop, Theatre, Standup Comedy, Martial Arts, Investment, and Entrepreneurship.
For more information, please visit the Computer Science Department website.
The computer science major follows the ACM curriculum guidelines. Two courses in fundamentals of computer science, and one course in discrete mathematics, serve as general introductory courses. Four intermediate courses (core requirements) expose the principles of computer science. One year of calculus is required and should be completed as soon as possible, if at all possible by the end of the sophomore year. Beyond this, a series of elective courses is offered in which applications and advanced topics are explored.
Students must earn a minimum course grade of C- in order to receive major or minor credit in Computer Science. No course can be taken as pass/fail for the computer science major or minor.
These courses are direct or indirect prerequisites for all intermediate and advanced courses and should be taken as soon as possible.
Students normally begin with CSCI 120 , which does not require any prior computer science experience. This course is recently redesigned and teaches Python and computer science fundamentals. The second course is CSCI 121 - Data Structures or CSCI 124 - Honors Introduction to Computing (offered periodically). Completeing the introductory course sequence as soon as possible will allow students to take core and advanced courses and become competitive for on-campus job opportunities and external internship applications early on.
These introductory courses are also part of Clark’s Program of Liberal Studies (PLS). More specifically, CSci 120, 121, and 124 are science perspective (SP) courses, and MATH 114 is a formal analysis (FA) course.
Due to high student demands for introductory computer science courses, CSCI 120 and CSCI 124 are mostly reserved for first-year (FY) students and also welcome students from other classes. CSCI 120 in the Fall may be taken as a first-year intensive (FYI) course or a regular course.
This one-year sequence should be completed as soon as possible, preferably in the students’ first year at Clark. Any of these courses can be used to fulfill the formal analysis requirement.
The core computer science courses should be taken as soon as possible, especially CSCI 160, which is a prerequisite to most 200-level CSCI courses.
Four courses in computer science at the 200 level, not including internships or directed study courses. We encourage students to take more courses for their own learning and competitiveness for internship, job and graduate school applications.
Declaring a Major
The department has a system of advising to assist students with their course selections. The CS faculty will be happy to talk to students and help them plan their studies at Clark to pursue all their interests and reach their potential. Please contact the program faculty at csAdvising@clarku.edu.
A major must be declared no later than the second semester of the sophomore year; earlier declarations are encouraged. Students should choose an academic adviser from the department faculty as early as possible, at the latest by the time the major is declared.
Entering students enrolled in a first-year intensive course outside computer science are especially encouraged to make a prompt choice of an unofficial secondary adviser in the Computer Science program, who will be able to supplement the advice offered by their primary adviser.
Suggested Program Sequence
It is important for students to begin the computer science program early in order to progress in their computer science study and become competitive for on-campus and off-campus opportunities. Computer science courses are hierarchical with clear and strict prerequisite structures. Delaying any introductory course in our program generally means delays the computer science study by one whole year, which can put students at a significant disadvantage.
Common program sequence begins with CSCI 120 in the fall of the first year, followed by CSCI 121 and MATH 114 in the spring semester. A calculus sequence (MATH 120 , MATH 121 , or MATH 124 , MATH 125 ) should be taken in the first year if possible, and in no case later than the second year. The four core computer science courses should be taken as soon as possible.
Directed Study Courses
Directed Study courses on special topics may be arranged with the permission of a member of the departmental faculty who will serve as supervisor. Departmental policy requires that a directed study course can only be taken Pass/Fail. Directed study courses may not be substituted for 200-level courses to fulfill departmental requirements.
Computer Science Capstone Requirement
The capstone serves one or more of the following purposes: solidifying a deeper understanding of a topic of interest, pursuing an integrative large-scale project in computer science or a related field, and applying knowledge to real-world problems across a variety of domains.
The University’s general requirement is that a student completes one capstone for each of their majors during their senior year or the summer before it. Since some CS majors complete their academic requirements by the end of their junior year, the CS faculty have decided to adopt the following rule, starting AY 2020-21: A computer science major may work on a capstone in a 200-level CSci course or through another approved activity AFTER the student has successfully completed 5 computer science courses above (and not including) CSCI 121 - Data Structures or CSCI 124 - Honors Introduction to Computing .
Students may complete the computer science capstone requirement either through a 200-level course or through an alternative capstone experience.
The following 200-level courses currently may be taken as computer science capstone courses:
Other advanced computer science courses and courses from other departments may be taken as a capstone course with department permission.
In these courses, students will often give presentations in class, at Academic Spree Day, and/or in department seminars. To satisfy the capstone, students will need to do at least one of those in order to demonstrate the capacity to practice in computer science. Students who wish to take a 200-level course to satisfy their capstone requirement must arrange to do so with the instructor and complete the Capstone paperwork within the first two week the class. The course instructor will serve as the capstone advisor and certify the completion of the capstone requirement.
Alternative capstone experience may include any of the following, subject to the approval of the Computer Science Department.
Summer research, self-designed projects, academic internships, and/or suitable courses during their study abroad may satisfy the capstone if there is a significant computational component.
Depending on the level of engagement, practices for and participations in programming contests and hackathons may also be regarded as a capstone experience.
Double majors may satisfy the capstone in another major if there is a significant computational component, in the judgement of the computer science program faculty.
Students can apply for departmental honors in recognition of meritorious academic achievement and creativity in research and development. An honors applicant must maintain at least a 3.2 average (4.0 scale) in courses required for the major. Students interested in pursuing the honors program should consult their department adviser and reach out to their intended Honors advisor during their junior year. Accepted students will conduct a project under faculty member guidance during the junior and/or senior years and present their project at a departmental seminar. Recommendation for honors, and the level of honors, in computer science is made on the basis of the quality of the work and student presentation.
Computer Science Faculty
John Magee, Ph.D., Chair
Kenneth Basye, Ph.D.
Frederic Green, Ph.D.
Li Han, Ph.D.
Gary Holness, Ph.D.
Shuo Niu, Ph.D.
Olufemi Odegbile, Ph.D.
Peter Story, Ph.D.
Catalin Veghes, M.S.
Computer Science Courses
Courses offered within the last 2 Academic Years