Computer Science Department
The purpose of the Computer Science department is to provide interested MSMS students with the opportunity to explore, understand, and manipulate computer and related technologies.
We often use tools to aid us in solving problems. The hammer is a hand tool; it amplifies and extends the power of the hand. We can use it to help us solve such problems as building a birdhouse for bluebird or building a Habitat for Humanity home for a member of our community. The computer is also a tool – a mind tool; it amplifies and extends the power of the mind. We can use it to help us solve such diverse problems as regulating the flow of drugs for a patient, generating images of imaginary landscapes, or controlling the flight of jet aircraft. Computer Science is a helping profession; computer programmers help people by constructing software solutions to their problems.
The computer is an especially useful tool because it can be programmed to do many different things. A famous textbook describes Computer Science in its title: Data Structures + Algorithms = Programs. More prosaically, we can think of Computer Science as the study of how to solve problems by representing the problems symbolically in a form (data structure) that the computer can utilize, plus recipes (algorithms) describing the sequence of steps necessary to generate a solution to the problem.
The flowchart in Figure 1 shows the possible sequence of CS coursework while attending MSMS.
To find more information on computer science courses at MSMS, click on links below.
CS Integrating Computer Science concepts with other Sciences
Introduction to Programming
iPhone App Design using Swift
Introduction to Robotics
Introduction to Game Design
Computer Problems/Special Topics
Detailed Description of Computer Science Courses
CS 705 Integrating Computer Science Concepts with Other Sciences
This course is designed to introduce students to the central ideas of computing and computer science, to instill ideas and practices of computational thinking, to show how computing and computer science change the world, and to engage students in the creative aspects of the field. Programming is one of the creative processes that help transform ideas into reality, so instruction and laboratory activities will enable students to acquire proficiency in modern programming languages. Students will explore computer science’s relevance to and impact on the world today, they will investigate the innovations in other fields that computing and computer science have made possible, and they will examine the ethical implications of new computing technologies. Students in these courses will work individually and in teams to solve problems, developing their communication and teamwork skills. Students will learn the basics of programming in the python programming language so that they will be prepared for computational science in any field they wish to pursue.
CS703 - Introduction to Programming (College credit)
This course provides an introduction to the process of problem solving using the computer programming language. Python which is a powerful, modern, but easy to understand programming language is used to provide the student with a solid foundation in both theoretical and practical aspects of programming and problem solving. Laboratory assignments in this course will be challenging to improve students’ abilities to problem solve. The objectives of this course are to introduce the principles and practice of software development using a modern object-oriented programming language, introduce and develop the problem solving skills necessary to construct software solutions to problems, and give the student an understanding of the data structures and control structures available in the target language, and an ability to understand and create common algorithms.
CS 704 – Intermediate Programming (College credit)
This course explores object-oriented problem solving, design, and programming, transitioning the student from Python to C++. It also provides an introduction to common date structures, the design of algorithms, and the analysis of algorithm complexity. Concepts such as error handling and data verification will also be explored.
CS 706 iPhone App Design using Swift
This class introduces students to tips, tools, and techniques for designing mobile applications for Apple iPhones. Topics include Software Engineering Principles, Event Handlers, Condition Statements, and Animation. Students will apply this knowledge to projects that increase in complexity as the course progresses.
CS 716 – Introduction to Robotics
This course is an introduction to the study of Robotics and programming. Students will learn to program robots using the Arduino microcontroller and programming language in order to perform both simple and complex tasks individually and in groups. Students will also learn to use 3D printers to create the bodies, arms, wheels, and any other miscellaneous parts needed. This course will focus on the creative aspects of the Robotics design process while also requiring students to bring their creations to life with programming.
CS 717 - Introduction to Game Design
This course will give students an opportunity to learn what makes a game fun, challenging, and addictive. Students learn how to tell a story, how to create worlds that obey the laws of physics, and how to create animations. Students will work in groups to learn about teamwork, working with someone else’s code, and breaking a project down into subcomponents.
CS 720 – Computer Problems/Special Topics
Computer problems/special topics is an individualized advanced class where students will have the flexibility of choosing their projects or topics of interest. The projects could involve any aspect of modern computing.