© 2003 Trinity College

Faculty

Laurie Johnson, Clare Boothe Luce Assistant Professor of Mathematics (Program Chair)
Bill Steel, Assistant Professor of Information Technology

Return to top


Description

The Computer Science Program offers a major and minor in computer science to students in the College of Arts and Sciences. The field of computer science applies the principles of the scientific method and mathematics to the problems of computer software and hardware engineering. Students explore how to design hardware systems, including memory, circuits, busses, and other components. They also learn about the intricacies of computer programming and coding. In completing the requirements for the major and minor, students develop problem solving skills and critical thinking abilities that derive from a liberal arts education.

During their senior year, students complete an independent project in the field of computer science under the supervision of the program faculty. Students must successfully complete this project to receive their degree. 

Objectives

Students who complete the requirements for a major in computer science will be able to:

  • Write and modify programs in order to accomplish a specific task
  • Develop thorough testing processes for software
  • Write clear and thorough documentation for software
  • Work effectively with end users and other programmers
  • Learn new programming languages quickly and effectively
  • Approach and troubleshoot problems that do not have clear specifications

Return to top


Major Requirements

Required Courses (35 credits)

ALL of the following computer science courses:

CMSC 111 Introduction to Programming
CMSC 211 Intermediate Programming
CMSC 311 Data Structures and Algorithms
CMSC 331 Computer Organization and Architecture
CMSC 333 Computer Networks
CMSC 411 Principles of Programming Languages
CMSC 413 Systems Analysis and Design
CMSC 431 Operating Systems

ALL of the following mathematics courses:

MATH 110 Introduction to Statistics
MATH 125 Calculus and Analytic Geometry I
MATH 341 Discrete Mathematics and Mathematical Modeling

Electives (6 credits)

TWO courses chosen from among:

CMSC 261  Social Implications of Information Systems
CMSC 351 Database Management Systems
CMSC 415 Introduction to Artificial Intelligence
ISYS 342 Introduction to Programming for the Internet

Co-Requisite Course (4 credits)

ONE laboratory science class chosen from:

BIOL 111 General Biology I
BIOL 112 General Biology II
CHEM 111 Fundamentals of Chemistry I
PHYS 111 General Physics I

Students planning to major in computer science should take one of the laboratory science courses listed above as a part of their FLC requirements; other laboratory science courses may be approved by the Program Chair.

Return to top


Minor Requirements

Required Courses ( credits)

ALL of the following courses:

CMSC 111 Introduction to Programming
CMSC 211 Intermediate Programming
CMSC 311 Data Structures and Algorithms
CMSC 331 Computer Organization and Architecture

TWO courses chosen from among:

CMSC 351 Database Management Systems
CMSC 333 Computer Networks
CMSC 413 Systems Analysis and Design
CMSC 431 Operating Systems

Return to top


Program Policies

Advanced Placement: Students should consult the Program Chair.

CLEP Policy: Students should consult the Program Chair.

Cross-listed Courses: Courses that are cross-listed represent identical courses offered with a different program prefix. Students may not enroll in or receive credit for more than one iteration of a cross-listed course even in different semesters.

Grades in Major and Minor Courses: Students are required to earn a grade of "C" (2.0) or better in all courses counted to fulfill requirements for the major or the minor.

Pass/No Pass: No major or minor courses may be taken pass/no pass. 

Senior Assessment: During their senior year, students complete an independent project under the supervision of the program faculty. Students must successfully complete this project to receive their degree. 

TELL Policy: Students should consult the Program Chair.

Transfer Credits: Students wishing to transfer credits must consult the Program Chair.

Return to top


Course Descriptions

CMSC 111 Introduction to Programming
Serves as an entry-level programming course recommended for all students. Objects, arrays, program flow (if-then-else, while, do-while, for, switch), simple graphical user interfaces and applets, problem solving techniques, and elementary algorithms are covered. Effective design, implementation, debugging, and documentation of object-oriented programs are emphasized. Formerly MAT 141 Introduction to Programming.
4 credits
FLC Area IV, Exploration Cluster

CMSC 211 Intermediate Programming
Provides a continuation of the development of object-oriented design and implementation using a current programming language. Inheritance, polymorphism, error-handling, I/O, advanced graphical user interfaces, and data representation are covered. Formerly MAT 241 Intermediate Programming.
3 credits
Prerequisites: CMSC 111

CMSC 261 Social Implications of Information Systems
Develops students' awareness of the social, moral, ethical, and philosophical impact of computers and computer-based systems on current and future society. Topics include the impact of major computer-based applications, human-machine relationships, and the major problems of controlling the use of computers. Formerly MAT 249 Social Implications of Information Systems.
3 credits
Prerequisites: CMSC 111

CMSC 311 Data Structures and Algorithms
Advanced algorithms such as recursion, sorting and searching and data representation such as lists, linked lists, stacks, queues and hash tables are discussed. Programming assignments are in a current programming language. Formerly MAT 385 Data Structures and Algorithms.
3 credits
Prerequisites: CMSC 111

CMSC 331 Computer Organization and Architecture
An introduction to the principles of computer organization and architecture including register and memory organization, representations of numbers and data, digital logic, and Boolean algebra. Also, an introduction to assembly language programming including files, interrupts, and arithmetic and logical operations. Algorithm efficiency analysis is discussed. Formerly MAT 306 Computer Organization and Architecture.
3 credits
Prerequisite: CMSC 111

CMSC 333 Computer Networks
Introduces concepts of computer networks, including systems architecture, system communication and protocols, shared resource management, and memory management. Formerly MAT 343 Computer Networks.
3 credits
Prerequisites: CMSC 311 and CMSC 331

CMSC 351 Database Management Systems
An introduction to the design, organization, implementation and evaluation of database systems. File organization and processing, hierarchical, network and relational models of database structure, database languages and queries are studied. Formerly MAT 307 Database Management Systems.
3 credits
Prerequisites: CMSC 111

CMSC 411 Principles of Programming Languages
Studies the syntax and semantics of computer languages. Topics include language scope of objects and time of binding, definition structure, data types and structures, data abstraction, control structures, run-time considerations, interpretive languages and parsing. Functional, object-oriented, and logic programming languages will be covered. Formerly MAT 441 Principles of Programming Languages.
3 credits
Prerequisites: CMSC 311

CMSC 413 Systems Analysis and Design
Introduces principles of software engineering. Topics studied include requirements analysis, data flow diagrams, software design and implementation techniques, testing strategies, and project management techniques. The course includes team development of a large software project written in a current programming language, utilizing concepts learned in the course. Formerly MAT 445 Systems Analysis and Design.
3 credits
Prerequisites: CMSC 311

CMSC 415 Introduction to Artificial Intelligence
Introduces various concepts and applications in artificial intelligence (AI), the construction of computer programs that act rationally within an environment to solve problems. Topics include knowledge representation, searching, heuristic search, reasoning with uncertainty, and learning. Formerly MAT 447 Introduction to Artificial Intelligence.
3 credits
Prerequisites: CMSC 311

CMSC 431 Operating Systems
Covers significant topics in operating systems, including system structure, process management (scheduling, synchronization, deadlocks), memory management (allocation, scheduling, swapping), file systems, and computer security. Formerly MAT 443 Operating Systems.
3 credits
Prerequisites: CMSC 311 and CMSC 331

CMSC 491 Internship in Computer Science
Allows students to pursue an internship in the field of computer science under the direction of a faculty member and an on-site supervisor.
Credits arranged
Prerequisites: Permission of instructor

CMSC 498 Independent Study
Provides students with the opportunity to purse a an independently designed course of study under the supervision of a faculty member.
Credits arranged
Prerequisites: Permission of instructor

Return to top