Skidmore Home

Skidmore Home

Contents

Index



CONTACT INFO

Key Contacts


STANDARD MAIL

815 North Broadway
Saratoga Springs,
New York, 12866


SKIDMORE PHONE

518-580-5000

 

Computer Science



Chair of the Department of Mathematics and Computer Science: Pierre von Kaenel

Professors: Alice M. Dean, Gove W. Effinger, Mark Hofmann, Mark E. Huibregtse, R. Daniel Hurwitz, Pierre von Kaenel, David C. Vella

Associate Professors: Una Bray, Thomas O'Connell

Assistant Professors: Michael Eckmann, Rachel Roe-Dale


THE COMPUTER SCIENCE MAJOR: Students majoring in computer science fulfill the departmental requirements by completing the following:
  1. Required computer science courses: CS206, 210, 318, and 330. CS106 and 206, and 210 should normally be completed by the end of the second year. CS206, CS230, CS305, and CS318. CS206 should normally be completed by the end of the second year.

  2. Required mathematics course: MA200

  3. Required MC courses: MC115 or MC215 and 306. In MC215, students will acquire writing skills that are necessary to work on advanced material in mathematics and will fulfill the writing requirement in the major.

  4. Electives: Three CS or MC courses at the 200 level or above. For one of the three electives, the student may instead take, with permission of the department, a course in another discipline that has substantial computer science content. Students planning to go to graduate school should take additional courses in mathematics. In particular, MA113 and 204 should be considered. Courses counting toward the major may not be taken satisfactory/unsatisfactory.
HONORS: Students wishing to qualify for departmental honors in the computer science major must:
  1. Complete all departmental requirements for the computer science major and have a GPA of 3.5 or higher for all course work (MC and CS) taken in the department, together with a course in another discipline that has substantial computer science content if taken as an elective with permission of the department;

  2. Have a GPA of 3.0 for all course work taken at Skidmore;

  3. File with the department, by the end of the official add-drop period of the spring semester of the senior year, a declaration of intention to qualify for honors; and

  4. Submit an honors thesis or project to be read by a review committee, and give an oral presentation of the thesis or project to the department. The review committee will evaluate the thesis or project to determine if it is of the exceptional quality that merits honors; the committee's recommendation will be submitted to the department for final adjudication.


THE COMPUTER SCIENCE MINOR: Students minoring in computer science fulfill the departmental requirements by completing CS106, 206, MC115 or MC215, and three additional CS or MC courses, at most one of which may be at the 100 level, and at least one of which must be at the 300 level. For one of the three additional courses, the student may instead take, with permission of the department, a course in another discipline that has substantial computer science content.

Students interested in learning how to use computers to solve problems in the quantitative disciplines should consider the courses CS102, 103, 106, and MS104.

NOTE: Courses numbered CS102 through CS382 and MC115 or MC215, 302, 306, and 316 have as a prerequisite QR1 or permission of the department.


CS 102.    COMPUTING IN CONTEXT    3
A set of courses exploring interesting applications of computing in a variety of disciplines. These courses are primarily intended for students who wish to satisfy the QR requirement and enhance their abilities to apply computing to the solution of quantitative problems. Courses including the following are offered periodically depending on faculty availability. (Fulfills QR2 requirement.)

A. Electronic Spreadsheets in the Sciences. In this course, students use electronic spreadsheets to build quantitative models of natural systems studied in biology, chemistry, and physics. This course helps students understand quantitative description of natural phenomena, develop ability to use computational methods for describing those phenomena, enhance their understanding of experimental design, and become aware of the limitations in modeling of natural systems.

CS 103.    STRUCTURED PROGRAMMING IN BASIC    3
Introduction to the use of computer programming as a problem-solving tool. Students learn to design and implement their own Windows software applications using the Visual BASIC language. The course stresses the logic of software design and the careful implementation and testing of programs. Primarily for students with little or no programming experience. Not open to students who have taken or are taking CS106. (Fulfills QR2 requirement.)    The Department

CS 106.    INTRODUCTION TO COMPUTER SCIENCE I    4
An introduction to the principles of design, implementation, and testing of object-oriented programs. The course covers language features such as control structures, classes, file I/0, and basic data structures including arrays. Other topics include recursion and fundamental algorithms, such as elementary searching and sorting algorithms. (Fulfills QR2 requirement.)    The Department

CS 206.    INTRODUCTION TO COMPUTER SCIENCE II    4
Continuation of CS 106: study of recursion, pointers, development strategies for large software projects, and introduction to data structures, analysis of algorithms, and program verification. Prerequisite: CS106 or equivalent with permission of instructor.    The Department

CS 210.    DESIGN AND ANALYSIS OF ALGORITHMS    4
A study of techniques used to design algorithms that are efficient in terms of the time and memory required during execution. The course will also cover the techniques used to evaluate an algorithm's efficiency. Topics include advanced sorting techniques, advanced data structures, dynamic programming, greedy algorithms, amortized analysis, and graph algorithms. Prerequisites: MC115 or MC215 and CS206, and MA111, or both MA108 and 109, or equivalent.   The Department


MC 215.    
MATHEMATICAL REASONING AND DISCRETE STRUCTURES    4
An introduction to mathematical reasoning in the context of studying discrete structures fundamental to both mathematics and computer science. The study and practice of mathematical reasoning and its written and spoken expression in the form of mathematical proofs and algorithm specifications. Topics include elementary logic and sets, methods of proof including mathematical induction, algorithms and their analysis, functions and relations, elementary combinatorics, discrete probability, and graph theory. (Fulfills QR2 requirement and the writing requirement in the major.) Prerequisites: QR1, and CS106 or MA113, or permission of the instructor.    The Department

CS 230.    PROGRAMMING LANGUAGES    3
An introduction to different programming language paradigms: functional, logic, and object-oriented programming. Students will also study language concepts such as regular expressions, syntax grammars and semantics. Specific topics may include Perl, egrep, Scheme, Lex and Yacc, Java, C++ and Prolog.
Prerequisite: CS206.    The Department

CS 275.    INTRODUCTION TO RESEARCH IN COMPUTER SCIENCE    1
An introductory exploration of research in computer science. The students, in collaboration with a faculty mentor, will participate in a research project in a particular area of computer science. The research projects may, for example, include designing new algorithms for computational problems, surveying the research literature, implementing existing algorithms from the research literature, or performing computational experiments. Students may enroll for CS275 four times in their careers, but may take no more than two in any given semester. Must be taken S/U. Does not count toward the CS major. Prerequisite: permission of instructor.    The Department

CS 276.    SELECTED TOPICS IN COMPUTER SCIENCE    3
Topics that complement the established lower level course offerings in computer science will be selected. May be repeated for credit. Prerequisite: permission of instructor.    The Department

MC 302.    GRAPH THEORY    3
An introduction to the theory and application of graphs. Topics may include graphs and digraphs, connectivity, trees, Euler and Hamiltonian cycles, and graph embeddings. Prerequisite: MC115 or MC215 or MA200 or permission of the instructor. Fall 2007 and alternate years.    The Department

CS 305.    DESIGN AND ANALYSIS OF ALGORITHMS    4
A study of techniques used to design algorithms for complex computational problems that are efficient in terms of time and memory required during execution. Students will also learn the techniques used to evaluate an algorithm’s efficiency. Topics include advanced sorting techniques, advanced data structures, dynamic programming, greedy algorithms, amortized analysis, graph algorithms, network flow algorithms and linear programming.
Prerequisites: CS206, MC215, and MA111 or equivalent.   The Department

MC 306.    THEORY OF COMPUTATION    3
A study of the major theoretical models of computation. Topics include automata, nondeterminism, regular and context-free languages, Turing machines, unsolvability, and computational complexity. Prerequisite: MC115 or MC215 and CS106, or permission of instructor.
Beginning in fall 2005, MC306 will have CS210 as a prerequisite.    The Department

MC 316.    NUMERICAL ALGORITHMS    3
An introduction to using computation to obtain approximate solutions to mathematical problems. A variety of algorithms are studied, as are the limitations of using computational methods. Topics include algorithms for solving equations, systems, and differential equations; approximating functions and integrals; curve fitting; round-off errors and convergence of algorithms. Prerequisites: MA111 (or both MA108 and 109), CS106, and MA200. Offered on sufficient demand.    The Department

CS 318.    INTRODUCTION TO COMPUTER ORGANIZATION    4
An introduction to multi-level machines, including basic components of a computer, digital circuits, microprogramming, machine and assembly languages, and operating systems. Prerequisite: CS206 and MC115 or MC215. (Does not count toward the Mathematics major.)    The Department

CS 322.    ARTIFICIAL INTELLIGENCE    4
An introduction to the field of artificial intelligence. The course covers the main techniques used to develop computer programs to solve problems that we normally think of as requiring intelligence. Topics include search, games, knowledge representation, logical reasoning systems, and machine learning. Prerequisites: MA111 or both MA108 and 109, or equivalent, and CS210.    The Department

CS 323.    SOFTWARE DESIGN    3
A study of the design, implementation, documentation, and testing of software. Focuses on object-oriented design using UML (Unified Modeling Language) models and design patterns, implementing and documenting large software systems by working in teams, and methods for software testing and debugging. Prerequisite: CS206.    The Department

CS 324.    CONCURRENT PROGRAMMING    3
A study of the concepts and techniques in concurrent or multithreaded programming which forms the basis for operating systems, as well as real-time, distributed and multi-processor systems. Focuses on concurrent programming with threads and shared variables using locks, semaphores and monitors, and explores such issues as thread safety and liveness, mutual exclusion, and message passing between processes. Prerequisite: CS206.    The Department

CS 325.    COMPUTER GRAPHICS    4
Computer graphics involves using computers to generate images, as opposed to generating images using cameras. Computer graphics images typically try to mimic reality. In this course, students will explore the necessary background for further study in computer graphics. Students will explore the basics of human vision that influence the way computers generate images; projections from three dimensional space to two dimensional space; various models of real world entities such as lighting, surface reflectance, and color; and classic algorithms in computer graphics that students will implement and with which they will have the opportunity to experiment. Prerequisites: CS206 and MA200.    The Department

CS 330.    PROGRAMMING LANGUAGES    3
An introduction to different programming language paradigms: functional, logic, and object-oriented programming. Students will also study language concepts such as regular expressions, syntax grammars, and semantics. Specific topics may include Perl, egrep, Scheme, Lex & Yacc, Java, C++ and Prolog. Prerequisite: CS206.    The Department


CS 371, 372.    INDEPENDENT STUDY    3, 3
Special study in computing outside of the regular departmental offerings. Prerequisite: consent of department.    The Department

CS 376.    ADVANCED TOPICS IN COMPUTER SCIENCE    3 or 4
Advanced topics that complement the established course offerings in computer science will be selected. May be repeated for credit. Prerequisite: permission of instructor.    The Department

CS 381, 382.    SENIOR THESIS    3,3
Optional for computer science majors. Recommended for those working toward professional careers or graduate study in computer science, and those seeking to satisfy the criteria for departmental honors.

CS 399.    INTERNSHIP IN COMPUTER SCIENCE    3 or 6
Professional experience at an advanced level for juniors and seniors with substantial academic experience in computer science and mathematics. With faculty sponsorship and departmental approval, students may extend their educational experience in computer science, software engineering, or applied mathematics. This course may not be used to satisfy the requirements of any major or minor in the department. Prerequisites: MC115 or MC215, CS206, one additional course in mathematics or computer science at the 200 level or above, and permission of the department. Not for liberal arts credit.





Creative Thought Matters.
Skidmore College · 815 North Broadway · Saratoga Springs, NY · 12866

Skidmore College Main Links
©2009 Skidmore College · Contact Information
Home | About Skidmore | Prospective Students | Current Students | Faculty & Staff
Parents & Friends | Alumni