Department of Computer Science
Bachelor of Arts, Bachelor of Science
Ali Erkan, Professor and Chairperson
From scientific research and business to entertainment to health care, computing provides the tools and infrastructure that shape how we live and work in the contemporary world. Our three majors and five minors are designed to equip students with the knowledge, problem-solving abilities, and technical skills needed to design and create this technology for the 21st century. All of our courses introduce real-life problems and emphasize both practical software development and fundamental concepts, preparing students to understand and adapt to continually evolving technologies. Our department also offers three micro-credentials for students to get academic recognition for targeted skill-sets related to computation.
Computer Science Major (B.A./B.S.)
Our department offers a B.A. and a B.S. degree in Computer Science. Both majors cover the fundamental concepts of computing and develop the problem-solving skills students need to create computer-based solutions across disciplines. Both majors emphasize the challenges of human-computer interaction and the design skills needed to make technology approachable, useful, and effective for people. Both majors also prepare students for careers in industry or for graduate study. However, the B.S. and the B.A. majors are structured differently to support students with different academic goals. Our B.S. places greater emphasis on software development and computer systems, while our B.A. allows for greater academic exploration by requiring fewer credits.
Artificial Intelligence (AI) Major (B.S.)
Artificial intelligence and machine learning are rapidly transforming every aspect of modern life, making AI a natural fit for a liberal arts education. Our B.S. degree in AI combines creative thinking, computational problem-solving, communication skills, and technical knowledge to give students a strong interdisciplinary foundation. This major focuses on the design and use of AI systems, emphasizing data-driven reasoning, machine learning, and algorithmic thinking to address real-world problems. Through our courses, students explore how data-driven methods shape society, consider ethical questions related to automation and intelligent systems, and develop the advanced analytical skills needed to design and train machine learning models, evaluate AI-driven strategies, and address complex challenges in industry, research, and society. This broad perspective prepares students not only to understand emerging technologies, but also to help shape them for the betterment of humanity.
DATA Science (DS) Majors (B.S.)
Our B.S. degree in Data Science is offered in collaboration with the Mathematics department of Ithaca College. Please refer to the overview in the Mathematics Department catalog page:
https://catalog.ithaca.edu/undergrad/schools/school-humanities-sciences/department-mathematics
ARtificial Intelligence Minor
Our AI minor gives students a focused introduction to artificial intelligence, data-driven problem-solving, and computational thinking. Designed to complement a wide range of majors, the minor helps students understand how AI systems work, how intelligent technologies are developed, and how they can be applied thoughtfully across disciplines. It prepares students to engage with emerging AI tools and ideas in ways that are both technically informed and socially responsible.
Data-Centric Computing Minor
Our Data-Centric Computing minor gives students a practical foundation in working with data across a variety of formats and systems. Students learn how to generate, organize, store, and process data using tools such as spreadsheets, relational databases, non-relational databases, and scripting. Designed to complement fields such as the social and health sciences, accounting, business analytics, and finance, the minor helps students develop the technical skills needed to manage data effectively. Compared with the Data Science minor that focuses more heavily on statistics, our Data-Centric Computing minor emphasizes the representation, structure, storage, and querying of data, with additional exposure to Geographic Information Systems (GIS).
Systems Minor
Our computer systems minor gives students a strong foundation in the technologies that allow software to run reliably, efficiently, and securely. Students learn how computer systems are built and connected, from the organization of individual machines to the networks that allow them to communicate. For example, students enrolled in this minor learn how to build a small-scale Internet of their own, connecting computers, configuring communication between them, and seeing how data moves through a network. It also provides a foundation for future study in cybersecurity, where knowledge of systems, networks, and software behavior is essential.
App Development Minor
Our app-development minor provides the programming core of our curriculum. Students develop the skills needed to create applications for desktop, mobile, and web environments while learning principles that support effective, reliable, and user-centered software design. The minor also provides a foundation for future work in game development, allowing students to connect programming, design, and interactive technology in creative ways.
Computer Science Minor
Our computer science minor is for students in any major, from history and business to physical therapy and journalism. As our most flexible minor, it allows students to choose a path that best supports their own academic and professional goals. The minor helps students become quantitatively competent, technologically proficient, and better prepared to apply computing in meaningful ways within their own disciplines.
Data Science Minor
Our Data Science minor is offered in collaboration with the Mathematics department of Ithaca College. Please refer to the overview in the Mathematics Department catalog page:
https://catalog.ithaca.edu/undergrad/schools/school-humanities-sciences/department-mathematics
Micro-credentials
A micro-credential is a focused collection of courses that allows students to develop a targeted skill set in a specific area of computing. Our micro-credentials are shorter than a minor, but still provide practical knowledge and experience that can complement a student’s major, strengthen their academic profile, and support future work across a variety of fields.
-
The Computing Survey Micro-Credential introduces students to practical computing tools and concepts that are useful across disciplines. Students gain experience working with structured data, spreadsheets, scripting, and basic web development, giving them a broad foundation for using technology effectively in academic, professional, and everyday problem-solving contexts.
-
The Python Programming Micro-Credential gives students a focused introduction to programming and computational problem-solving. Through our programming sequence, students learn how to design, write, test, and refine programs while developing the logical thinking and technical confidence needed to approach a wide range of real-world challenges.
- The Web Development Micro-Credential prepares students to design and build web-based applications. Students begin with the foundations of web development, strengthen their programming skills, and then move into full-stack development, where they learn how front-end and back-end technologies work together to create interactive, data-driven web experiences.
Advanced Placement
Students can receive credit and advanced placement in COMP 17100 with a grade of 4 or 5 on the College Board Advanced Placement examination, Computer Science A only.
MINIMUM GRADE FOR PREREQUISITES
A grade of C or better is required for a course in computer science to fulfill a prerequisite for another computer science course. C- or below will not fulfill the requirement
COMP 10500 Introduction to Website Development (LA)
Introduction to the design and construction of responsive interactive websites using current technologies and tools. The course covers principles of effective website design, the design process, and implementation techniques. A term project building a large interactive, mobile-ready website is required. Students who have completed or are taking COMP 20500 may not receive credit for this course. (F,S,Y)
Attributes: CA, CCCS, ESTS, MC
3 Credits
COMP 10700 Introduction to 2D Game Development (LA)
An introduction to the design, development, and implementation of two-dimensional (2-D) games. Topics to be covered will include principles of designing games and the computational methods and tools used to create game content. Some programming will be introduced, but no prior computing experience is needed. Students will also learn the basic principles of project management and teamwork. Concepts will be put into practice as teams design and develop their own 2-D game. The course will be a combination of lectures and hands-on exercises. (F,Y)
Attributes: CA, MC
4 Credits
COMP 11000 Working with Structured Data (LA)
This course starts with an in-depth coverage of Google Sheets followed by a brief introduction to relational databases. Daily and weekly projects are based on real-world datasets. COMP 11000 and HLTH 13901 are mutually exclusive; students may receive credit for only one. (F,S,Y)
Attributes: QL
3 Credits
COMP 11200 Scripting in Spreadsheets (LA)
Introduces scripting in the context of Google Sheets. Exposes students to basic programming concepts so that students can make informed decisions about continuing with formal programming classes. Prerequisites: COMP 11000 (may be taken concurrently). (B,F,S)
1 Credit
COMP 11300 Working with Relational Data (LA)
This course introduces students to SQLite through hands-on experience working with existing databases. Emphasis is placed on querying data, creating views, and using SQLite tools to explore and manipulate relational data in a lightweight, standalone environment. (F,Y)
1 Credit
COMP 11400 Text-Based Computer Interaction (LA)
This course will introduce students to the command line interface (CLI), a text based method for interacting with computers. This method of interacting with computers is commonly used for cloud-based resources like servers and it is essential for anyone working in the cloud to master this approach. (S,Y)
1 Credit
COMP 11500 Discrete Structures for Computer Science (LA)
An introduction to discrete structures for computer science. The major topics of study include sets, proof techniques, logic, predicate logic, relations and functions, counting and probability, matrices, and induction. Prerequisites: COMP 17100 (with a C or better). (S,Y)
4 Credits
COMP 14800 Introduction to Data Science (LA)
An introduction to the principles and tools of data science focusing on exploratory data analysis. Topics include data collection, types of variables, mathematical representations of data, data cleaning and wrangling, data visualization and numerical summaries, the research cycle and methods, and data ethics. This course includes an introduction to the R programming language. MATH 14800 and COMP 14800 are crosslisted; students cannot earn credit for both. Prerequisites: Math placement in group 3 or higher, math placement assessment score of 46 or greater. (F,Y)
4 Credits
COMP 17000-17001 Introductory Computer Project (NLA)
Student undertakes a project to design and implement a computer application under the guidance of one or more faculty members. May be repeated for a total of 6 credits. Prerequisites: Permission of the computer science faculty. 1-3 credits. (F,S,Y)
1-3 Credits
COMP 17100 Computer Programming I (LA)
This course is an introduction to solving problems by writing code. Course content includes the design, development, testing, and analyzing of python code. Also included are basic coding structures that are present across many programing languages, such as statements, loops, and functions. (F-S,Y)
4 Credits
COMP 17200 Computer Programming II (LA)
This course reinforces and extends the skills learned in "Computer Programming I". It introduces object-oriented programming, functional programming, and basic algorithmic analysis. End-of-semester projects make use of APIs and libraries to access real-world data-sets and explore how programs can be useful to other disciplines or areas of interest. Prerequisite: COMP 17100 with a grade of C or better. (F,S,Y)
4 Credits
COMP 19000 Selected Topics in Computer Science (LA)
Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
1-4 Credits
COMP 19200 Independent Study in Computer Science (LA)
Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. (IRR)
1-4 Credits
COMP 20200 Computational Foundation of Emerging Media (LA)
Introduction to the concepts, tools, and computational methods underlying the most popular forms of emerging media. Topics include existing software tools for design, development, and
analysis of emerging media and the computational methods and concepts underpinning both the tools and the media itself. Hands-on exercises in programming, scripting, and using a variety of software packages. Prerequisites: COMP 17100. (S, Y)
4 Credits
COMP 20500 Full Stack Web Development (LA)
This course focuses on the creation of interactive and dynamic web pages. Students study the technologies and concepts necessary to add interactive scripts to web pages (client-side programming), receive and supply information to web pages (server-side programming using scripting), and store information (database creation). Prerequisites: COMP 17200 with a grade of C or better. (S,Y)
Attributes: CCCS
4 Credits
COMP 20700 Game Development (LA)
This course explores game development using a game engine. Students learn the basics of game design and development while reinforcing their programming skills. The course culminates with students designing and developing their own games. Prerequisites: COMP 17200 with a grade of C or better. (S,Y)
4 Credits
COMP 21000 Computer Systems I (LA)
This course explores how computers work at the lowest level. It starts with the language C to understand how programs can talk to the operating system (e.g., Windows, Mac OS, Linux) and then looks at how programs are actually run on a computer's processor. This course demystifies the operation of the modern computer. Prerequisites: COMP 17200 with a grade of C or better and COMP 21500 with a grade of C or better. (S,Y)
4 Credits
COMP 21500 Discrete Structures (LA)
This course covers the mathematical topics needed by Computer Science students. Topics include logic, sets, functions, relations, combinatorics, and discrete probability. Experimental work is conducted with Google Sheets. Prerequisites: COMP 17100. (S,Y)
4 Credits
COMP 22000 Data Structures (LA)
This course investigates how computer scientists create data structures to organize computer memory efficiently. It covers foundational data structures such as arrays, linked-lists, trees, and hash tables, as well as abstract data types such as lists, stacks, queues, and maps. Students engage in the scientific process to study the performance of these different data structures from both theoretical and empirical perspectives. The course culminates with a final project where students apply these skills in a realistic context and measure the effect of efficient data structures. Prerequisites: COMP 17200 with a grade of C or better. (F,Y)
Attributes: DSCI
4 Credits
COMP 27000-27001 Intermediate Computer Project (NLA)
Students undertake a project to design and implement a substantial computer application under the guidance of one or more faculty members. Permission of the computer science faculty required. May be repeated for a total of six credits. (F,S,Y)
1-3 Credits
COMP 27500 Relational Database Systems (LA)
This course offers a comprehensive introduction to relational databases, emphasizing database design, query formulation, and optimization techniques. Students will learn to create and normalize database schemas, write advanced SQL queries, and improve performance through indexing and query optimization strategies. The course also introduces spatial data processing, including storage, querying, and analysis of geographic information within relational databases. Hands-on labs and projects reinforce practical skills using industry-standard tools. Prerequisites: COMP 21500 and COMP 17200. (E,F)
4 Credits
COMP 29000 Selected Topics in Computer Science (LA)
Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
1-4 Credits
COMP 29200 Independent Study in Computer Science (LA)
Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. (IRR)
1-4 Credits
COMP 30600 Mobile Development (LA)
Study of the basic concepts involved in developing applications for mobile devices including phones and tablets. Topics include Model-View-Controller architectures, user-interface design, multi-view applications, animation, threads, touch gestures, accessing sensors, and databases. The course includes practical experience through a semester-long team project to design and implement a mobile app. Prerequisites: COMP 22000 with a grade of C or better. (F,E)
4 Credits
COMP 31000 Computer Systems II (LA)
In-depth investigation of the major concepts, algorithms, and implementation principles of computer systems. Both theoretical and practical aspects of systems are considered; students undertake substantial programming projects to illustrate concepts. Topics include scheduling; resource and storage allocation; problems of resolving deadlock, exclusion, and synchronization; memory allocation; network protocols, and distributed system structures. Prerequisites: COMP 21000 with a grade of C or better. (IRR)
4 Credits
COMP 31100 Algorithm Design (LA)
This course is a continuation of "Data Structures". It covers the three fundamental algorithm design techniques of "greedy", "divide and conquer", and "dynamic programming". It also covers the data structures needed by the featured algorithms: binary heaps, disjoint sets, directed/undirected adjacency matrices, and directed/undirected adjacency lists. Prerequisites: COMP 22000 and COMP 21500 with a grade of C or better. (S,Y)
4 Credits
COMP 32100 Programming Languages (LA)
This course covers programming language fundamentals including design aspects, language constructs, syntax, and semantics. Using a foundation in functional programming, the course delves into advanced topics such as closures, recursion, macros, objects, and types. Algorithmic, functional, and logical language paradigms are considered as well. Students learn how to build their own interpreter as well as design their own domain specific language. Prerequisites: COMP 22000 with a grade of C or better. (F,E)
4 Credits
COMP 32500 HCI: User Interface Design and Development (LA)
This course presents the fundamental concepts of design, prototyping, evaluation, and implementation of user interfaces (UIs), which are part of the field of HCI (human-computer interaction). Topics of study include user-centered design, task analysis, prototyping, interface design principles, user testing, interface metaphors, windows and event-driven programming, and heuristic evaluation. Principles of human perception and cognition are applied to user interface design. Web interface designs and three-dimensional user interfaces are also studied. Prerequisites: COMP 17200 with a grade of C or better and COMP 20500 or COMP 20700 or COMP 22000 with a grade of C or better. (S,Y)
4 Credits
COMP 34500 Software Engineering (LA)
This course focuses on the software development process: analysis, design, programming, and testing of medium-scale team projects. We discuss different project development techniques with a focus on Agile development, specifically SCRUM. Students learn how to deliver useful, reliable, scalable software products in a timely manner. Prerequisites: COMP 22000 with a grade of C or better. (S,Y)
4 Credits
COMP 35600 Machine Learning (LA)
This course explores supervised learning (including linear/logistic regression, decision trees, and neural networks) and unsupervised learning (including clustering, anomaly detection). It covers both theoretical concepts and practical applications of machine learning. It provides opportunities to implement and experiment with these algorithms on real-world data sets. Prerequisites: COMP 17200; MATH 14400, MATH 14500, MATH 21600, MATH 24800; MATH 18700 or MATH 23100 all with a grade of C or better. (F,Y)
4 Credits
COMP 35700 AI for Games and Robotics (LA)
This course employs a number of classic Artificial Intelligence techniques in the context of games and robotics. Course content includes the creation of Non-Player Characters (NPCs) that can act intelligently and traditional AI algorithms for robots. These contexts are used as a testing ground to explore the meaning of the term intelligence. Prerequisites: COMP 22000 with a C or better. (E,F)
4 Credits
COMP 36500 Computer Networks (LA)
This course covers the concepts of computer networks and data communications. The major topics include application layer protocols, transport layer protocols, routing, software defined networks, local area networks (including wifi), network security. The course has numerous lab components based on network-programming and packet tracing. Prerequisites: COMP 21000 with a grade of C or better. (F,O)
4 Credits
COMP 37000-37001 Intermediate II Computer Project (NLA)
After consultation with the computer science faculty, the student undertakes a project to design and implement a substantial computer application under the guidance of one or more faculty members. Permission of the computer science faculty required. May be repeated for a total of six credits. (F,S,Y)
1-3 Credits
COMP 37500 Database Systems (LA)
Explores contemporary database topics such as noSQL databases, visualization, data-warehousing, and cloud-based infra-structures, extending the ideas learned in earlier database system coursework. Prerequisites: COMP 27500 with a grade of C or better. (F,E)
Attributes: DSCI
4 Credits
COMP 38500 Emerging Media Project (NLA)
Hands-on introduction to project design, development, implementation, and testing, with emphasis on the knowledge and skills required to successfully complete the production cycle, including team dynamics, market analysis, project management, documentation, and testing. Students work in teams on projects assigned by the instructor. TVR 38500 and COMP 38500 are cross listed courses; students cannot receive credit for both COMP 38500 and TVR 38500. Open only to Emerging Media majors. Prerequisites: COMP 20200; Junior Standing. (S, Y)
Attributes: PROD
4 Credits
COMP 39000 Selected Topics in Computer Science (LA)
Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
1-4 Credits
COMP 39200 Independent Study in Computer Science (LA)
Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. (IRR)
1-4 Credits
COMP 41000 Algorithms + Organization = Systems (LA)
In-depth investigation of the major concepts and implementation principles of computer systems (operating systems, networks, databases, etc.) through the exploration of seminal algorithms used in systems. Students read research papers and conduct experiments on algorithms in a systems environment. Topics may include scheduling, resource and storage allocation, problems of resolving deadlock, exclusion, and synchronization, memory allocation, secondary storage implementation, distributed system structures, switching, and IP addressing. Prerequisites: COMP 21000 and COMP 31100 both with a grade of C or better. (F,O)
4 Credits
COMP 41500 Computer Graphics (LA)
An introduction to the fundamentals of computer graphics, including the mathematical foundations of graphics techniques; 2D and 3D algorithms for geometry, transformations, viewing, and lighting; stereo viewing, ray tracing, and radiosity. At least two different graphics APIs will be introduced and will be used to implement graphics programs and provide hands-on experience in the topics covered. Prerequisite: COMP 31100 or COMP 33000 with a grade of C or better. (IRR)
4 Credits
COMP 44800 Data Science Senior Project (LA)
Capstone course in which students synthesize and apply the skills, methods, and knowledge acquired throughout their studies to a substantial data project. Emphasizes independent project design, execution, and professional presentation of results. MATH 44800 and COMP 44800 are crosslisted courses; credit can only be earned for one. Prerequisites: MATH 34800. (S,Y)
3 Credits
COMP 45500 Search Engines and Recommender Systems (LA)
Explores how information retrieval and recommendation systems such as Netflix, Facebook, and Pandora, are designed and implemented. Combines development of information retrieval skills such as web-crawling, text & multimedia processing, boolean & vector-space modeling, classification, clustering, and similarity analysis. Will involve hands-on implementation of computer softwarde systems. Prerequisites: COMP 22000 and one 300-level COMP or MATH course all with a grade of C or better. (S,O)
4 Credits
COMP 45600 Topics in Machine Learning (LA)
This course explores topics in deep neural network learning such as natural perception tasks (e.g., image recognition, audio classification), as well as emerging topics related to recommendation systems and large language models. Prerequisites: COMP 35600 with a grade of C or better. (S,Y)
4 Credits
COMP 45700 Natural Language Processing (LA)
This course explores classical statistical methods (naive Bayes, logistic regression, n-gram language models) for processing language data computationally, before focusing on the paradigm shift to neural networks and deep learning since the 2010s. Students will learn the mechanical underpinnings of processing text with neural networks, understand the processes used to train, build and refine Large Language Models (LLMs), and critically think about the ethical issues inherent in building modern language technologies. Prerequisites: COMP 35600 with a C or better and COMP 31100 with a C or better. (O,S)
Attributes: DSCI
4 Credits
COMP 47000-47001 Advanced Computer Project (NLA)
Students undertake a project to design and implement a substantial computer application under the guidance of one or more faculty members. May be repeated for a total of 6 credits. Prerequisites: Junior standing and permission of the computer science faculty. 1-3 credits. (F-S,Y)
1-3 Credits
COMP 47500 Senior Project (LA)
Offers students the opportunity to consolidate theory and apply concepts to a computer-based problem, thus enhancing their understanding of various facets of the computing discipline. Students are responsible for the analysis, design, development, documentation, implementation, and testing of the computer system. The project may be carried out singly or in small groups of up to four people. Prerequisites: Senior standing; permission of instructor. (F-S,Y)
3 Credits
COMP 48500 Emerging Media Capstone (NLA)
Working as part of a team, the student designs, develops, and documents a significant emerging digital media project under the guidance of one or more faculty members. TVR 48500 and COMP 48500 are cross listed courses; students cannot receive credit for both COMP 48500 and TVR 48500. Prerequisites: COMP 38500 or TVR 38500 with a minimum grade of C-. (S, Y)
Attributes: PROD
4 Credits
COMP 49000 Selected Topics in Computer Science (LA)
Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
1-4 Credits
COMP 49200 Independent Study in Computer Science (LA)
Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. (IRR)
1-4 Credits
COMP 49500 Computer Science Capstone (LA)
Students explore connections between the integrative core curriculum, their computer science major, other learning experiences while at Ithaca College or abroad, and future goals. Students create a written reflection that integrates their various learning experiences and how their experience at Ithaca College has prepared them to achieve their future goals. Students also prepare a cover letter, curriculum vitae, and personal statement and identify career opportunities; and develop a showcase electronic portfolio. Prerequisites: Senior Standing; Computer Science and Emerging Media Computation majors only. (F,Y)
Attributes: CP
1 Credit
COMP 49800 Computer Science Internship for Majors and Minors (NLA)
A computer science project (carried out within an organization outside the department) that is not
routine, entails significant work experience, and has substantial academic content. The student is
responsible for developing a project proposal and completing it in conjunction with a faculty sponsorfrom the department and a supervisor from the outside organization. At the end of the project, thestudent shall present a report based on the experience. With departmental approval, up to 4 credits may be counted as upper-level elective credit toward a major in computer science or mathematicscomputer science or a minor in the Computer Science Department. Students should have completed three-fourths of the major or minor to be eligible for this opportunity. Prerequisites:Permission of a faculty sponsor. 1-12 credits. (IRR)
1-12 Credits