2009 Self-Study

Computer Science Department
State University of New York at Oswego
April 2009

Preface

The SUNY Oswego Computer Science (CS) Department houses a number of degree programs. The primary scope of this self-study is the Computer Science major program (both the BA and BS degrees) itself. This is the central program offered by the department. Its courses (listed under the "CSC" designation) also provide a foundation for our other programs, and most department faculty members teach courses in support of the other programs, but those programs are assessed independently.

The assessment period for this self-study is Fall 2004 through Spring 2009. The main result of our previous (2004) self-study was our decision to pursue an independent Software Engineering program. Other smaller changes are noted as they arise below.

This report is presented as a web document, to support navigation to constituent documents and related sites (eliminating the need for Appendices), as well as to enable future updates.

Contents

  1. Curriculum
  2. Faculty
  3. Students
  4. Support
  5. Administration
The Executive Summary is available as a stand-alone web document, as is the SUNY System Adminstration Summary Form, as well as the follow-up memorandum of understanding.

A. Curriculum

A.1. Mission and Goals

Our departmental mission statement (last updated in 1996) reads:
The Mission of the Computer Science Department at Oswego is to provide students with a learning environment which will nurture their growth into competent software developers, computer scientists, and information system designers. We strive to maintain modern computing resources, modern software systems and languages, and a diverse faculty capable of engaging students in meaningful learning activities steeped in classic computer science yet applicable to contemporary problems associated with computer and information science.

As described more concretely below, our main curricular goal is to provide a flexible learner-centered curriculum that reflects the field of computing: continuously and unpredictably evolving from a core foundation of essential concepts and skills. The Oswego CS department has a history of leading, not following, many changes in the field of computing. Many faculty members play continuing active roles in basic research and/or the computer science education research community. This results in the regular introduction and improvement of programs, courses, and methods of instruction.

A.2. Major Programs

Oswego CS program requirements are in line with current ACM curriculum recommendations, including core and/or elective coverage across the recommended areas of Programming Fundamentals, Discrete Structures, Algorithms and Complexity, Architecture and Organization, Programming Languages, Operating Systems, Net Centric Computing, Human Computer Interaction, Graphics and Visual Computing, Intelligent Systems. Information Management, Social and Professional Issues, Software Engineering, and Computational Science.

Ours differs from "classic" CS programs by virtue of infusing more software engineering and development coverage into the base curriculum. (This was once a stronger distinction than it is now, as other programs and curricular guidelines move in similar directions.) Additionally, we keep specifications of courses open enough to accommodate innovation, yet still ensure coverage of core material. Nearly all elective courses are required to be project-based, to enable students to explore applications of concepts in the construction of diverse, meaningful applications. This combination of strategies has resulted in the basic structural requirements of the program remaining stable (with a few small updates) since 1993, even as the contents and emphases of courses evolve.

Our program also differs from many others due to our campus institutional mission. Oswego maintains a central commitment to liberal arts and General Education requirements, requiring up to 51 credits to satisfy, only 12 of which are automatically exempted or double-counted with the credits required for CS degrees. While this is a strength of the educational experience obtained by Oswego students, it requires creativity in CS major program design and delivery to conform to all the imposed constraints. For example, to maintain low enough total major credit requirements for students to also meet general education requirements, our courses tend to include more content than is typical for 3-credit courses, and courses with required labs do not assign credit for the lab sections/components. Similarly, we do not offer a stand-alone capstone project course, but instead provide capstone experiences in project-based senior elective courses. Our major programs can be very challenging for students taking normal course loads. The CS department supports current ECE program development efforts to ameliorate impact a bit by developing co-sponsored general education courses in other departments that can absorb some technical content, for example in ethics, economics, writing, project management, and communication.

Current catalog listings for the CS degree programs may be found at:

The campus catalog listings still do not reflect some small changes made as a result of our previous self-study. We removed some needless inflexibility in math cognates, now allowing students to take any of several courses. Similarly for CSC222 versus CSC322 discussed below. Because these were initially implemented as agreed-upon waivers, we were remiss until recently in arranging that the official listings be changed. Also, the BS listing retains outdated references to optional Biology cognates that were restructured a few years ago.

The main difference between the BA and BS degrees is total credits in the major and cognates. The BA program ensures essential topic coverage, and is designed for those students (including transfers, late-deciders, and double-majors) who cannot or do not wish to commit as many credits to the major. Additionally, the BA degree does not require a concentration track, so is available for students who choose to take courses in several areas of computing. In practice, most incoming students are by default enrolled in the BA program but are advised to plan for the BS program. Students tend to make BA versus BS degree decisions relatively late, based on factors such as whether they pursue internships during regular (not summer) semesters. Internships receive "general studies", not CS credit, making it difficult to fit enough CS electives to graduate with the BS degree. It is already difficult for some students to fit all courses in four years given Oswego's extensive General Education requirements. Further, a significant proportion of incoming CS students are also admitted into the College's interdisciplinary Honors Program , which carries additional constraints making it more challenging to satisfy BS requirements. Due to various combinations of these factors, more students graduate with BA than BS degrees.

CS courses also play a central role in other programs housed by the department. The increasing diversity of computing-related majors and programs offered by the department is representative of national trends, but the particular combinations are outgrowths of attempts to further exploit the strongest aspects of our department:

Information Science (ISC)
The Information Science program (which is in the final stages of program revision -- see draft revision) is an interdisciplinary collaboration across CS, Communications, Business, and other departments, housed in the CS department for over 25 years. The program requires three core CS courses, and co-lists three other courses.
Cognitive Science (COG)
The Cognitive Science program is an interdisciplinary collaboration across CS, Philosophy, Linguistics, Psychology, and other departments, housed in the CS department. The Cognitive Science BS program requires three core CS courses as well as three CS courses in the CS AI track.
Software Engineering (SE)
The SE BS program (just getting underway this year) requires a superset of CS program core requirements, additionally including courses and electives that extend those offered in the CS SE track. (The initial motivation for splitting out the SE program was to avoid imposing these further requirements on those students who are not primarily interested in SE.) We expect that the number of students choosing the SE program over the CS SE track will grow over time.
Human Computer Interaction (HCI)
The HCI graduate program is an interdisciplinary collaboration across CS, Psychology, Graphic Design, and other departments. The program requires two co-listed CS courses. HCI students also generally take one or more of five other CS courses with co-listed numbers. There are also 3+2 undergrad/grad options for the program. Additionally, there are plans to include HCI in the upcoming Professional Science Masters program.
Minor programs
The Computer Science Minor and Information Science Minor ("Computer Information Systems"), and Cognitive Science Minor programs each require appropriate subsets of the associated core major requirements.
Cognate support for other majors
Six other majors on campus (mainly in Math and sciences but also including the Business School "Operations Management and Information Systems" program) require at least our CS1 course (CSC212), and several require additional courses.
Math Co-lists
We co-list two elective courses (CSC320, Numerical methods and CSC332, Cryptology) with Math. Additionally MAT215 (Discrete Math), which is required for CS majors, is regularly (but not exclusively) taught by a Math faculty member who has part-time CS department assignment.
General Education
The CS department coordinates non-major courses fulfilling general education computer and information literacy requirements, which are taken by most Oswego students.

As indicated above, the CS department collaborates in some way with about a dozen other departments, both in developing collaborative interdisciplinary programs and in helping develop and improve general education courses. Additionally one faculty member (Prof Vampola) regularly teaches courses in the interdisciplinary Honors program.

While the number of programs might seem excessive given our department size, we find them manageable. All programs share core components, and involve collaborations with other departments to help define and deliver some courses. The net effect is not too different than recent initiatives in CS education to provide "threaded" curricula. This alternative approach might be worth consideration, but there seems to be no pressing need for such a disruptive restructuring at the present time.

A.3. Major Courses

Core

The following brief walk-through of CS core requirements is listed in approximately the order that most students take them. Links are provided to the online course and/or catalog descriptions, some of which are in need of minor updates. (The strange numbering scheme for these and other courses results from various historical accidents.)
CSC212 -- "CS1" (Principles of Computing)
This programming-oriented introductory course is similar in topic coverage to that offered in most CS degree programs.
CSC241 -- "CS2" (Abstract Data Types and Programming Methodology)
This course combines coverage of topics in data structures and algorithms (list, trees, sorting, etc) with those in software design, including object-oriented programming and common design patterns, typically putting them into practice via programming projects incorporating GUIs.
MAT210 -- Calculus 1, AND MAT220 -- Calculus 2
The most essential computing-related content covered in this sequence include limits, series, and sums, needed in the analysis of algorithms and data structures. An equally important goal is ensuring facility with basic analytic math. (The BS program requires one additional Math cognate, in either statistics or advanced calculus.)
CSC221 -- Foundations, AND MAT215 -- Discrete Math
This pair of courses together cover essential formalisms used in computing, including logic, sets, induction, languages, and automata. To maintain flexibility (in part because these courses are also independently required for some other majors outside of CS), neither course is a pre-requisite for the other -- there is about 20% overlap in coverage, which is desirable in providing extra exposure for central concepts.
CSC222 -- Computer Organization, OR CSC322 -- Systems Programming
These two courses provide different paths through topics in low-level programming. CSC222 proceeds from a hardware perspective, from gates through systems. CSC322 proceeds from basic "C" programming to cover the design and construction of core system functionality. While there is little overlap in content (students may take both), either course satisfies the requirement that students understand the substrates underlying higher-level software.
CSC365 -- "CS3" (Data Structures and Algorithms)
This course continues from CSC241, presenting topics in data structure and algorithm design and analysis (balanced trees, graph algorithms, persistent data structures, etc), while also extending coverage of software design topics, putting them into practice via programming projects incorporating network or web-based capabilities.
CSC344 -- Programming languages
This course introduces students to different approaches to programming, including functional and logic programming, and provides understanding of basic syntax, semantics, and pragmatics issues underlying programming languages. Requiring this course also ensures that students do not become entirely mono-lingual.
CSC380 -- Software Engineering
This course extends the software engineering material established in earlier courses with systematic coverage of testing, project management, tools, professional responsibility and ethics, etc. The course is based around semester-long team projects, which provides experiences that students apply in project-based electives.

Electives

See Section C for listings of regularly scheduled electives, and this link to their online course outlines. All elective courses minimally list CS2 (CSC241) as a pre-requisite; 400-level courses list other core courses as appropriate. Except for the CSC416-466 (AI) sequence, no elective courses list other electives as pre-requisites. The lack of strict ordering requirements in other cases where otherwise desirable is a pragmatic tradeoff, that enables students to graduate in a timely manner. We rely on advisement to encourage students to take electives in the best order possible.

Choices among electives are constrained by the following requirements, most of which overlap in effect:

BS Concentrations. The BS program requires that four of the electives be focused in one of a few approved concentrations (see current list.) Originally, most students selected tracks in AI or Software Systems. However, with the advent of the Cognitive Science and Software Engineering programs, that each incorporate most courses in the associated concentrations as requirements, fewer CS program students have been (for AI) or will be (for SE) pursuing them.

Writing Across Curriculum. The Oswego General Education program requires that all students complete five courses approved as meeting Writing across the Curriculum Requirements. For Computer Science, the approved list includes the core courses CSC221, CSC380, and MAT215, plus any two of the electives CSC366, CSC416, CSC420, CSC454, CSC458, CSC465, CSC466, or CSC480.

Capstone. The CS BA and BS programs require students to take any of a listed set of electives (CSC436, CSC444, CSC459, CSC466, CSC480) to count as their Oswego "capstone" requirement. The listed courses each entail software development projects that integrate knowledge and abilities not only in the main topics at hand (compilers, AI, etc) but also across other required and elective courses. Among the initial reasons for this approach is that Oswego general education requirements would have made it impossible to add a stand-alone capstone without reducing topic coverage. However, we have found that this approach also works well in an absolute sense, in part because it provides opportunities for students to integrate ideas from one aspect of computing to others, that otherwise can be difficult to arrange.

Ineligible Courses. The CSC390 course is a seminar for TAs helping with labs and other facets of our non-major service courses. It has been specifically exempted from applying to CS degree elective credit, and is in practice taken mainly by Information Science majors.

Course Scheduling

Year-by-year summaries of offerings (with enrollments) are listed below in Section C; see also the tentative two-year course offering plan. Because the department offers a diverse set of programs to cyclically varying numbers of students, we must carefully schedule course offerings to ensure we provide coverage while also avoiding the disruption to student plans that would result from cancelling courses due to insufficient enrollment. The CS1 and CS2 courses are taught each semester. Most other core courses are taught once per year, in a pattern reflecting course pre-requisite structures, and in keeping with the most commonly advised traversal through the major. Most electives are offered once per four semesters. A few are offered only sporadically, reflecting ongoing challenges in maintaining sufficient offerings during low points in enrollment cycles.

Almost always, we schedule only single sections of CS major courses per offering. CS1 (CSC212) is the only CS major course designed to accommodate 50 or more students per semester (in part by guaranteeing small-section lab times, supervised by other faculty). Some semesters, we need two sections of the freshman/sophomore CSC241 (CS2) and CSC221 (Foundations) courses to keep class sizes manageable given our active-learning, project-based curriculum. Class sizes for core courses (except CS1) are normally less than 30, and for electives less than 20. We schedule as many CS major classes as possible in the two classrooms (one with capacity around 30, the other 20) adjacent to the primary CS labs and offices.

The department regularly schedules continuing education courses. We teach at least one core and one elective course each summer. Service courses, including online SLN versions, are offered continuously throughout the year. The CS program assists the Information Science program in providing an evening degree.

A.4. Learning Outcomes and Assessment

[Note added March 2011: Most of this section has been superceded by an Updated Assessment Plan.]

Assessment Process

We aim to use simple agile assessment processes that match our goals, and do not entail the overhead and rigidity of processes designed for large programs burdened by the need for heavy evaluation procedures that impede innovative program development. Initially, we only maintained files of sample artifacts (course projects, syllabi, exams). While simple, this was not very amenable to systematic evaluation. Five years ago, in response to campus assessment initiatives, we started establishing a set of outcomes, along with (departmental and campus approved) metrics that centered upon use of a single capstone assessment exam issued upon graduation.

As discussed further below, the capstone exam was found not to be very useful for assessment. However, rather than correcting problems and improving upon this approach, we have embarked in a different direction: The conditional New York State approval of our Software Engineering program requires it to become ABET-accredited when eligible (probably 2012). The ABET approach of mapping goals to objectives to rubrics must be applied to courses in the SE program, which substantially overlaps those in the CS program. Consequently, we now plan to seek ABET accreditation for the CS program during this same time frame. However, we must also ensure that the assessment process itself preserves the strengths of our program. We are in the midst of defining and tracking outcomes using a simple interactive tool, developed mainly in a CS/HCI project course, and influenced by ABET training workshops attended by two of our faculty over the past year.

Our 2009 self-study comes in the midst of this transition. The following two sub-sections of this report mainly reflect our scrapped, incomplete capstone-centric approach, for which we can provide only some weak conclusions.

The primary, mostly unrelated, reason for previously rejecting pursuing accreditation was that our main program focus straddles CS and SE, so was not a clear fit to either accreditation category. However, our curriculum increasingly matches ACM guidelines as both have evolved over time. On the other hand, ABET criteria have still not caught up to ACM revisions, so we will probably not immediately act upon this.

Defined Outcomes

The following outcomes were defined in our capstone-centric assessment process. They reflect our primary goals of ensuring that core courses establish a base set of knowledge and skills, and that electives provide depth, professional skills, and a basis for coping with the inevitable changes in computing over time. The listed outcomes are similar to those mappable to ABET "a-k" criteria, but require some (in-process) refactoring and rethinking to carry out the necessary operationalization into rubrics.
  1. Design and implementation, at each of several levels: in-the-small programming; data structures and algorithms; APIs, components and frameworks; applications and systems.
    How met: CSC212, CSC222, CSC241, CSC365
  2. Call upon in-depth knowledge of enough significant examples, styles, and patterns of each of these to construct software solutions to a range of problems.
    How met: CSC365, CSC380, CSC416, CSC466, CSC480, CSC454, CSC465
  3. Apply analytical methods for evaluating correctness (logic and other formalisms) and performance (complexity), and empirical methods for evaluating correctness (testing) and performance (simulation).
    How met: CSC221, CSC365, CSC380, CSC454, CSC465, CSC480
  4. Work effectively in groups and seek help/guidance when necessary, especially regarding such activities as scheduling, code reviews, and requirements collection.
    How met: CSC380, CSC466, CSC480
  5. Use formal systems such as finite state machines, phrase structure grammars, and predicate logic in the service of computer programming.
    How met: CSC221, CSC350, CSC416, CSC444
  6. Program in a variety of computational styles (e.g., objective, functional) and modes (sequential, parallel).
    How met: CSC222, CSC344, CSC338, CSC366, CSC375, CSC416, CSC459, CSC466
  7. Be operationally knowledgeable about operating systems and the Web; program effectively with basic tools, establish Web documents, and write modest Shell programs and Web programs.
    How met: CSC222, CSC344, CSC420, CSC443
  8. Be familiar with advanced and recent computing trends in several of the subfields of Computer Science: Software Engineering, Operating Systems, Networking, Database Design, AI, etc.
    How met: CSC380, CSC416, CSC436, CSC443, CSC459, CSC466, CSC480
  9. Self-directed learning: Adjust in dynamic environments; continuously improve professional skills and remain up-to-date in the field.
    How met: Instilling these attitudes and motivations is a major aspect of all department courses and activities.
  10. Know and embrace the ethical standards of the profession, as articulated by the ACM and IEEE; understand the ramifications of software, its social impact and consequent responsibilities.
    How met: Ethics and societal obligations are infused throughout our program.
  11. Communicate knowledge to others, actively helping others learn.
    How met: Capstone courses (which entail group projects and student presentations), participation in extra-classroom activities such as the Computer Science Association or employment as tutor.

Measures and Results

In 2006, a capstone exam was created and administered with the intention of assessing the above outcomes. The exam sampled topics across each of them. Here is a representative example question, in this case on the use of logic (DeMorgan's law) in programming:
    What is the state of the program after exiting from the while loop in
    the following piece of code?

    while (a != null && (p < s || s > t) ) {
       //...
    }

    (a) a == null
    (b) (p >= s || s <= t)
    (c) a != null && (p < s || s > t)
    (d) a == null || !(p < s || s > t)
    (e) a == null && (p >= s && s <= t)
As is apparently well-known to anyone who has tried this approach (but not initially to us), capstone exams are not of much use in program assessment. Based on its results, we can make only the weak qualitative conclusion that most students display adequate knowledge about core topics. However, further results were too contaminated to determine whether the outcomes listed above were fully met. We mainly found that students do not respond well to a cumulative exam with little bearing on grades or graduation requirements, and used mainly for institutional purposes. The results contain strong recency effects (students unsurprisingly did better on questions dealing with topics covered in courses recently taken) as well as random sampling effects (students who had taken some elective courses unsurprisingly tended to know the answers to questions on topics covered mainly in those courses). Moving forward, we are improving the quality of systematic assessment information by embedding measures in regularly offered courses, and linking them to better operationalized outcomes.

Our ongoing less formal quality assurance and assessment processes are more informative and useful. Because of the cumulative nature of most courses, it is readily apparent when students did not learn, or instructors did not teach, material in one course that is relied upon in another. Additionally, review of courses and course materials is an integral part of regular faculty evaluation. These are effective in preventing, assessing and (as infrequently necessary) remedying lapses. Whenever possible (which for the past five years has meant "always") we do not assign adjunct or temporary faculty to teach core or elective CS major courses, in part because it is too easy for them to escape these safeguards.

A.5. Non-Major Courses

The CS department offers non-major courses serving the vast majority of Oswego students satisfying "Computer and Information Literacy" general education requirements. The coverage and structure of these courses are constrained by mandated Campus and SUNY outcomes. The primary focus is on the usage of computing and information tools rather than computer/information science proper. However, it is our responsibility to ensure technical quality and accuracy and expert delivery of this material.

General Education courses are independently assessed in accord with campus requirements. The most recent outcome assessment indicates that the primary course (CSC101) fulfills its stated goals. However, we believe that we can improve the quality of student experiences, engagement, and content coverage for students satisfying Computer and Information Literacy requirements. We continue a series of steps to replace the monolithic CSC101 course with a collection of more targeted courses (designed for Business, Education, and soon Communications school majors) that provide opportunities to improve learning experiences for non-majors. We (led mainly by service course coordinator Jim Patridge) have been collaborating with other departments and re-thinking course contents and instruction while still conforming to SUNY and Campus requirements. Our experience this semester (Spring 2009) with sections targeting Education majors (co-developed with members of the Education school) appears particularly successful. It is scheduled to become a regularly offered requirement for Education majors as of Fall 2009.

The department also offers CSC120, an introductory course in programming initially targeted only to non-majors. As of next year, we will be revising this course to be based on Scripting languages and co-listing it as ISC150. This improves its utility and relevance for non-majors, while also fulfilling the need for Information Science students to have some fluency in scripting languages. We will also help ISC to revamp ISC325 (Web and multimedia design) so as to be co-listable with HCI under planned HCI program revisions.

We have in the past tried out proposals that could qualify as upper division "Intellectual Issues" general education courses. These have not gone so well: It is at best difficult to deliver courses that reflect the primary intellectual issues of the field while remaining accessible to students without an adequate technical grounding. However, otherwise such courses would entail pre-requisites rarely taken by non-majors.

A.6. Sponsored Activities

Faculty and students in the department regularly participate in Quest, Science Today and College Hour talks and activities. Members of the department occasionally give presentations to other groups in the region.

The CS department also regularly (in fact, for the past five years, yearly) hosts the ACM Regional Programming Contest, a competition among about a dozen teams of students from college and university CS programs in the region, where the winners advance toward national and international contests. Hosting this event requires coordination with ACM organizers, construction of problems and solutions, judging submissions, and managing the logistics of this all-day event.

The department regularly provides opportunities for undergraduate scholarly activities in the forms of sponsored research assistantships, independent study projects, honors theses, and on-campus internships. Several faculty members are engaged in ongoing collaborations with other academic, government and industrial institutions, that often include funded student research opportunities. The number of students taking advantage of these opportunities has varied from about 4 to 12 per year, depending mainly on the number of upper-division students available, and the nature of external research grants. The numbers have been decreasing a bit over the past few years because there have been fewer eligible students, and because there have been increasing numbers of external internship positions available. (It is usually difficult or impossible for students to do both.)

A.7. Curriculum Initiatives

In-process curriculum changes stem from combinations of program review, the exploitation of opportunities, and scheduling and staffing considerations:

Embedded Systems track. In the process of establishing our Software Engineering program, the campus administration proposed a further initiative to create a small Electrical and Computer Engineering program. While these plans continue, we do not yet have sufficient faculty or facilities to start up this program, and probably will not for several years given budgetary and facilities constraints. However, we do have resources to add a track on embedded systems to the CS-BS and SE majors. The courses to be developed (two new, two revised) will also form the main CS contribution to the stand-alone ECE program as it develops. Under Prof Manseur's direction, we anticipate being able to offer this track as early as Fall 2009.

Medical Information Systems. The proposed Medical Information Systems program, which combines CS, IS, Biology, and Management courses is slated to become a new certificate and/or degree program offered at the Syracuse Metro Center. Prof Wenderholm will teach the first CS/IS course in this program Fall 2009 and will direct and help further develop the curriculum for this program next year.

Ongoing. We regularly re-evaluate, add, drop, and/or change frequency of offerings of courses. Recent and upcoming changes include the following:

We will be offering for the first time a new elective course in Computer Game Design in Fall 2009. This may lead to further curriculum development in Gaming by our newest faulty member, Prof Pantaleev.

Under the upcoming Information Science program revision, CSC221 (Foundations) will no longer be required for Information Science majors, which invites rethinking of some content and focus, and probably some minor revisions.

We plan to start regularly scheduling CSC322 (Systems Programming) as of next Spring. This course was approved a few years ago as one of an either/or core requirement for SE and the CS SE track, and was among our responses to previous feedback on the need for more extensive coverage of systems and low-level programming. But the course has not yet been taught. Our initial intent was to usually offer CSC322 instead of CSC222. But with the advent of the Embedded Systems track and upcoming ECE program, which rely on CSC222 (Computer Organization), we need to regularly offer both. We have not been able arrange this given the overlapping audience and campus minimum course enrollment policies, but expect to be able to do so as incoming class sizes rise (see below).

We no longer schedule CSC458 (Systems Analysis), that was initially offered primarily in support of the Information Science program, but is no longer required by it. (More engineering-oriented versions of most of its topics are available in CSC380 and CSC480.)

A few other courses have become taught infrequently if at all over the past five years. These include, somewhat surprisingly, CSC443 (Operating Systems). Most of its "classic" topics are now covered, in more depth, by combinations of others (Embedded, Robotics, Parallel, and Systems Programming). Similarly for CSC470 (Computer Graphics) which overlaps the GUI and upcoming Gaming courses. Also, CSC465 (Algorithm Design), for which some of the graph algorithm content has been pushed down to CSC365 (CS3); other topics are addressed in AI, Parallel and Software Design courses. There are additional topics in each of these three courses (for example, extended coverage of computational complexity in CSC465) that we would like to regularly cover, but doing so will probably require future exploratory course development. Also, CSC436 (Networked Systems), a hands-on course in building distributed services was regularly offered each summer for four years until 2004, after which it failed to attract enough students to meet Continuing Education thresholds. Instead we have begun offering in the summer CSC335 (Programming the Web, co-listed with ISC), which has fewer prequisites and a wider audience.

Among more tentative plans that we probably cannot put into place for more than a year, we intend to offer one or more additional security-related courses (led by Prof Early), and possibly organize recent co-sponsored student projects with a faculty member in Physics (Prof Kanbur) into a regularly offered Computational Science course focusing on Astronomy.

B. Faculty

B.1. Personnel

The Computer Science Department faculty currently consists of eleven full-time lines, but only ten are filled during the 2008-2009 academic year. While some faculty are primarily engaged in support of other majors housed by the department, all full-time faculty teach at least one course that may be taken by students in the CS major program. The faculty include: one full professor (Lea), three associate (Graci, Manseur, Wenderholm), four assistant (Early, Odendahl, Pantaleev, Yoon), one vacant line (in HCI/IS, filled starting Fall 2009), and two regularly reappointed "Visiting" (Patridge, Vampola). Currently one member (Wenderholm) is on sabbatical. Not counted in these figures is one member (Mohammadi) currently serving in a campus administrative position, as well as the part-time CS course assignment of one member (Fettes) of the Math faculty. Also, one line (Manseur) is in support of the proposed ECE program which is likely to be split off from CS as it emerges. Additionally, the department maintains a stable set of part-time adjuncts (Butler, Cortez, Zuber, plus emeritus adjunct Bosch) who teach sections of our non-major general education courses. For more information about our faculty see the online summary of faculty and interests, and in turn links to individual web pages, vitae, etc.

Summary of Personnel Changes

Over the past five years:
  • One replaced retirement (CS/SE)
  • One replaced non-renewal (CS/SE)
  • Two resignations (one IS, one HCI, both for personal/family reasons) to be replaced by one position, hired to start Fall 2009.
  • One administrative reassignment (compensated with visiting line)
  • One new line (ECE, likely to be shifted out when the program becomes self-standing)
  • Replacement of some adjuncts.

Beyond filling our vacant line (that combines HCI and IS replacements), we have no further expectations about gains or losses in faculty. We do anticipate additional ECE positions opening in the future, although those are unlikely to be permanently housed in the CS department.

Newly hired faculty are assigned mentors. We provide encouragement and opportunities for them to do their best (including, when possible, negotiated reduced teaching loads and start-up funds during their first year), provide continuous informal feedback, and make sure the administration knows about successes.

We are firm believers in the need to ameliorate gender imbalances (especially) in computing, and make extra efforts to do so when recruiting faculty. But with so few qualified applicants in the areas that we have been hiring, we cannot succeed as often as we wish (we currently have two women faculty members). Nationally, gender imbalances in computing have grown worse over the past decade, as fewer women enter the field, despite increasing efforts to address this problem.

B.2. Summary of Faculty Activities

Despite the relatively small size of our department, our faculty interests are diverse enough to cover the fields of computing. Most faculty teach a broader range of courses than typical in CS departments. While there is not much overlap in primary research areas, there is enough for many faculty to share some common interests, and for us to provide notably strong programs in the areas of Systems and Software Engineering and Cognitive Science / Artificial Intelligence.

Of our ten currently filled full-time positions, seven members hold terminal degrees, and all have demonstrated mastery in their fields via teaching, curriculum development, research, and associated professional activities such as serving as reviewers, consultants, and/or software contributors. We do not expect each faculty member to be our best at, or most devoted to, teaching, scholarship, or service. However, we do demand that on balance across the department, we are strong in each. This approach has resulted in good reputations across these areas. (Except that we have not recently been able to find anyone with the desire or talent for writing reports like this one.)

Teaching. By all measures we have available, our faculty members are effective teachers. Two have received SUNY teaching awards. Last year, we revised our student evaluation forms to become more informative about the learner-centered outcomes we focus on, and these responses are also encouraging. Teaching effectiveness and the associated activities of curriculum development and advisement are also major considerations in our subdivision's merit procedures, in which CS faculty who choose to apply routinely rank highly.

The aggregated statistical summaries of student evaluations for the past six years show that students generally rate courses and instructors favorably, with no apparent year-to-year trends. However, there are some systematic differences comparing CS major versus service courses that seem to hold across instructors. These are also fully expected -- student experiences in our major courses are not commensurate with those in courses designed to fulfill campus computer and information literacy requirements. Our ongoing steps to split CSC10x into different courses, which offer better opportunities to engage students in learning about computing, are in part designed to improve student experiences.

Scholarship. Faculty are encouraged and expected to engage in research, and as detailed in individual vitae, they do so. The largest category of ongoing scholarly activities consists of regular contributions to research in Computer Science (and Engineering) education. Profs Early, Graci, Lea, and Manseur (and, while in CS, Mohammadi) have all written papers (sometimes jointly), given presentations, and/or appeared as invited workshop participants on curriculum design and instructional techniques.

While all members perform ongoing scholarly activities, a few have a primary (but not exclusive) focus on their ongoing research programs. This includes Prof Lea's work on concurrent and parallel infrastructure design and engineering. This work spanning over two decades has resulted in books, articles, and leadership of open source software development and standardization projects that have been incorporated into most computers in the world. Because of its impact, this work regularly attracts corporate equipment donations and funding as well as other grants. Similarly, Prof Early's work in security and intrusion detection, while only into its second year, has already resulted in publications, grants, and an ongoing collaborative research arrangement with Griffis AFB.

Service. As detailed in individual vitae, faculty are active in departmental, campus, and professional service. Our departmental organization and processes require all members to be involved in departmental affairs. The CS department operates on consensus about general directions, combined with opportunistic decision making about particulars. Anyone with an idea (about courses, curricula, research, logistics, etc) is encouraged to pursue it. Usually we are lucky and it works out -- most of our most successful initiatives were the products of decisions along these lines made during hallway chats. The department has operated even more informally than usual over the past five semesters during which our elected chair (Mohammadi) has been serving as interim Associate Provost, exploiting the strong sense of responsibility by our faculty members for helping to achieve the core program goals of the department.

Several members of our department have impressive records in wider campus service roles. Profs Graci and Vampola (and while CS Chair, Mohammadi) have made regular substantial contributions to campus planning, cross-disciplinary initiatives, and College governance.

Additionally, several members have continuing records of service to the wider computing professional community. Most notably, Prof Lea has served as chair, program committee member, review panel member, steering committee member, invited speaker and/or invited participant for numerous academic conferences, technical workshops, journals, and panels in the field. Most are sponsored by ACM and/or IEEE, the two main professional organizations in computing.

B.3. Faculty Evaluation

See our Personnel Criteria and Faculty Expectations document for criteria and our Departmental Bylaws for procedures.

B.4. Workloads

For comparative statistical summaries, see Institutional Research tables for Average Credit Enrollments per FTE and Student/Faculty Ratios.

For murky historical reasons (including those surrounding the need to limit total major credits discussed above), CS courses carry 3 credits, even though most incorporate significant lab work and faculty-student contact outside of lectures that is recognized by carrying 4 credits in most other similarly structured courses in other departments or campuses. Only the introductory CS1 (CSC212) course schedules labs in (0-credit) sections, to ensure lab space availability. Other courses leave lab components to be informally arranged by instructors. This works well because of the close proximity of student labs, classrooms, and faculty offices. In recognition of workloads that are not commensurate with credit listings, the CS department has since its inception maintained a target semester course load of three courses, plus labs.

The College assigns course releases for Chair (currently Lea as interim), Cognitive Science program director (Graci), Information Science program director (Vampola), ECE program planning (Manseur), and Advisement Coordinator (Odendahl). Additionally Lea and Early currently have externally funded release for research projects. Other faculty have received funded research release in the past; we expect similar combinations of sustained and sporadic release into the future. Some (perhaps most) years, fewer course releases are taken than granted because faculty volunteer to teach needed courses.

Assigned releases more than compensate our use of adjuncts for non-major courses. More importantly, these arrangements improve the overall quality of instruction in the department. The adjuncts we have retained over time are better at delivering service courses that emphasize the uses of software than are some (but not all) of our full-time members whose expertise lies in the underlying theory, design, and implementation of software. However, to ensure continued quality and innovation, we do rely on full-time faculty to design and oversee this curriculum, and also assign at least one full-time member to teach at least one section of each service course each semester.

Our one current faculty member (Prof Wenderholm) on sabbatical is the first in eight years. (One of the results of this sabbatical will be the introduction of Medical Information Systems at the Metro Center.) Other faculty are as many as fifteen years overdue in eligibility. One byproduct of supporting so many different programs and options in the department is that some rely on the nearly irreplaceable range of expertise of specific faculty members. Some faculty are reluctant to apply for sabbaticals out of concern about its potential impact on students. As a pragmatic consequence, we try to arrange workloads, releases, and schedules in ways that allow faculty to keep fresh.

C. Students

C.1. Enrollment

As shown in the following charts from the Computing Research Association (CRA) Taulbee Survey, national enrollments in CS have shown volatile, apparently cyclic trends, since inception of the field. This is seen in national surveys of the percentages of incoming students with intentions to major in CS:


The following graph shows that similar, but shallower, trends hold for the numbers of undergraduate degrees awarded nationwide over the past decade. (The CRA site contains additional data and charts providing further details as well.)


Statistics from Oswego Institutional Research Summaries reflect these national trends. We experienced steep incoming student drops after the "dot com bust", ending around the time of our previous self-study (2004), that have apparently leveled out, and if 2008 course enrollment trends seen in tables below hold, are perhaps beginning to rise again. This small rise is also in keeping with preliminary (but widely reported) national findings which are due to be issued by CRA in May 2009. The following chart based on Oswego Institutional Research data displays numbers of majors and graduates at Oswego, combined across all programs housed in our department. CS BA/BS represent about 60% of the totals. (Additionally, but not shown here, we have about 5 declared CSC minors per year; irregularly ranging from 2 to 7 over the past five years.)

The following table displays more detailed per-course enrollments by CS students over the past five years. The entries (reconstructed manually, so may contain errors) do not include students enrolled as HCI, ISC, COG, or MAT for those courses that are co-listed, so should approximate the numbers of students enrolled to meet CS major, minor, or cognate requirements. (The table does not include courses/enrollments primarily targeted to students in the other programs housed by the department, and does not include for-credit internships, independent studies, and honors projects. Summer course enrollments are collected in their following academic year entries.)

# Title 2004-5 2005-6 2006-7 2007-8 2008-9

Core Courses




212 CS1 -- Principles... 113 96 109 94 104
221 Foundations 45 34 34 31 42
222 Computer Organization 33 19 14 12 27
241 CS2 -- Abstract Data ... 50 63 58 50 61
344 Programming Languages 31 13 17 19 23
365 CS3 -- Data Structures... 31 28 22 18 24
380 Software Engineering 35 16 15 18 12

Total CS Core 338 269 269 232 293








Electives




320 Numerical Methods 8 5 2 5 2
323 Embedded Control Sys


7 9
332 Cryptology 7

6
335 Programming The Web



6
338 Robotics 28 11 6
15
350 Computational Linguistics 29 13 21 10 11
366 Comp Models Cognitive
10
7
375 Parallel Computing
17
13
390 Teaching Comp Concepts 23 23 25 27 28
416 AI Programming 21
14
17
420 Graphical User Interfaces 18 17 8 7 13
435 Web Services
15 11
12
436 Networked Systems 6



443 Operating Systems


9
444 Compiler Construction 13
6
7
445 Computer Networks
18
16
454 System Simulation 18
5

458 Systems Analysis 15 6 6

459 Database Systems
20
12
466 Artificial Intelligence 7
8
11
480 Software Design 19 4 10 2 13
490 Special Topics (one-shot) 3 9
2

Total CS Electives 215 168 122 125 146








Total CS Major Courses 553 437 391 357 439

Retention. Trends in number of degrees awarded are generally shallower than those of numbers of majors, which indicates that in times of lower admissions, retention rates have also been higher. This also meshes with interpolations of national trends in the above charts, and suggests that these fewer incoming students are better prepared, more motivated, and/or more able to succeed. We cannot reliably estimate retention rates using this data because of interactions with enrollment trends, but they appear to have risen from around 50% in the late 1990s to around 75% now.

Impact. While we cannot say whether enrollments will rise or drop in the near future, we believe that the impact will in any case be felt mainly in lower division courses, which is likely to be manageable without dramatic shifts in personnel requirements in either direction. The department's main goals lie in continued efforts to increase the diversity, and enhance the quality, of programs supported, rather than preparing for unpredictable significant increases or decreases in overall major enrollment.

Service Courses. The following table displays general education service course enrollments. The growth in enrollments seen after 2005 stems from changes in SUNY and Campus mandated contents and coverage in Computer and Information Literacy courses. Some other (non-CS) courses on campus no longer meet these requirements.

# Title 2004-5 2005-6 2006-7 2007-8 2008-9

Service Courses




10x Comp Literacy 1208 1288 1421 1490 1514
120 Intro To Prog 52 42 35 33 44

Total 1260 1330 1456 1523 1558

C.2. Profiles

The following table summarizes statistics over the last five years based on data extracted from our annual advisement lists (which lack some summary statistics for 2006). These are similar to national averages as reported for example in the Taulbee Surveys, except for our comparatively low percentages of Asian students.

2004-5 2005-6 2006-7 2007-8 2008-9
Gender




Male 88% 90% 87% 93% 93%
Female 12% 10% 13% 7% 7%






Ethnicity




Black 9% 10% N/A 8% 11%
White 63% 50% N/A 60% 72%
Hispanic 4% 4% N/A 1% 4%
Asian 5% 3% N/A 2% 0%
Unknown/Other 19% 34% N/A 28% 13%






Age




18-25 88% 90% 85% 89% 84%
Other 12% 10% 15% 11% 16%






Degree




BA 77% 79% 81% 76% 73%
BS 23% 21% 19% 24% 27%






Average GPA 2.67 2.70 2.74 2.80 2.91

Our statistics reflect the disturbing continuing national trend of attracting increasingly tiny percentages of women students in computing. The problem remains incompletely explained and addressed, here and elsewhere. While we cannot locate statistical records, we recall that in some years during the 1980s and 1990s, as many as one-third of our students were women. The proportion decreased more steeply than did total enrollments in the early 2000s, and apparently even moreso at Oswego than nationally. Our absolute numbers are too small to analyze, but it appears that retention of those few women who do enter is at least as high as of men.

The last row in the above table shows trends in average GPA of our majors, which seem to be rising. This probably reflects better retention. The consensus among faculty who have taught CS students here and elsewhere is that on average, our students come in with about the same incoming abilities, motivation and knowledge as students in most other institutions, and that this average remains fairly constant over time. Averages do not however reflect the fact that the range of abilities in some aspects of computing (especially, programming) can be very wide. Research in software engineering consistently documents more than ten-to-one differences in productivity and other measures across individual software developers. Such research also shows that it is difficult to predict these variations from test scores etc, which is one reason we do not have rigid CS major program admissions criteria.

C.3. Post-Graduation

Surveys listing employment and positions for Oswego CS graduates are available from Career Services. Over the years, our graduates have successfully obtained software development positions at companies both large and small, across Central New York and the nation. A small representative sampling of such employers includes Lockheed Martin, IBM, Xerox, Par-Tech, ITT, Bank of New York, Syracuse Research Corporation, National Grid, and North Coast Software.

Most years, most students obtain computing-related positions shortly after (or before) graduation. We expect this to continue. Nationally, employment demands for CS graduates are predicted to far exceed expected numbers of CS graduates over the next decade.

As is typical in Computer Science programs with an SE focus, on average only a few students per year apply to and enter graduate programs immediately upon graduation. Over the past five years or so, a majority of these students have attended RIT, in part because the RIT Masters program shares emphases with our program, and because several members of our and their faculty maintain regular contact, facilitating recruitment and admission. Anecdotally, we hear that many graduates attend graduate programs later in their careers, often under incentives by their employers. But we do not have statistics.

D. Support

D.1. Student Support Services

Advisement. Computer Science has a well-established system in place for managing the advisement process, due primarily to the long-term efforts of Prof Odendahl (Advisement Coordinator). The purpose of this process is to ensure timely completion of a program uniquely meaningful to each student. Beyond assisting advisees in course selection, advisors also help in identifying research projects and internships for students. Each student is assigned to a faculty member familiar with the goals of the curriculum. Freshmen are assigned to the faculty member serving as the first year advisor. Transfers are often assigned to a faculty member who is most knowledgeable in the fields of study corresponding to the interests expressed by these students during initial registration. Students are encouraged to discuss opportunities with all faculty members of the department and other students as well as their advisors. They are free to change to another advisor as working relationships develop during their time in our program.

First-Year programs. The department has maintained a commitment to first-year programs since their inception. We've routinely participated in New Student Orientation, First-Year Advisement, and FirstChoice designated courses. This year we secured a "peer advisor" as an aid in making students more responsive to the advising opportunities available. We use an e-mail list to make periodic contact with first-year students. This mechanism has proved a useful aid not only for setting up mandatory advisement sessions, but also for encouraging our new majors to participate in departmental- and college-sponsored events, such as Computer Science Association and tutoring activities.

Transfers. We admit a dozen or so transfer students per year. Many of these are from area community colleges, with which we have articulation agreements that are in need of updating (which requires participation by the Admissions Office). We also maintain informal contacts with faculty teaching at these colleges. Although we do not have systematic statistics, transfer students on average seem to perform about as well in our program as others, although they usually take longer to graduate -- while it is in most cases possible in principle for two-year transfers to graduate in four semesters, the CS course loads required to do so would be unrealistic.

Teaching Assistants. Most TA opportunities for students in the department are organized via the CSC390 course. Students in this course present and monitor structured labs and provide help for students in CSC101 and other service courses.

Internships. Many students in computer science complete at least one internship during their last two years of study. The department appoints a coordinator for internships (currently Prof Early) to help track opportunities, but mainly relies on the Experience-Based Education Office (see below) for arranging and overseeing placements. Other students (perhaps even a majority) take on internship-quality (usually summer) jobs but do not arrange them through us because they do not need the credits.

International Education.The Computer Science department assigns a faculty member as liaison to the office of International Education. CS students are regularly updated about study abroad opportunities. In the future, we hope to organize excursions with a particular emphasis on computer science instruction.

Recruitment talks. Faculty occasionally provide invited presentations on CS and related careers to area school audiences.

Student Chapter of ACM (CSA). The Computer Science Association is our student chapter of the Association for Computing Machinery (ACM), and is a very active SA-sponsored student organization. The CSA sponsors a variety of activities each year, including participation and logistics support for the regional ACM programming contest, and organizing trips, activities, and lecture series to promote student involvement. CSA meetings and activities help bring CS students together and establish social networks that last beyond their college experience. Additionally, officers in CSA gain leadership skills. In the mid-1990's a second SA-sponsored organization Women in Computing was also established as a support organization for women CS students, but has since been folded into CSA.

Peer Tutoring. The CSA assists the department in arranging peer tutoring for our CS1 and CS2 courses, held in one of our student labs. Help sessions are usually scheduled daily, and staffed by volunteer junior/senior CS students. This peer tutoring complements our faculty-led lab sessions, providing opportunities for students to get help from a different perspective when trying to understand concepts and complete assignments.

D.2. Library

Increasingly, nearly all resources in computing are Web-based. All students rely on web-based materials in CS courses. (It is increasingly common not to even use textbooks for some CS courses because of the superior quality of web materials.) Our main library requirements are for sponsored access to resources that are available online only under paid subscription. Our library's current institutional subscriptions to ACM and IEEE holdings fulfill much of this need. (For ACM, this is arranged by sharing expenses with the library for our departmental institutional ACM membership.) There are a few others (for example Springer and Safari) that would be desirable but are priced so high compared to expected usage that we cannot make a strong case that they would be worthwhile for our institution. However, we continue to encourage the library to pursue SUNY-wide arrangements to provide affordable access.

D.3. Facilities and Equipment

The CS department maintains its own ample computing facilities and labs. We have three main student labs for CS majors, equipped mainly with thin-client (Sunray) workstations; one geared for medium-size (15) structured group labs, and the others best suited for small group or individual work. The physical conditions of our facilities are generally good (due to a 1999 renovation of the wing housing most of the department) although with a few dripping windows and ceilings a few times a year. Our labs suffice for current instructional needs. In fact one unwelcome consequence of students increasingly using their own computers or laptops for coursework is the slowly decreasing utilization of CS labs. This hurts students who would otherwise benefit from informal contact, motivation, and help from nearby faculty and advanced students.

All computing services are provided by a cluster of servers (four main general-access server-class multiprocessors, plus a few others dedicated for particular instructional or research purposes), all connected with gigabit switches. All equipment used for CS major courses and research was obtained through external grants. Our departmental computing facilities are maintained by faculty members, with occasional cooperation and support from CTS (for example, in setting up network connections). We also rely on CTS to maintain the Snygg room 322 PCs used mainly for CSC101 labs, as well to maintain general-access wired and wireless support for those students who mainly use their own desktops/laptops for CS programming assignments. Several CS faculty have also obtained laptops via the campus faculty computing program.

As of this writing, the plans for accommodating CS (and ISC, HCI, COG) in the proposed new Science Building appear disappointing but tolerable. The total space and configurations are about the same, but the spatial separation of classrooms from other facilities will make it more challenging to maintain the engagement-based instructional style used successfully in many of our courses. We hope to find ways to avoid instructional impact. (The department initially tolerated similar arrangements, but the 1999 Snygg renovation that co-located most of our classrooms, labs, and offices noticeably improved program quality.)

Budget. Due to regular infusions of external grants, collaborative funding, and corporate donations spanning the past twenty years, the CS department subsists on a very small campus-funded discretionary budget, that is used only for auxiliary equipment such as printers and disks, plus the usual departmental supplies and recharges. All together, we have one of the most cost-effective CS programs around.

While this state of affairs is fine for the CS program, the upcoming ECE program will require substantially more equipment and lab space, that may need to await construction of the proposed new Science building, plus additional funding. The ECE program will not initially have the kind of track record needed to attract much external funding. We will also require shorter-term cooperation and support (especially short/medium-term arrangements for modest lab space and equipment) to put the planned Embedded Systems track in place.

E. Administration

E.1. Organization

The Department of Computer Science is a member of the Science subdivision of the Liberal Arts and Sciences division of the State University of New York College at Oswego, reporting to our Dean, and in turn Provost, and then President, and then SUNY Central offices. The Science subdivision itself is not an administrative unit. Its main role is to each year constitute a committee to review and recommend personnel decisions and discretionary salary awards. Our ongoing relationships with the administration reflect the intrinsic tensions of maintaining CS (and related) programs in divisions and colleges mainly housing departments with different kinds of goals.

The Computer Science department bylaws were written in the mid 1980s and have served us well, although they are in need of some minor updates to reflect campus-wide changes.

E.2. Secretarial

The CS department has one full time secretary who is solely responsible for the fact that a department housing a number of diverse programs and faculty, with no leadership to speak of, nonetheless functions more smoothly than do most departments. Our secretary is burdened with more work than typical in an academic department (including help with scheduling, managing adjuncts, overseeing student TAs, etc) and is a critically important member of the department.

E.3. Campus Student Support Services

We rely on other campus offices and programs to help recruit, admit, finance, house, and otherwise support our students, and assist them in seeking jobs or graduate programs upon graduation. The CS program does not have any notable relationships with or place unusual demands on most of these offices or programs. However, a few provide services that directly interact with our mission:

Office of Experienced Based Education (EBE) . EBE coordinates opportunities for students to participate in internships in business, industry, social and governmental agencies, and other work settings. To receive (up to nine) "GST" credits, students must additionally produce graded research and/or experience reports documenting learning experiences.

Collegiate Science and Technology Entry Program (CSTEP). The purpose of CSTEP is to increase the number of historically underrepresented and/or economically disadvantaged undergraduate and graduate students who complete pre-professional or professional education programs of study that lead to professional licensure and to careers in mathematics, science, technology, and heath related fields. We currently have computer science students that participate in CSTEP and the following programs: Educational Opportunity Program (EOP) that serves students from New York State who have economic need and who are, by traditional academic criteria, under prepared; and the Native American Student Service Program (NASP) that serves Native American students.

Office of Learning Services (OLS). OLS primarily serves the needs of historically underrepresented and economically disadvantaged groups. The OLS Math and Computer Lab provides tutoring for (mainly freshman/sophomore) CS and Math courses, as well as computer lab access and related support to any student desiring them.

Office of Disability Student Services (DSS). DSS provides assistance to computer science students who have a learning disability, hearing impairment, mobility impairment, visual impairment, or other disabling condition.


Doug Lea
Last modified: Mon Mar 21 07:56:44 EDT 2011