2023-2024 Academic Catalog 
    
    Nov 21, 2024  
2023-2024 Academic Catalog [ARCHIVED CATALOG]

Computer Science Major


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.

CSCI 120 - Introduction to Computing   and CSCI 124 - Honors Introduction to Computing  are the first courses that students take in computer science, and they teach Python and computer science fundamentals. Students with prior programming knowledge can choose to enroll in CSCI 124 , which is an accelerated version of CSCI 120 . Both courses may be taken as first-year intensive (FYI) courses or regular courses in the fall. Before taking CSCI 120  , students can opt to enroll in CSCI 103 - Introduction to Societal Computing , which is an optional course that provides a gentle introduction to computer programs and covers the effects of digital technology on society. 

After completing CSCI 120  or CSCI 124 , students take CSCI 121 - Data Structures . Completing these introductory courses as soon as possible will allow students to take core and advanced courses, become competitive for on-campus job opportunities, and apply for external internships early on.  

CSCI 120 CSCI 121  and CSCI 124  are science perspective (SP) courses, while CSCI 103  fulfills the diversity and inclusion (DI) and the formal analysis (FA) perspectives. CSCI 122 , which is recommended for CS students, and MATH 114  are both formal analysis (FA) courses and are part of Clark’s Program of Liberal Studies (PLS).  

Due to high student demands for introductory computer science courses,  CSCI 103 CSCI 120  and CSCI 124  have reserved seats for first-year (FY) students and also welcomes students from other classes.

 

CSCI 120  and CSCI 121  are offered every semester while the other introductory courses are offered every year.

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. The core courses encompass theoretical and applied computer science helping students develop their analytical aptitude as they tackle more intricate challenges. The core courses include: 

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

A computer science major is required to complete one capstone project 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, CS majors can complete their capstone requirement by working on a 200-level CSCI course or through an approved alternative activity after successfully completing at least five 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.

Li Han, Ph.D.

Gary Holness, Ph.D.

Shuo Niu, Ph.D.

Lewis Tseng, Ph.D.

Olufemi Odegbile, Ph.D.

Peter Story, Ph.D.

Catalin Veghes, M.S.