COMPUTER SCIENCE (Major, Minor)
The Computer Science (CS) curriculum for the Holt School reflects the focus and content recommended for computer science curricula at liberal arts institutions by the Association for Computing Machinery (ACM) in Computing Curricula 2001 for Computer Science. The CS major provides students with a strong foundation of computer science coursework emphasizing software development. Completion of this major prepares students to design and implement computer-based solutions in a variety of areas, e.g., knowledge management, e-commerce, or client-server applications.
Admission to the Computer Science Major: Students may not accrue more than 12 semester hours in computer science without declaring computer science as a major or minor. Upon declaring computer science as a major, students must complete all lower-level (i.e., 100- and 200-level) core courses with a grade of “C” or higher. If a student receives a grade in any of these courses lower than a “C,” the student must re-take the course and pass it with a grade of “C” or higher prior to enrolling in any other computer science course. Lower-level core courses may be repeated a maximum of one time to satisfy this requirement. If a student does not receive a grade of “C” or higher on the second attempt, the student will not be permitted to continue in the major. Students will receive credit hours for one attempt only. In most cases, financial aid does not apply to repeated courses. Additional requirements in the computer science major are:
Students must maintain a major GPA of 2.0 or higher at all times.
Students may not enroll in more than two core courses in any given semester.
Students will not be permitted to take any CS course without first having completed or transferred in the appropriate prerequisite(s). If the prerequisites are satisfied with transfer credits, a student may be required to take a proficiency exam (at the program coordinator’s discretion) to prove an adequate level of foundational knowledge and skills to proceed.
All core courses must be completed prior to enrolling in CMS 497.
Requirements for the Major (12)
Core Courses (10)
CMS 150 Introduction to CS Mathematics
CMS 167 Introduction to Computer Programming
CMS 170 Data Structures
CMS 230 Introduction to Computer Systems
CMS 270 Object-Oriented Programming
CMS 201 Applied CS Mathematics
CMS 330 System Software Principles
CMS 351 Database Design
CMS 375 Networking
CMS 497 Senior Project
Elective Courses (2)
CMS 310 Software Engineering and Professional Practices
CMS 340 Developing GUI Applications
CMS 371 Developing Database Applications
INT 381 Computer Law and Ethics
CMS 395 Special Topics
any 300- or 400-level MAT course
Requirements for the Minor (8)
Students must complete CMS 150, 167, 170, and 230 with a “C” or higher prior to being accepted into the Computer Science minor. The CS minor requires completion of all core courses except CMS 375 and 497.
Computer Science Course Flow
The following chart graphically depicts the order that courses are to be taken along with the term/year (assuming starting the program in the Fall term):

Course Descriptions:
CMS 140 Intro to Descrete Math
Provides the foundation essential for sound mathematical reasoning and computer science. Topics include, but are not restricted to, propositional and predicate logic, proof strategies and induction; sets, functions, and recursion; elementary counting techniques. Prerequisite: One semester of math or computer science or equivalent.
CMS 147 Multimedia Programming and Design
Views the World Wide Web as a tool for use in academic life and looks beneath the surface to see how it works. Students learn Fireworks, Dreamweaver, and how to design and construct interesting and effective web sites.
CMS 150 Introduction to Computer Science Mathematics
Develops the essential mathematical foundations for the theory and practice of computer science. No programming required. Topics include, but are not limited to, elementary symbolic logic; set theory; proof strategies, induction and recursion; computer number systems and arithmetic; introduction to formal symbolic systems and grammars; elements of the theory of computing.
CMS 151 Fundamentals of Programming
An introduction to the central themes of computing with the emphasis on creating machines that will solve a problem. This course will focus on problem solving techniques coupled with programming robots. Includes the use of both a graphical software development system and the writing of simple programs using the Java language. No prior programming skills required.
CMS 157 Web Site Construction and Design
Principles of multimedia design for effective presentations and for basic learning/training applications programs such as Flash and Pinnacle Studio. Intensive course in which students produce 2-D animations, web site interfaces and short video projects.
CMS 167 Introduction to Computer Programming
An intensive introduction to fundamental aspects of programming, focusing on problem solving, software design concepts, and their realization as computer programs. Topics include procedural abstraction, control structures, iteration, and data types. A high-level language for the purpose of gaining mastery of these principles will be provided in lectures and in closely coordinated programming assignments. Students will need access to a PC on which to load the software necessary to complete the course assignments. (Administration note: professors to provide minimum system requirements. They are not noted here as requirements may change from year to year.) Prerequisite: HS Algebra or equivalent and moderate computing skills. Concurrent registration in CMS 151 prohibited.
CMS 170 Data Structures
Develops discipline in program design, problem solving, debugging, and testing, with an introduction to data structures. Topics include abstract data types, complexity analysis, and recursion. Basic data structures (queues, stacks, trees, and graphs) and transformations (sorting and searching) are introduced as representative of the fundamental tools that are used to aid in software development. A high level language is used to construct programs of moderate size. Students will need access to a PC on which to load software necessary to complete the course assignments. Prerequisite: CMS 167.
CMS 201 Applications of Computer Science Mathematics
Greatly extends the groundwork layed in CMS 150. Includes a programming component. Systematic treatment of material from discrete mathematics as it relates to computer science. Topics include algebraic structures; combinatorics and probability; graph theory; Boolean algebra; digital logic circuits; functional programming; modern theory of computing; introduction to design and analysis of algorithms. Includes a computing project. Prerequisite: CMS 150.
CMS 230 Introduction to Computer Systems
Introduction to the study of how software controls the critical hardware components of a computer's architecture – the CPU and RAM. Topics include development of C language programs, comparison of high-order procedural languages to machine language programs, CPU organization and functionality at the register/bus level, instruction formats, and development of machine language and assembly level programs using multiple addressing modes, flow-of-control branching and subroutine calls. Prerequisites: CMS 170, and MAT 140 or CMS 150.
CMS 250 Introduction to Computer Organization
An introduction to the principles of computer architecture from the layered point of view with emphasis on assembly language programming. Topics include CPU organization at the register/bus level, development of machine language and assembly level programs including multiple addressing modes, flow-of-control branching and subroutine calls, and comparison of high-order language programs to machine language programs. Prerequisite: CMS 170.
CMS 270 Introduction to Object-Oriented Programming
Moves students into the domain of software design, including principles that are necessary for solving large problems. Here the software design process serves as the basis for treating topics such as specification, object-oriented design and programming, user interface design, generic modules, and file organization. Prerequisite: CMS 170.
CMS 310 Software Development and Professional Practice
Combines a range of topics integral to the design, implementation, and testing of a medium-scale software system with the practical experience of implementing such a project as a member of a programmer team. In addition to topics on software engineering, this course treats also includes material on professionalism and ethical responsibilities in software development and human-computer interaction. Prerequisite: CMS 270.
CMS 340 Developing GUI Applications
Covers program design and implementation of Graphical User Interface (GUI) programs. Topics include program organization, APIs, controls, screen design considerations, and event-driven program design. Students need access to a PC on which to load Microsoft Visual Studio software which is used in the programming projects. Prerequisite: CMS 270.
CMS 351 Database Design
An introduction to the design and management of database systems. Using relational database as a backdrop, this course addresses design issues, structured query language (SQL), data integrity, normalization, transaction processing, and distributed database concepts. Students will need access to a PC on which to load the Microsoft software that will be used in the course. Prerequisite: CMS 170 and MAT 240.
CMS 370 Operating Systems Principles
A study of the structure and function of modern operating systems with emphasis on concurrent processes and resource management. Topics include processing scheduling, synchronization and deadlock, memory management and virtual memory systems, CPU scheduling, I/O techniques, protection and security. Prerequisite: CMS 250.
CMS 371 Developing Database Applications
Applies previous programming methodologies to developing database centric applications in a distributed, multi-user environment. Topics include ODBC methodologies, thin versus thick client considerations, programmatic manipulation of database objects, and security issues in a heterogeneous database environment. Students will need access to a PC on which to load the Microsoft software that will be used in the course. Prerequisite: CMS 340 and 351.
CMS 375 Networking
Introduces the structure, implementation, and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. Topics include network architectures, ISO 7-layer reference model, protocols, client/server computing, and Web technologies. Prerequisite: CMS 370.
CMS 380 Programming Languages and Paradigms
A short history of programming languages and styles precedes the study of an important collection of programming paradigms. This material includes data types, data control, sequence control, run time storage, language translation, and semantics. The paradigms include procedural, functional, logic and object oriented. Prerequisite: CMS 250.
CMS 395 Topics in Computer Science
Provides students with an intensive introduction to specialized areas such as computer simulation, assembler construction, computer architecture, symbolic computation, parallel and distributed processing, computer communication networks, computer security, VLSI system design, and programming tools. CMS 270 and consent.
CMS 495 Special Topics
Provides students with an intensive introduction to a specialized area of computer science. Some possible topics are: user interface design, network programming, modeling and simulation, data mining, and software development tools. Prerequisite: CMS 270 and consent.
CMS 497 Senior Project
Offers students the opportunity to integrate their knowledge of the undergraduate computer science curriculum by implementing a significant system as part of a programming team. Prerequisite: All core courses.
INT 381 Computer Law and Ethics
Examines the ethical and legal aspects of information technology, with an in-depth analysis of the intellectual property protection afforded to computer hardware, software, patent copyright, and trade secrets. Includes an overview of ethical theory, legal principles, and their application to the computer age. Topics include copyrights, patents, trade secrets, trademarks, computer crimes, hacker activities, and censorship.
MAT 140 Discrete Mathematics
Introduces the foundations of discrete mathematics as they apply to computer science, focusing on providing a solid theoretical foundation for further work. Topics include functions, relations, sets, simple proof techniques, Boolean algebra, propositional logic, digital logic, elementary number theory, and the fundamentals of counting. Prerequisite: math preparation sufficient to take calculus at the college level.
Last update: September 11, 2008
|
- - -
Information posted on the Rollins College Hamilton Holt School Web site is intended as general information only. It is subject to change and does not reflect a contract between students and the College. Contact the Hamilton Holt School office to confirm any information.
|
|