Computer Science Program
Muskingum provides its students with a sound technical education that includes topics from a number of emerging areas, including web tool development, network and wireless communication, animated graphics, artificial life, and robotics. At the same time, the department faculty believe that a liberal arts institution should have a special mission that includes discussions of the effects of this technology within our society and around the world.
The department provides a personal, friendly environment for students. Majors in the department come from many countries and backgrounds, and there is ample opportunity for discussion with other students with both similar and dissimilar backgrounds. Students can choose electives to tailor their course of study to fit their personal career goals.
Major in Computer Science
People who major in computer science complete 4 computer science core courses, 3 or more elective computer science courses, a programming project and a seminar. An internship may be substituted for the programming project, and many people use this option to gain valuable corporate experience. A mathematical foundation consisting of beginning calculus, discrete mathematics, and linear algebra is also required. The minimum requirements for the major provide students with enough other course options to develop a second major, to develop one or more minors, or to take further courses in computer science. A number of students have successfully completed second majors in areas such as business, chemistry, mathematics, and physics. Muskingum also has a special program for computer engineering in conjunction with Case-Western Reserve University.
Opportunities for Involvement
The department sponsors a national chapter of the Association for Computing Machinery (ACM). The ACM chapter meets monthly and sponsors special events and tours. The chapter sends a team to local programming contests and to the ACM regional contest each fall. The department employs qualified students as departmental assistants, and their duties include supervision of computer laboratories, tutoring, and grading course work. Computer and Network Services also employ students to assist in the computer center, and in providing computer support across the campus. These valuable positions provide salaries and important experience for many students each year. Students may also obtain internships with industry. These internships, which often lead to employment after graduation, carry academic course credit, provide financial support, and give students a valuable complement to academic courses.
For computer science, Muskingum maintains a dual boot Windows/Linux laboratory. Numerous servers are provided for file storage, e-mail, web serving, etc. Full web access is also available throughout campus. A number of other Windows and Macintosh laboratories are available. In addition to the laboratories, students can use color printers, scanners, Midi computer/synthesizers, robots, graphics tablets, and a number of other special devices for projects.
Numerous languages and software packages are used in course work and in student research projects. Java and C++ are used in core course work, and language courses are offered in a number of other languages, including Scheme, Perl, and SQL. For database work, both Microsoft Access and SQL Server are used for courses and for projects. Graphics and animation are supported by Java3D, OpenGL, and a variety of application programs. Dream Spark is provided in laboratories and on the computers of students majoring in Computer Science for software development. For courses focusing on mathematics, the campus provides Mathematica on all machines in the Windows/Linux laboratory.
Muskingum was one of the first small colleges in Ohio to be connected to the internet, and we were one of the very first to provide students with access to the Web. Students can use the Internet during course work to access facilities and people at thousands of institutions around the world. The campus provides access to a 10/100Mbps LAN for all rooms used by majors in computer science, both for classes and for housing. The campus LAN connects to a T1 WAN to provide internet access for all students. Students can connect to laboratory and faculty machines from campus housing to facilitate handing in assignments, receiving graded materials, etc. This network support student research at Muskingum by connecting people with researchers at large universities and major corporations.
The department has ongoing research in several areas, and seniors can develop their own research for course credit. Equipment is available for a wide variety of student projects, including studies in artificial agents, expert systems, robotics, graphics and animation, network and web applications, novel language and compiler design, and human-computer interaction. The background of the faculty and close ties with local computer firms allow the department is able to offer a balance of projects in the areas of software applications, hardware and systems applications, and theoretical computer science.
Most of the department's recent graduates have successfully pursued one of three paths: industrial employment, graduate school, or teaching. Graduates have obtained positions with firms such as Argonne Laboratories, AT&T, Battelle Laboratories, DEC, IBM, Longaberger, Mead, Microsoft, MIT Laboratories, Motorists Insurance, NASA, NCR and TRW. People choosing to continue their studies have entered a number of excellent graduate schools: Bowling Green, Carnegie-Mellon, Clemson, Cornell, Georgia Tech, Indiana, Miami, MIT, North Carolina, Ohio State and Pittsburgh. They have had successful graduate careers and embarked on teaching and research careers. In addition, graduates have often combined their background in computer science with other course work to develop careers with an interdisciplinary flavor. These backgrounds have been used as entry into such fields as accounting, business, economics, music, psychology and religion.
100 Introduction to Computer Science (computer usage, web page development, python programming)
111 Computer Science I (use of the Java language, fundamental ideas in computer science)
120 Computer Applications (in-depth use of various software packages)
211 Computer Science II (an introduction to Software Engineering, using Java and C++)
220 Applied Computer Programming (uses one language: C++, Visual Basic, XML, Perl, etc.)
230 Systems Programming (hardware/software interface, ARM and C programming, Linux/Unix enviroment)
320 Algorithm Analysis (examines practical and theoretical approaches)
335 Computer Security (OS and network security, TCP/IP, crytography for network security, typical network attacks)
340 Programming Languages (examines details and principles of a number of languages)
345 Mobile Application Development (use of 3rd party APIs, platforms of Android and iOS)
355 Software Engineering (software development methodologies, UML diagramming, Human Computer Interaction)
365 Web Applications and Database Management Systems (data-driven web applications and database design and implementation)
400 Programming Projects (a large project, chosen by each student)
430 3D Game Programming (3D rendering, collision, and data structures, basic AI for gamming)
450 Operating Systems (examines theory and practice, using NT and Linux)
480 Computer Networks ( layered network architecture, application and transport protocals, routing and flow, client-server programming)
490 Advanced Topics in Computer Science (artificial web agents, compiler construction, etc.)
495 Computer Science Seminar (provides a weekly discussion of research in computer science)