Professors: P. L. Shick (Chair), D. W. Palmer, M. Kirschenbaum; Associate Professors: D. L. Stenson, L. M. Seiter

Major Programs

The Department of Mathematics and Computer Science offers two major programs in computing: a Bachelor of Science in computer science and a Bachelor of Science in computer information systems. Both majors have a common set of core courses for the first two years of study, preparing students with a strong foundation in software programming and application development. The two majors diverge for the upper-level courses, with computer science majors acquiring a strong understanding of how and why technology works, while computer information systems majors focus on learning how to apply technology to solve complex business problems. The department also offers mathematics (MT) programs that are described in a separate section.

Technology is becoming an increasingly integral part of everyday life. It influences the music we enjoy, the medical advances we rely upon, the way we communicate, and how we do business. An understanding of technology is a vital skill set for an educated person in this century. Technology drives innovation in all of the sciences and business, as almost every significant challenge facing the world turns to computing as an aid to a solution.

The major in computer science leading to the Bachelor of Science degree prepares students for a career in technology, as well as graduate study in computer science. Computer science careers span the spectrum of possibilities: from working for national companies with large, well-established technology departments to founding entrepreneurial start-up companies at the frontier of future technology to filling critical support roles in virtually all possible fields, including medicine, business, manufacturing, consulting, government, law, and research.

The major in computer information systems leading to the Bachelor of Science degree enables students to understand, manage, and apply technology within the realistic constraints of an ever-changing marketplace. Graduates of the program play a critical role in the future of business, the economy, and social interactions by designing new forms of communication and online business communities.

Major and Minor Requirements

Major in Computer Science:46 hours. CS 125, 128, 128L, 150, 225, 228, 242, 270, 328, 470; MT 118 or MT 122 or MT 135 or MT 167 (or another MT course with permission of department); two CS courses chosen from the following list: CS 333, 360, 428, 464, 477; three additional CS courses at or above the 300 level.A comprehensive examination is required. Major in Computer Information Systems: 46 hours. CS 125, 128, 128L, 150, 225, 228, 242, 270, 345, 350, 470, 475; MT 118 or MT 122 or MT 135 or MT 167 (or another MT course with permission of department); three additional CS courses at or above the 300 level.

A comprehensive examination is required.

Minor in Computer Science: 22 hours. CS 125, 128, 128L, 150, 225, 228; one additional CS course at or above the 200 level; one of the following: MT 118 or MT 122 or MT 135 or MT 167 (or another MT course with permission of department).

Track in Healthcare Information Technology: Open only to CS or CIS majors. CS majors must take CS 312, 475HC, and 476 as their upper-level electives. CIS majors must take CS 312 and 476 as two of their upper-level electives and substitute CS 475HC for CS 475. Both majors must substitute CS 470HC for CS 470 and, if qualified, take CS 478 (the healthcare information technology internship.) Students not meeting the minimum requirements for the internship must take an additional 3 credits to be arranged with the chair.

101. TOPICS FROM COMPUTER SCIENCE 3 cr. Survey of the academic discipline of computer science. Topics include elementary programming, social computing tools, and the use of computer technology in all aspects of life. Emphasis is on understanding what computers and computer professionals do rather than on learning programming.

125. INTRODUCTION TO WEB DESIGN AND IMAGE PROCESSING 3 cr. Principles of website design and creation. Software applications such as Dreamweaver, Fireworks, and Flash are used to introduce students to HTML, cascading style sheets, templates, image processing, and animation. Students will use these tools to create their own website.

128. INTRODUCTION TO SOFTWARE APPLICATION DEVELOPMENT 3 cr. Corequisite: CS 128L. Fundamentals of computing with an emphasis on mobile technology. Utilize a visual programming environment to design, build, and test mobile apps. Introduction to application development, inquiry-based simulation, rapid prototyping, incremental problem solving and graphical user interface programming.

128L. INTRODUCTION TO SOFTWARE APPLICATION DEVELOPMENT LABORATORY 1 cr. Corequisite: CS 128. Programming laboratory intended to provide hands-on experience in applying the programming concepts learned in CS 128. Experience in learning the process of program development, with emphasis on techniques for testing and debugging. CS 128 and 128L must be taken together in the same semester.

150. DATABASE SYSTEMS 3 cr. Data modeling, database design, data definition and manipulation language (SQL), entity-relationship model, normal form. Relational database system software. Emerging topics such as XML and web data management.

225. ADVANCED WEB DESIGN 3 cr. Prerequisites: CS 125, CS 128, CS 150. Design and development of distributed internet applications and dynamically generated websites. Integration of web and database technology. Exploration of popular web frameworks and APIs such as .NET, Google API’s, AJAX.

228. OBJECT-ORIENTED DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 128. Prerequisite/corequisite: MT 118 or MT 122 or MT 135 or MT 167. Continuation of CS 128 emphasizing the benefits of object-oriented languages: modularity, adaptability, and extensibility. Object-oriented programming concepts include: objects, classes, methods, constructors, message passing, interfaces, inheritance, polymorphism.

242. COMPUTATIONAL MODELING 3 cr. Prerequisite: CS 228. Models for representing different aspects of software, including its structure, execution, and evolution. Topics include algorithm analysis and visualization, software models and simulation, UML diagrams, introduction to formal languages and automata, graph algorithms, software testing and coverage, number representation.

270. SOFTWARE DEVELOPMENT PRACTICES 3 cr. Prerequisite: CS 228. Prerequisite/corequisite: CS 242. Skills, tools, and techniques necessary for successful software engineering projects in a hands-on, project-oriented context. Students will work on development efforts that each focus on a different set of tools and techniques. Topics include system design, UML diagrams, unit testing, system testing, continuous integration, refactoring, performance and optimization, acceptance testing, and code maintenance.

299. INDEPENDENT STUDY IN COMPUTER SCIENCE 1-4 cr. Prerequisite: permission of chair and faculty member. Independent study under the supervision of a faculty member.

312. HEALTHCARE INFORMATION TECHNOLOGY 3 cr. Prerequisite: CS 270. Explores development, tools, and technology specific to healthcare information. Examples include: the HL7 information protocol, electronic medical records, HIPAA issues and practices for developers. DICOMM standard for storage and manipulation of medical images, database storage, archiving and network requirements and protocols, security, data access, data maintenance, and backup practices and related software development issues.

328. ADVANCED PROGRAMMING 3 cr. Prerequisite/corequisite: CS 242. Advanced object-oriented programming: exceptions, threads, synchronization, serialization; Data Structures/Collection API’s. Introduction to algorithms and analysis of algorithms. Graphical User Interface APIs.

330. E-COMMERCE AND ENTERPRISE COMPUTING 3 cr. Prerequisites: CS 228. Advanced web programming and design, web application frameworks such as Ruby On Rails, J2EE architecture. Enterprise Object Models; Web 2.0 technologies, Ajax, Portals, E-Commerce frameworks and architectures.

333. ROBOTICS 3 cr. Prerequisites: CS 228. Foundations of robotics concepts and implications. Hands-on construction programming of robots to perform specific tasks. Primary focus will be on managing the real-world inexactness that robots must contend with. Multi-robot systems including simulation, cooperation, coordination, and redundancy. Conceptual and practical aspects of robotics.

345. SOCIAL COMPUTING 3 cr. Prerequisites: CS 225, 242. Introduction to a variety of Internet-enabled information technologies and concepts involving the interactions of large numbers of people. These include social networking sites, blogs, RSS, podcasting, wikis, social bookmarking tools, photo sharing tools, e-communities, mapping tools, participating in and programming of virtual worlds, and grid/cloud computing. The course will examine emergence and knowledge as facilitated by our now-interconnected global community. Exploration of popular frameworks and APIs for managing social graphs and supporting community collaboration.

350. ADVANCED DATABASE SYSTEMS 3 cr. Prerequisite: CS 225. Prerequisite/corequisite: CS 242. Alternative data models and advanced database techniques. Object-oriented data models, Web-DBMS integration technology, data-warehousing and date-mining techniques, database security and optimization, other advanced topics.

360. GAME DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 270. Exploration of game engine(s) and computer techniques that create both animated imagery of objects and interactive agent behavior, including artificial intelligence concepts. Graphical and game design followed by implementation via a large-team development of a class-designed game.

380. SPECIAL TOPICS IN PROGRAMMING 1-3 cr. Prerequisite: dependent on topic. Investigations of emerging programming technologies and paradigms.

399. INDEPENDENT STUDY IN COMPUTER SCIENCE 1-4 cr. Prerequisite: permission of chair and faculty member. Designed for the student who wants to undertake a research project supervised by a faculty member.

428. NETWORK PROGRAMMING 3 cr. Prerequisite: CS 228. Prerequisite/corequisite: CS 242. Study of various network protocols such as TCP/IP. Topics may include network topology; routing algorithms; network addressing; Ethernet with collision detection; the use of analytical tools for network analysis and design; client/server model; threading/synchronization as well as socket programming.

445. MOBILE TECHNOLOGY 3 cr. Prerequisites: CS 225, 242. Mobile frameworks and tools, Text-to-Speech techniques, multimodal user interfaces, intents and services, storing and retrieving data, synchronization and replication of mobile data, mobile agents and communications.

464. OPERATING SYSTEMS 3 cr. Prerequisite: CS 242. Memory management, scheduling, mutual exclusion and semaphores, deadlock, scripting using Linux. Other topics include the use of modules and recompiling the Linux kernel to alter the Linux operating system.

470. SOFTWARE ENGINEERING PROJECT 3 cr. Prerequisites: senior CS or CIS major, CS 270. Simulation of the environment of the professional software developer working in a team on a large software project for a real client or for an open source community. Development teams will make widespread use of previously learned tools and techniques. Student developers will encounter a wide variety of issues that naturally occur in a project of scale, using their skills, ingenuity, and research abilities to address all issues and deliver a working, useful system. Traditional or Agile development methodologies.

470HC. SOFTWARE ENGINEERING HEALTHCARE PROJECT 3 cr. Prerequisites: senior standing in the Healthcare Information Technology track, CS 270, CS 312. Students in the Healthcare Information track will be required to develop a large software project related to Healthcare IT using the same methodologies and techniques as described in CS 470. (Cross-listed as CS 470.)

475. TECHNICAL WRITING IN COMPUTER SCIENCE 3 cr. Prerequisite: CS 228. Written communication related to computer science emphasizing clear, concise expression of technical information. Exploration of several types of CS writing, including users’ guides, help pages, tutorials, mainstream articles, and technical papers. Students read and analyze sample pieces; write, edit, and revise their own and critique other students’ work.

475HC TECHNICAL WRITING IN HEALTHCARE IT 3 cr. Prerequisites: participation in the Healthcare Information Technology track, CS 228. Application of the written communication skills described in CS 475 to healthcare IT topics. In addition, HIPAA training and medical terminology will be covered and used in writing requirements. (Cross-listed as CS 475.)

476. SYSTEMS TECHNOLOGY AND PRACTICES SEMINAR 3 cr. Prerequisite: CS 270. Features a weekly guest speaker from the information technology profession, including the healthcare information technology field. The instructor will provide foundational material prior to each talk and analyze it with the class afterwards. Individual, self-designed projects based on a speaker’s topic developed.

477. DESIGN PATTERNS 3 cr. Prerequisite: CS 242. Object-oriented design skills and techniques. Surveys all 23 of the “canonical” design patterns catalogued by Gamma et al., as well as the creational, structural, and behavior classes of patterns. Variations of these patterns, how and where to apply the patterns, and using the patterns together to build larger, more maintainable programs.

478. HEALTHCARE TECHNICAL INTERNSHIP 3 cr. Prerequisite: senior standing in the Health Care Information Technology track, CS 470HC, and permission of department chair. Highly individualized, culminating experience for students in the Healthcare Information Systems track. Focuses on an information technology-related challenge that has been designed and approved by John Carroll Mathematics and Computer Science faculty and healthcare professional in the field.

480. SPECIAL TOPICS cr. TBA. Reading, reports on, and investigation of selected material and topics.

499. INDEPENDENT STUDY IN COMPUTER SCIENCE 1-4 cr. Prerequisite: permission of chair and instructor. Designed for the student who wants to undertake a research project supervised by a faculty member.