Computer Science Overview
The Department of Mathematics and Computer Science at Clark University provides a supportive environment and offers rigorous undergraduate programs in two disciplines: mathematics and computer science. 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 thinking and 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 student 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. A popular double major is Computer Science and Mathematics! Other disciplines popular with our students include Data Science, Economics, Natural Sciences (Biology, Chemistry, and Physics), Mathematical Biology and Bioinformatics, Computational Science, Environmental Science, Business Management, Political Science, Geography/GIS, Psychology, Education, English, Foreign Languages, Music, Philosophy, and Graphic 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 free”), offering master’s degrees in many fields such as 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 applied mathematics, applied physics, computer science, computer engineering and operations research.
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 Mathematics and Computer Science Department website.
The computer science major follows the ACM curriculum guidelines. Two courses or an accelerated Honors course 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 (typically offered in the fall), which does not require any prior computer science experience. This course is recently redesigned and teaches Python and computer science fundamentals.
For students who have good analytical skills complete one or more semesters of high school or online computer science courses, are familiar with Python based computational problem solving, we encourage the students to contact the computer science program about beginning with CSCI 124 (typically in the fall) or CSCI 121 (typically in the spring). Starting with either of these courses will allow students to take core and advanced courses and become competitive for on-campus job opportunities and external internship applications early on.
Students interested in exploring data science (Data Science Minor ) can also talk to the department about starting with DSCI 125 (typically in the fall).
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. DSCI 125 is a Problem of Practice (POP) course
Due to high student demands for introductory computer science courses, CSCI 120 and CSCI 124 have some seats reserved for first-year (FY) students. They may take CSCI 120 or CSCI 124 as their first-year intensive (FYI) course or a regular course. We also welcome students from other classes to take these courses.
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 great disadvantage.
An ideal program sequence begins with CSCI 120 or CSCI 124 in the fall of the first year, followed by CSCI 121 or an intermediate computer science course for the students who have completed CSci 120 or CSci 124 respectively, with MATH 114 taken either in the fall or 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.
The three mathematics courses required for the computer science major are meant to ensure that all students will have the mathematical foundation and analysis skills, which are indispensable for the study of computer science. MATH 114 is a direct or indirect prerequisite for essentially all intermediate and advanced computer science courses, and should be taken as early as possible by any student who may be interested in computer science. If it is not possible for a student to take both MATH 114 and Calculus during the first year, preference should be given to MATH 114 .
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
Students majoring in computer science are required to fulfill a capstone requirement in their senior year or the summer before. 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.
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:
CSCI 201 - Proseminar in Computer Science
CSCI 212 - Numerical Analysis
CSCI 220 - Database Management and System Design
CSCI 230 - Compiler Design
CSCI 250 - Software Engineering
CSCI 255 - Design and Analysis of Algorithms
CSCI 260 - Computer Graphics
CSCI 262 - Computer Vision
CSCI 265 - Robotics
CSCI 297 - Honors in Computer Science
CSCI 299 - Directed Study in Computer Science
Other advanced computer science courses 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 have a Capstone Form signed by the instructor before the class starts. 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:
Summer research, self-designed projects, 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.
The student must submit the Capstone Form with their capstone adviser’s signature to the department before beginning the qualifying activity. At the end of their capstone experience, the student must obtain on the Capstone Form another signature from their capstone advisor to certify their satisfactory or unsatisfactory performance for the capstone requirement.
It is the student’s responsibility to coordinate all capstone processes necessary outside departmental requirements, such as university required forms.
A major who maintains at least a 3.2 average (4.0 scale) in courses required for the major may apply for the departmental honors program. A student’s application in writing must be directed to a prospective honors adviser or the department chair by the end of the student’s junior year. Honors may be achieved in one of two ways: (1) a unified four-course sequence as a senior (some parts of which may consist of directed readings) followed by a comprehensive examination; or (2) an honors project to be presented at an oral defense or at a department seminar. This project may be an independent or joint research thesis, or it may be a programming project. Supporting course work may be required. Students interested in pursuing the honors program should consult their department adviser. The student may register for CSCI 299 for course credit for an honors thesis. Upon satisfactory completion of the program, the department may recommend graduation with honors, high honors or highest honors.
Computer Science Faculty
Kenneth Basye, Ph.D.
Frederic Green, Ph.D.
Li Han, Ph.D., Chair
John Magee, Ph.D.
Shuo Niu, Ph.D
Natalia Sternberg, Ph.D.
Computer Science Courses
Courses offered within the last 2 Academic Years