Computer Science

Oberta A. Slotterbeck (1974), Professor of Computer Science
B.S., Ohio State University;
M.A., Ph.D., University of Texas (Austin)

Academic Interest: computer graphics, computer simulation, theoretical computer science, and parallel/distributed computing

http://cs.hiram.edu/~obie/

 

Ellen L. Walker (1996), Professor of Computer Science, Chair
Sc.B., Brown University;
M.S., Ph.D., Carnegie Mellon University

Academic Interest: computer vision, fuzzy logic, robotics, and artificial intelligence

http://cs.hiram.edu/~walkerel/

 

Department web address:

http://cs.hiram.edu/

 

Overview of Program

The computer science program was established in 1974, graduating our first minor in 1976 and our first major in 1977.  Our alumni, who include leaders in both industry and academia, have praised the combination of rigorous education in the discipline combined with a broad liberal arts education. Our program stresses a deep knowledge of basic principles and concepts, rather than an emphasis on just the latest hot topics. Our students have combined computer science majors with a wide variety of other majors and minors, and leave Hiram with both a rigorous education and practical experience in implementation of large projects.

As a department, we have articulated the mission of the computer science program as follows, aligned with and inspired by the mission for Hiram College:

The mission of the computer science program is 1) To develop ethical, socially responsible, analytical, and critical thinkers. 2) To instill in our students a foundation for making creative contributions to society in the computing area. 3) To provide challenges to our students within a supportive community.

 

Preparing for Life After Graduation

Through our Integrated Research Component (IRC) program, we involve each student in undergraduate research. Work produced in the IRCs yields excellent student portfolios when applying for internships, jobs after graduation, and graduate school. The Computer Science program encourages our students to apply for internship opportunities to gain workplace experience, as well as summer undergraduate research programs.  Our students have been successful in gaining acceptance to nationally competitive internships and research programs.

Since its inception, over 20% of graduates of the computer science program have completed graduate degrees. Our students have been singularly successful in attaining graduate school acceptances; over the last 10 years, every student who has applied to graduate school has received at least one acceptance.  Many of our recent graduates received assistantships from prestigious schools.

Students who complete the bachelor degree in Computer Science at Hiram have been very successful in the job market. Students' first job placements are in a wide variety of areas including programming, support, consulting, and systems administration.

                 

Requirements for Majors and Minors

The department of computer science offers a major and a minor in computer science. Students interested in computer engineering can earn a B.A. in computer science and a B.S. in computer engineering through the dual degree program.

 

The Computer Science Major requires a total of 13 courses.

 

I. Core courses:

CPSC 171

CPSC 172

CPSC 201

CPSC 252

 

II. 2 Integrated research components (capstone)

CPSC 400 + CPSC 3xx (corequisite)

CPSC 401 + CPSC 3xx (corequisite)

 

The computer science department capstone is a sequence of two integrated research components.  An integrated research component (IRC) is an integration of research with a specified course and requires a formal research proposal, a significant software implementation, an oral presentation to faculty and peers, and a research paper.  An IRC can be added to selected upper-division courses. Choices must be approved by your departmental advisor and the course instructor.

 

III.  5 Computer Science Electives

CPSC 2xx

CPSC 2xx

CPSC 3xx

CPSC 3xx

CPSC 3xx

 

In the course listings, CPSC 2xx means any CPSC course of 3 or more hours at the 200 level or above, and CPSC 3xx means any CPSC course of 3 or more hours at the 300 level or above.  The course CPSC 498, if taken for 3 or more hours, can count as one of the CPSC 2xx courses but not as one of the CPSC 3xx courses.

 

The Computer Science Minor requires seven courses:

 

I. Core courses:

CPSC 171

CPSC 172

 

II. 5 Computer Science Electives

CPSC 2xx

CPSC 2xx

CPSC 3xx

CPSC 3xx

CPSC 3xx

 

Early contact with a departmental advisor is critical to ensure the proper sequencing and choice of computer science courses.  A student majoring in computer science must have completed CPSC 171 and CPSC 172 by the end of their sophomore year in order to finish the major within 4 years.

 

Typical Schedule (4 year)

Year

Fall Semester

 

Spring Semester

 

 

12-week term

3-week term

12-week term

3-week term

Freshman

CPSC 171

 

CPSC 172

CPSC 2xx

Sophomore

CPSC 201

CPSC 2xx

CPSC 3xx

 

Junior

CPSC 252

CPSC 3xx

 

CPSC 3xx

CPSC 400

 

Senior

CPSC 3xx

 

CPSC 3xx

CPSC 400

 

 

 

Typical Schedule (3 year)

Year

Fall Semester

 

Spring Semester

 

 

12-week term

3-week term

12-week term

3-week term

Sophomore

CPSC 171

 

CPSC 172

CPSC 2xx

Junior

CPSC 201

CPSC 3xx

CPSC 2xx

CPSC 3xx

CPSC 400

 

Senior

CPSC 252

CPSC 3xx

 

CPSC 3xx

CPSC 3xx

CPSC 400

 

 

Students majoring in computer science at Hiram are well-trained for positions in business and industry. Students considering graduate study in computer science should add mathematics courses in consultation with their computer science advisor.

 

The main academic computing environment at Hiram College is based on a distributed network of Windows machines. Many computers are available in laboratory settings in both academic buildings and the dorms. Students are encouraged to bring their own computers, which can be attached to the network in any dormitory room or used wirelessly throughout campus. Electronic classrooms with PCs, projection systems, and sound systems are the sites of many of our laboratory-based courses. The department maintains its own state-of-the-art laboratory based on Linux and Windows platforms.

Requirements for Departmental Honors

Besides meeting the college grade point average requirements, a student must perform exemplary work in the Integrated Research Components.

Departmental Grade Point Average

Computer Science calculates the departmental grade point average by counting all Computer Science courses, whether meeting the minimum requirements or not.

151 COBOL                                                                                              1 hour

An introduction to the COBOL programming language. Prerequisite: CPSC  171 and CPSC  172 or permission

152 LISP                                                                                                 1 hour

An introduction to the LISP programming language. Prerequisites: CPSC  171 and CPSC 172 or permission

153 C++                                                                                                 1 hour

An introduction to the C++ programming language. Prerequisite:   CPSC 171 and CPSC 172 or permission

154 FORTRAN                                                                                         1 hour

An introduction to the FORTRAN programming language. Prerequisites:  CPSC 171 and CPSC 172 or permission

 

165 The Information Age and Computers                                           3 hours

In today’s world, being able to find, organize, and display information in a myriad of ways is becoming increasingly important. This course introduces students to the use of computers and the Internet for browsing, locating, obtaining, creating, and managing computer-based documents that include, in addition to text, pictures, sound, and animation. Students taking this course early in their college career will find it will enrich their learning experiences in many courses.

171 Introduction to Computer Science MM                                         4 hours

The introduction to the computer science discipline which establishes a scientific foundation for a variety of topics, including computer programming, computer design, information processing, the algorithmic solution of problems, and the study of the algorithmic process itself. The course will have a formal laboratory each week that satisfies the laboratory requirement in science.

172 Introduction to Programming MM                                                 4 hours

An introduction to the process of program creation. Students will learn to use the principal facilities of a high-level programming language and to transform algorithms into correct programs. The object oriented paradigm will be stressed. Prerequisite: CPSC 171 or permission.

201 Data Structures and Algorithms MM                                           4 hours

A study of a broad spectrum of data structures and algorithms and the use of advanced language facilities and programming techniques for implementing them. Prerequisite:  CPSC 171 and CPSC 172 or permission

 

202 Problem-Solving and Programming Practicum                            3 hours

Successful computer problem-solving relies not only on the development of appropriate algorithms, but also on the recognition of instances of well-defined problem classes for which algorithms already exist. In addition, excellence in computer programming cannot be developed without significant practice in implementing and debugging solutions. This course will provide students with a guided programming practicum, in which they will program solutions to carefully chosen problems that exemplify common problem classes. Many problems will be chosen from recent programming contests. Prerequisite:  CPSC 171 and CPSC 172 or permission

 

205 Systems Programming                                                                 3 hours

Systems programming concentrates on an in-depth study of one operating system, such as UNIX, and how to write system programs in that operating system. The course will concentrate on the operating system’s history, file system structure, commands, utilities, multi-tasking capabilities, communication, security, and shell-type programming. Theory is presented in the context of how the operating system implements the ideas. By the end of the course, students should be able to determine how most of the commands are implemented and how to use operating system properties to create tools and applications. Prerequisite: CPSC 171 or permission

221 Testing and Verification                                                               3 hours

An introduction to the theory, principles, and techniques for verifying that a computer system is sound and correct. A spectrum of approaches will be studied ranging from testing techniques through formal proof analysis. Students will design verification plans and implement procedures for a system at different phases in its life cycle. Prerequisite:  CPSC 171 and CPSC 172 or permission

 

222 Interface Design                                                                           3 hours

User interface design is complicated by the wide variety of choices and approaches that are possible today. Students will study and apply human factor research to the design of various types of interfaces. Designs will be implemented using software toolkits, and formal usability testing will be performed. Prerequisite: CPSC 171 and CPSC 172 or permission

 

223 Project Management                                                                     3 hours

A study of software metrics, estimation models, risk analysis techniques, scheduling methods, and resource allocation planning approaches for managing extremely large software projects. Students will use available CASE tools to construct a project plan for a software project. Prerequisite:  CPSC 171 and CPSC 172 or permission

 

224 Internet Administration                                                                3 hours

A study of the structuring of Internet services and of the client/server model for providing resources and information in a distributed environment. Students will learn how to design, configure, program, and maintain the major types of services. A special emphasis will be placed on security issues and ethical questions concerning those issues. Prerequisites: CPSC 171and CPSC 172 or permission

 CPSC 205 or comparable background would be desirable but not required.

226 Software Evolution                                                                       3 hours

The longest and often most costly part of the software life cycle is the “maintenance” phase from the time software is released until it is no longer being used. During this period, changes in user’s needs and environments may require significant evolution of the software. Two well-known examples of environmental effects are Y2K and the impact of the World-Wide Web. Topics to be covered include: legacy software, software engineering and reuse, and design for maintenance. Prerequisite: CPSC 171 and CPSC 172 or permission

 

227 Software Evaluation                                                                     3 hours

An introduction to the design and evaluation of softwareStudents will learn to choose, test, and evaluate commercial software packages (COTS).Prerequisite:  CPSC 171and CPSC 172 or permission

 

240 Computer Ethics ES                                                                       3 hours

A consideration of some of the major controversies, key value conflicts, ethical dilemmas, and social choices that drive and shape the computerization of our society. Representative areas of concern will include personal information and privacy, the effect of introducing the computer into the work place, computer crime and fraud, relationships in electronic communities, security and reliability issues, and the use of the information highway. May not be used to satisfy a distribution requirement in the sciences.

252 Computer Organization                                                                 4 hours

An introduction to the design, functioning, and control of the subsystems of a computer system: processors, memory, storage, and input/output. Topics include digital logic, combinatorial and sequential circuits, instruction set architecture, interrupt processing, microprogramming, and assembly language. Prerequisite:  CPSC 171 and CPSC 172 or permission

 

280 Seminar                                                                                   1 - 4 hours

281 Independent Study                                                                  1 - 4 hours

320 Computer Vision                                                                            4 hours

An introduction to the theory and algorithms needed for automatic interpretation of images. Topics include: image formation, segmentation, stereo, motion and other geometric reasoning techniques, object recognition, and applications. Sources of uncertainty and techniques for recognition in the presence of uncertainty will also be discussed. Students will implement significant parts of a complete object recognition system. Prerequisites: CPSC 172 and at least one computer science course above 200 level or permission.

331 VLSI Design                                                                                   4 hours

Virtually every electronic device includes one or more VLSI (Very Large Scale Integration) “chips”.  This course will look at how such VLSI chips are designed, concentrating on field-programmable logic devices (FPLDs)—the “chips” most commonly used for small-volume consumer devices.  The course will cover logic design, schematic capture, and design using a hardware description language.  Students will design and implement projects on actual FPLDs.  Prerequisite CPSC 171 and CPSC 172 or permission CPSC 252 is recommended.

345 Operating Systems                                                                       4 hours

An introduction to operating systems that explores the design principles, internal algorithms, and the abstract data types of operating systems. Topics include concurrent programming principles, storage management techniques, scheduling algorithms, and file management schemes. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

351 Programming Languages                                                              4 hours

A study of the concepts underlying programming languages. Students will learn to describe the syntax and semantics of programming languages in a formal manner, to analyze a programming language with respect to its capabilities and limitations for the solution of particular classes of problems, to approach the task of learning a new programming language in an effective manner, and to specify desirable characteristics in a language. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

352 Computer Security                                                                        4 hours

An introduction to secure computer systems and a study of their most important responsibilities, including authenticating users, protecting user privacy, and ensuring the privacy, integrity, and availability of the system’s data.  The student will gain an understanding of techniques and procedures that are being used as well as the challenges that still remain to attain secure computer systems, networks, and the Internet. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

354 Systems Administration                                                               4 hours

An introduction to the many tasks of a system administrator. Students will learn to design, implement, install, and maintain systems software as well as establish and monitor system performance, security, and integrity. Prerequisites  CPSC 171 and CPSC 172 or permission.

 

356 Database Design                                                                           4 hours

A study of the principles and concepts relevant to the management of complex data systems, especially the relational database model. Students design and implement a complete database system, from requirements analysis through documentation, using a generic database engine. Prerequisite:  CPSC 171 and CPSC 172 or permission.

 

361 Computer Simulation                                                                    4 hours

An introduction to simulation as a modeling tool to solve real-world system problems. The emphasis will be on discrete event simulation. Topics covered will include event graphs and other system modeling techniques, simulation languages, techniques for running simulation models, and the analysis of simulation output. Prerequisites: CPSC 171 and CPSC 172 or permission.

 

363 Computer Networks                                                                     4 hours

A study of the fundamentals of the field of data and computer communication. Key topics include the layered architecture, network protocols, and algorithms for accurate and reliable message delivery in both local- and wide-area networks. Current networking standards will be studied. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

367 Parallel Computing                                                                       4 hours

An introduction to parallel and distributed architectures, programming languages, operating systems, and algorithms. Students will design and program parallel and distributed algorithms. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

375 Software Engineering                                                                   4 hours

Students will study both the theoretical and practical aspects of desiging and developing large, complex software systems. Readings will emphasize research results and case studies of all phases of the software lifecycle - requirements, specificaion, design, resource allocation, implementation, integration, and testing. Principles will be applied by the class to various projects. Prerequisite: CPSC 171 and CPSC 172 or permission.

 

381 Topics in Computer Science                                                    1 - 4 hours

Various advanced topics are offered when need and sufficient interest are demonstrated. Credit hours and prerequisites are established for each offering. May be taken more than once with department consent.

386 Artificial Intelligence                                                                    4 hours

A study of the goals, problems, concepts, and methods of artificial intelligence are explored. The emphasis is on computer problem solving paradigms and knowledge representations. Examples of techniques and systems are chosen from the areas of image recognition, human-machine interfacing, game playing, natural language understanding, robotics, expert systems, and automatic reasoning. Students will design and implement relevant algorithms Prerequisites: CPSC 152  CPSC 171 and CPSC 172 or permission.

 

387 Computer Graphics                                                                       4 hours

A study of the algorithms and techniques of computer graphics and animation. Topics include display devices, geometric algorithms for displays, interaction methods, hierarchical modeling, lighting color, and shading  models, and hidden edge and surface algorithms. Students will design and implement various three-dimensional algorithms to produce displays in an interactive environment. Prerequisites: CPSC 172 or permission.

388 Compiler Design and Construction                                               4 hours

An intense treatment of the theoretical and practical considerations involved in implementing translators for high-level programming languages. Students will design and implement parts of a compiler for a high level language. Prerequisites: CPSC 171 and CPSC 172 or permission.

 

400 Integrated Research Component I                                             2 hours

The student will propose and complete a plan to investigate a research topic that is integrated with the specified course. The plan must include a substantial implementation demonstrating some aspect of the research, a journal quality research paper and a formal talk presented to peers and faculty. Co-requisite: Specified 300 level CPSC course. Prerequisite: 201 or permission.

401 Integrated Research Component II                                             2 hours

See CPSC 400 for description. Prerequisite: 400.

465 Design and Analysis of Algorithms                                              4 hours

An advanced course in the theory of computation. Students will learn to apply important results of computability and complexity theory to problems of program design and to interpret measurements of program performance. Topics will include a selection from the areas of tree and list traversals, sorting and searching, matrix manipulations, linear programming, set operations, shortest-path algorithms, pattern matching, operations of polynomials, and fast Fourier transforms. Mathematical sophistication is expected. Prerequisites: CPSC 201 or permission.

466 Theory of Computation                                                                 4 hours

An introduction to the classical and contemporary theory of computation. The topics covered are the theory of automata and formal languages, computability by Turing machines and recursive functions, unsolvability, computational complexity, and mathematical logic. Mathematical sophistication is expected. Prerequisites: CPSC 201 or permission.

481 Independent Research                                                            1 - 4 hours

498 Internship                                                                                1 - 4 hours

Additional Information