2022-2023 Academic Catalog 
    
    Apr 20, 2024  
2022-2023 Academic Catalog [ARCHIVED CATALOG]

Computer Science Major


Return to {$returnto_text} Return to: Programs of Study

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.

  • Engage with Computer Science student clubs for a community, as well as resources, events, and opportunities. The most active CS clubs on campus include ClarkTIE (Clark Center for Technology, Innovation & Entrepreneurship), C4 (Clark Competitive Computing Club) and ACM chapter at Clark.

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 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 Department of Computer Science website.

Major Requirements


The computer science major follows the ACM curriculum guidelines. Two or three courses in fundamentals of computer science, and one course in discrete structures (recommended for CS students) or 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, preferably by the end of the first year and if not 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.

Introductory Courses (3 courses)


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. Prior to taking CSCI 120, students can enroll in CSCI 103 - Introduction to Societal Computing , which teaches the principles of computer science and the effects of digital technology on the society providing a gentle introduction to computer programs, storing information, digital privacy, technology bias and other computing matters of critical importance to the society (CSCI 103 is an optional course that does not count towards the major). The second course is CSCI 121 - Data Structures  (offered periodically). Completing 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 and 121 are science perspective (SP) courses, and CSCI 122 - Introduction to Discrete Structures  (recommend for CS students) and  MATH 114 - Discrete Mathematics  are both formal analysis (FA) courses. In addition to this CSCI 103 fulfills the diversity & Inclusion (DI) as well as the formal analysis (FA) perspectives but does not count toward the major.

Due to high student demands for introductory computer science courses,  CSCI 120  is mostly reserved for first-year (FY) students and also welcomes students from other classes. CSCI 120 in the Fall may be taken as a first-year intensive (FYI) course or a regular course. 

Calculus (2 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.
 

Core Courses (4 courses)


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. 

(Total: 13 courses)


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 delaying 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 CSCI 122  (recommended for CS students) or MATH 114  in the spring semester. Students with no prior programming experience can also start with CSCI 103 which teaches programming using Snap - a block-based environment, however, it is an optional course and does not count towards the major. 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 .

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 weeks of 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 Department of Computer Science.

  • 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.

Honors


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 year 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.

Return to {$returnto_text} Return to: Programs of Study