Computer Science



Associate Professor:  Izmirli; Visiting Associate Professor:  Winters-Hilt; Assistant Professors:  Chung, Lee; Professor Parker, chair

Courses provide students with computer science theory and skills, equipping them for research or practical application.

The Major in Computer Science

The major consists of Mathematics 210, Computer Science 110, 212, 219, 304, 315 or 326, two semesters of computer science research (Honors Study or two semesters of 495/496), a one-credit colloquium series (499), and five or more courses chosen from the following:  computer science courses at the 200 level or higher, and Mathematics 226.  Each individualized program of study will incorporate depth in a particular area, related research, and interdisciplinarity.  Students are strongly encouraged to complete a summer internship approved by the department.

Advisers: C. Chung, O. Izmirli, J. Lee, G. Parker

The Minor in Computer Science

The minor consists of Computer Science 110, 212, 219, and two or more courses chosen from the following:  computer science courses at the 200 level or higher (excluding 499), Mathematics 210.  Only one course may count toward both a major and a minor, but other approved courses at the same level or higher may be substituted.

Learning Goals in the Computer Science Major

A computer science major at Connecticut College will enter a variety of learning environments and gain an understanding of the discipline through courses, independent research, colloquia, workshops, internships, and seminars.

               Emphasis is placed on the student′s ability to solve problems and think independently as well as understand the role of computer science in and amongst the liberal arts.  Upon completing a challenging course of study, the student will be expected to possess a collection of broad characteristics and have acquired a specific set of capabilities and skills: cognitive capabilities and practical skills related to computer science and additional transferable skills of a general nature that are applicable in many other contexts.  The specific capabilities and skills are listed below.

COGNITIVE CAPABILITIES AND SKILLS RELATING TO COMPUTER SCIENCE

  • Knowledge and Understanding.  Demonstrate knowledge and understanding of essential facts, concepts, principles, and theories relating to computer science and software applications; be able to incorporate technical results into that knowledge and understanding.
  • Modeling.  Use such knowledge and understanding in the modeling and design of computerbased systems in a way that demonstrates understanding of the requirements, comprehension of the tradeoff involved in design choices, and awareness of critical evaluation and testing.
  • Professional Responsibility.  Recognize and be guided by the social, professional, and ethical issues involved in the use of computer technology.
  • Liberal Arts.  Understand the discipline of computer science as a liberal art and actively engage in exploring its connections to other disciplines.

PRACTICAL CAPABILITIES AND SKILLS RELATING TO COMPUTER SCIENCE

  • Problem-solving.  Use appropriate theory, practices, and tools to specify, design, implement, test, and evaluate systems to solve problems in computer science and other fields.
  • Applications.  Understand applications of computer science in a range of fields.
  • Tools and Operation.  Deploy effectively the tools used for the construction and documentation of software and be able to operate computing equipment and software systems effectively.
  • Research.  Use computer science knowledge to conduct original research; read, understand, and produce technical papers.

ADDITIONAL TRANSFERABLE SKILLS

  • Communication.  Be able to make succinct presentations to a range of audiences about technical problems and their solutions.
  • Teamwork.  Be able to work effectively as a member of a development team.
  • Numeracy.  Be able to understand and explain the quantitative dimensions of a problem.
  • Self Management.  Manage one′s own learning and development, including time management and organizational skills.
  • Professional Development.  Keep abreast of current developments in the discipline in order to continue one′s own professional development.

Courses

COMPUTER SCIENCE 105  OPEN SOURCE SOFTWARE FOR HUMANITY  An introduction to free and open source software (FOSS) and its applications to humanitarian issues.  Participants will learn to write web-based application software using FOSS tools while contributing to a real open source humanitarian project.

             Enrollment limited to 30 students.  This course satisfies General Education Area 2.  Staff

COMPUTER SCIENCE  110  INTRODUCTION TO COMPUTER SCIENCE AND PROBLEM SOLVING  An introduction to programming and problem solving with computers.  Practical applications in a wide range of fields will be covered; the current programming language is Python.  Important topics in computer science will also be discussed.  No prior programming experience is assumed.  Registration is also required in Computer Science 110L.

             Enrollment limited to 40 students.  This course satisfies General Education Area 2.  Staff

COMPUTER SCIENCE  110L  INTRODUCTION TO COMPUTER SCIENCE AND PROBLEM SOLVING LAB  Registration is also required in Computer Science 110.

COMPUTER SCIENCE  203  BIOINFORMATICS I  An introduction to the use of informatics, genomics, and computational biology in analyzing biological data.  Topics include DNA and protein sequences, interaction networks, gene expression, channel current analysis of DNA molecules, and computational techniques for retrieving, analyzing, and visualizing data.  Focus on DNA analysis for gene finding, including simple program writing for data mining.  No prior knowledge of programming required.  Emphasis on projects involving interdisciplinary teams and medically related problems.  This is the same course as Biology 203.

               Prerequisite:  Any 100-level course in computer science or biology, or permission of the instructor.  Enrollment limited to 20 students.  S. Winters-Hilt

COMPUTER SCIENCE  204  INFORMATICS PROGRAMMING  An introduction to informatics and problem solving with the aid of computers, with applications relating to the natural sciences, social sciences, and humanities.  Examples will be implemented using Perl and Python.  Students will have the opportunity to explore applications of informatics within their own areas of academic interest.
               Prerequisite:  Any 100-level course in computer science, or permission of the instructor; Course 110 is recommended.  Enrollment limited to 20 students.  S. Winters-Hilt

COMPUTER SCIENCE  205, 305  TOPICS IN SOFTWARE DEVELOPMENT  Principles of software development applied to real-world problems.  The problems addressed and computer languages used will vary depending on the available opportunities for application.  Students will be part of a team that develops a software system for a real-world customer.  Students in Course 305 will be team leaders.

             Prerequisite for Course 205:  Any 100-level course in computer science.  Prerequisite for Course 305:  Course 212.  Enrollment limited to 15 students in Course 205 and 5 students in Course 305.  Staff

COMPUTER SCIENCE  206  COMPUTATIONAL AND SYSTEMS BIOLOGY  An introduction to the use of genomics, systems biology, and computational biology in analyzing and synthesizing biological data.  Topics include DNA and protein sequences, interaction networks, gene expression, and computational techniques for retrieving, analyzing, and visualizing data.  Emphasis on projects involving interdisciplinary teams and medically related problems.  This is the same course as Biology 206.

             Prerequisite:  Course 110 or Biology 106.  Enrollment limited to 30 students.   S. Winters-Hilt

COMPUTER SCIENCE  211  INFORMATICS I  An introduction to informatics programming and problem solving with the aid of computers.  Applications in the areas of science, social science, and the humanities, from creating a Shakespearean insult generator, to a text-based analysis of Machiavelli's Il Principe, to deciphering the gene structure in genomic DNA.  Basic probability and statistics concepts will be introduced in a variety of settings, including anomaly detection using information measures and robust modeling in the presence of outliers.

               Prerequisite:  Course 110 or permission of the instructor.  Enrollment limited to 20 students.  S. Winters-Hilt

COMPUTER SCIENCE  212  DATA STRUCTURES  Abstract data structures such as lists, stacks, queues, and trees will be studied as well as programming techniques using recursion and pointers.  Principles of software design will be explored by constructing major programs.

            Prerequisite:  Course 110.  Enrollment limited to 20 students.  Staff

COMPUTER SCIENCE  214  WEB TECHNOLOGIES AND MOBILE COMPUTING  Software development for web-based applications such as web sites, mobile apps, client-side, server-side, and back-end systems using current web technologies.  Design elements including organizational structure, interactivity, navigation strategies, and multimedia.  The course will concentrate on a small selected set of technologies for hands-on work.

           Prerequisite:  Course 110.  Enrollment limited to 30 students.  O. Izmirli

COMPUTER SCIENCE  215  DIGITAL DESIGN  Digital design, binary number systems and representation, boolean algebra and gate implementation, combinatorial and sequential circuits, and digital storage components used in computers.  Software simulation will be used.  This is the same course as Physics 225.

           Prerequisite:  Course 110 or permission of instructor.  O. Izmirli

COMPUTER SCIENCE  217  INTERACTIVE ENTERTAINMENT SOFTWARE DESIGN AND DEVELOPMENT  An introduction to the design and programming of entertainment software (i.e., computer/video games).  The course combines concepts relating to computer graphics, human-computer interaction, networking, artificial intelligence, computer architecture, and databases.  Topics include video game history, gameplay design, software architecture for video games, contemporary video game platforms, and real-time computer graphics techniques.  This is the same course as Arts and Technology 217.

               Prerequisite:  Course 110.  Enrollment limited to 20 students.  J. Lee

COMPUTER SCIENCE  218  MULTIMEDIA  The representation, storage, processing and transmission of multimedia content, comprised of text, audio, still images, video, graphics, animation and other types of media are discussed.  Human perception of audio and video will be studied to be followed by concepts underlying compression algorithms of multimedia content.  Multimedia programming will be introduced and students will complete projects that involve design, implementation and evaluation.  This is the same course as Arts and Technology 218.

           Prerequisite:  Course 110.  Enrollment limited to 12 students.  O. Izmirli

COMPUTER SCIENCE  219  COMPUTER ORGANIZATION  Processors, primary memory, secondary memory and input/output mechanisms of computers are discussed.  The computer structure is studied at a progression of levels:  digital logic level, microarchitecture level, instruction set architecture level, operating system machine level and assembly language level.

          Prerequisite:  Course 110.  Enrollment limited to 20 students.  Staff

COMPUTER SCIENCE  303  DATABASE SYSTEMS  An examination of the fundamental concepts of database systems.  Database design, database languages, and database-system implementation.  Analysis of the role of databases in the decision making process and their use in strategic planning.  A project to develop a database management system is required.

           Prerequisite:  Course 212 or permission of the instructor. Enrollment limited to 20 students. Staff

COMPUTER SCIENCE  304  ALGORITHMS  An introduction to the analysis of algorithms, both for run-time complexity and correctness.  Students will use these skills as they learn and practice fundamental algorithm design techniques, including greedy, divide-and-conquer, dynamic programming, and network flow.  The course concludes with a study of NP-completeness and methods for coping with NP-hard problems such as local search, randomization, and approximation algorithms.

               Prerequisite:  Course 212; Mathematics 210 is recommended.  Enrollment limited to 30 students.  C. Chung

COMPUTER SCIENCE  307  MACHINE LEARNING AND DATA MINING  An introduction to the basic theory, concepts, and techniques of machine learning and data mining, including decision trees, neural networks, logistic regression, and data preparation, modeling, and presentation.  Data mining techniques, including clustering, classification, associations, deviation detection, and link analysis will be covered.  Methods, such as hidden Markov models and support vector machines, will be applied to a variety of applications, including electrical signal analysis (mostly of biomedical origin, such as EEG, ECG, and channel current analysis), genomics, and finance.  Data mining tools will be introduced and used to complete a project on real-world data.

               Prerequisite:  Course 212.  Enrollment limited to 30 students.  S. Winters-Hilt

COMPUTER SCIENCE  308  ALGORITHM DEVELOPMENT AND ENGINEERING  Students will implement a broad range of the most commonly used algorithms, including algorithms for sorting, searching, encryption, compression, finding optimal paths through networks, etc.  The algorithms developed will employ techniques like dynamic programming and local search, and data structures like trees and graphs.  Basic software engineering principles will also be studied and used.  This course is programming intensive.

          Prerequisite:  Course 212.  Enrollment limited to 30 students.  C. Chung

COMPUTER SCIENCE  309  GRAPHICS AND VIRTUAL ENVIRONMENTS  An introduction to the basics of graphics and the field of virtual reality, including applications and issues relating to three-dimensional graphics, sound, vision, and touch.  Students will program virtual reality worlds with appropriate hardware and software.  This is the same course as Arts and Technology 209.

             Prerequisite:  Course 110 or permission of the instructor.  This course is not open to students who have received credit for course 209.  Enrollment limited to 20 students.  J. Lee

COMPUTER SCIENCE  310  ROBOTICS  An introduction to the design and control of autonomous robots.  Design issues such as wheels verses legs, actuator placement, the use of sensors for perception, controller selection, and wiring will be covered.  Students will develop control schemes and use programming skills and machine learning to generate programs for controllers.

          Prerequisite:  Course 212, 215, or 219 Enrollment limited to 18 students.  G. Parker

COMPUTER SCIENCE  311  INFORMATICS II  An introduction to the use of informatics algorithms in analyzing various types of data.  Methods include analysis of sequential data in a variety of settings, such as text-based, voice, photographic sequence (film), genomic structure analysis, proteomic data, and 'electrical' signal (ion channel signal data).  The course considers classification, clustering, and metaheuristic search methods in a variety of applications including two very popular methods: hidden Markov models and Support Vector Machines.

            Prerequisite:  Course 211 or permission of the instructor; taking course 212 previously or concurrent with this course is recommended.  Enrollment limited to 20 students.  S. Winters-Hilt

COMPUTER SCIENCE  312  DIGITAL SOUND PROCESSING  An introduction to digital processing of sound; the study of capturing, creating, storing and processing of audio.  Acoustics, digitization, representation, storage, filtering, effects, frequency analysis, programming for real-time and off-line sound processing, synthesis, spatialization, audio encoding and compression.  Students will complete programming projects.  This is the same course as Arts and Technology 312.

          Prerequisite:  Course 212.  Enrollment limited to 12 students.  O. Izmirli

COMPUTER SCIENCE  313  TOPICS IN ALGORITHMIC GAME THEORY  An introduction to the computer science field of algorithmic game theory, which combines the study of scenarios where competing entities interact strategically (a.k.a. ″games″) with algorithmic/computational thinking.  No prior experience in game theory or algorithms analysis is required.

           Prerequisite:  Course 212; or Course 110 and Mathematics 210.  Enrollment limited to 30 students.  C. Chung

COMPUTER SCIENCE  315  COMPUTER NETWORKS  Characteristics and applications of various networking technologies will be studied.  Introduction to communication and network architectures, data communication concepts, local area network technologies, internetworking and performance issues in computer networks.  Devices and means of data communication, error detection and recovery mechanisms, data link protocols, routing and congestion control algorithms, transport and application protocols, and network level services are discussed.

           Prerequisite:  Courses 212 and 219.  Enrollment limited to 20 students.  O. Izmirli

COMPUTER SCIENCE  316  ARTIFICIAL INTELLIGENCE  Introduces a breadth of concepts used by researchers in their attempt to develop an artificial mind.  General areas covered include search techniques, propositional and first order logic, representation, production systems, planning, learning and connectionist systems (neutral networks).

          Prerequisite:  Course 212 or permission of the instructor.  Enrollment limited to 20 students.  G. Parker

COMPUTER SCIENCE  320  PROGRAMMING LANGUAGES  An introduction to the theory of programming languages, formal syntax, input and output, recursion, branching and looping, parameter binding and passing, data typing and subprograms.  Several languages will be studied.

           Prerequisite:  Course 212 or 219Enrollment limited to 30 students. Staff

COMPUTER SCIENCE  323  THEORY OF COMPUTATION  This is the same course as Mathematics 323.  Refer to the Mathematics listing for a course description.

COMPUTER SCIENCE  325  INTRODUCTION TO NETWORK AND COMPUTER SECURITY  An introduction to the principles and practices of computer and network security.  Course organized around the three principles of security:  prevention, detection, and response.  Topics include basic cryptography, concepts of secure protocol design, security policy and risk evaluation, types of and defense against real-world attacks, and forensic techniques.

           Prerequisite:  Course 212.  Staff

COMPUTER SCIENCE  326  OPERATING SYSTEMS  An introduction to computer operating systems.  The primary functions of an operating system, such as process management, memory management, and device management, will be covered.  Other relevant issues, such as security, networking, and distributed systems, will be discussed.

           Prerequisite:  Courses 212 and 219.  Enrollment limited to 20 students.  Staff

COMPUTER SCIENCE  407  COMPUTATIONAL INTELLIGENCE  Computational methods that display aspects of intelligent behavior observed in humans.  Topics may include fuzzy logic, an alternative to traditional formal logic; artificial neural networks, networks of simple arithmetic computing elements that abstractly simulate neurons; and genetic algorithms, based on the laws of survival of the fittest and heredity.  How these methods deal with vague, imprecise, and uncertain knowledge; learn from experience; self-organize; and adapt their behavior in response to changing conditions to solve real world problems.  Utilization of projects and the discussion of technical papers to cover methods of computational intelligence and their use.

           Prerequisite:  Course 304, 310, 316, or 320.  Enrollment limited to 12 students.  G. Parker

COMPUTER SCIENCE  495, 496  RESEARCH SEMINAR  Practicum in computer science research.  An introduction to research methods followed by a major project.  Students will read, present, and discuss technical papers; write a research proposal; make weekly reports; raise issues for class discussion; complete their research; write a technical paper; and do a public presentation.  May be repeated for credit.

           Prerequisite:  A 300-level course in the specific area of research.  Enrollment limited to 15 students.  Staff

COMPUTER SCIENCE  499  COMPUTER SCIENCE COLLOQUIUM  Technical presentations of computer science research.  One hour of credit, marked as pass/not passed.  For restrictions on the number of one-credit courses that can be applied toward the minimum degree requirements, see page 154 of the undergraduate catalog.

           Enrollment limited to 40 students.  Staff

COMPUTER SCIENCE  291, 292  INDIVIDUAL STUDY

COMPUTER SCIENCE  391, 392  INDIVIDUAL STUDY

COMPUTER SCIENCE  491, 492  INDIVIDUAL STUDY

COMPUTER SCIENCE  497-498  HONORS STUDY