125. INTRODUCTION TO WEB DESIGN AND IMAGE PROCESSING 3 cr. Principles of website design and creation. Introduction to HTML, cascading style sheets, templates, image processing, and animation. Students will create their own websites.

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 a single semester.

144. SOFTWARE ANIMATION AND MODELING. 3 cr. Fundamentals of computer programming using Scratch programming language. Fundamentals of applied logic and algorithmic thinking. Designing and implementing mathematical models of scientific and social phenomena.

150. DATABASE SYSTEMS 3 cr. Introduction to relational database design and implementation. Topics include database systems concepts and architectures, structure query language (SQL) entity relationship (ER) modeling, relational database design, functional dependencies and normalization.

225. ADVANCED WEB DESIGN 3 cr. Prerequisites: CS 125, CS 128; prerequisite or Corequisite: CS 150. Design and development of distributed internet applications and dynamically generated web sites. 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 CS128 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.  MODELS OF  COMPUTATION 3 cr. Prerequisite: CS 228.  Fundamental concepts in autamata theory and formal languages, including finite automaton, regular expression, pushdown automaton, context free grammar, and Turing machine. Applications of automata in current programming languages. Introduction to algorithm analysis and asymptotic notation.

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.

307. BIOINFORMATICS 3 cr. Prerequisite: CS 128. The Application of computational methods and principles to solve data-intensive and pattern-discovery problems in biology, especially molecular and systems biology, without prior knowledge of college-level biology. Topics may gene sequence assembly, sequence alignment, phylogenetic tree inference, gene expression, and protein interaction networks.

312. HEALTH CARE INFORMATION TECHNOLOGY 3 cr.   Prerequisite: CS 270. Explores development, tools and technology specific to health care information. Examples include: the HL7 information protocol, electronic medical records, HIPAA issues and practices for developers, DICOM 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.

CS 322. BIG DATA ANALYTICS 3 cr. Prerequisite:  CS 242. What is “Big Data”? Data mining algorithms, machine learning algorithms. Emphasis on real analyses that are being performed every day by businesses, governments, and online social networks.

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.

333. ROBOTICS 3 cr. Prerequisite: 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. Prerequsite/Co-requisite 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.  Co-requisite 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,  CS 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. Topics include  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 Health Care Information Technology track, CS 270, CS 312. Students will develop a large software project related to Health Care IT using the same methodologies and techniques as described in 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 example pieces; write, edit, and revise their own and critique other students’ work.

475HC. TECHNICAL WRITING IN HEALTH CARE IT (Cross-listed as CS 475) 3 cr. Prerequisites: students in the Health Care Information Technology track, CS 228.  Apply the written communication skills described in CS 475 to health care IT topics.  In addition, HIPAA training and medical terminology will be covered and used in writing requirements.

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., and others, including 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: seniors 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.

479. HEALTHCARE MENTORING INTERNSHIP 3 cr. Prerequisite: CS 478. This course is by invitation only. When a student excels in a CS 478 internship, we provide the opportunity for the sponsoring organization to offer the student a second internship in the senior year. The student will serve as a mentor to other students in CS 478 at the same institution, sharing insight and experience from his or her previous internship.

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

*** Fall 2015 Topic of CS 480. Exploring and Analyzing Biomedical Data 3 cr.  No prerequisites; however some knowledge of programming and database is suggested.  Introduction to computer/mathematical and life sciences students to the concept of Biomedical Data, with a particular focus on learning how to apply basic computational methods for analyzing clinical, genetic, and imaging data. We will
explore a range of exploratory and data mining techniques (prediction, classification) using R, open-source statistics language, RStudio, and Solr, an open-source search engine. Practical hands-on exercises and assignments will
teach how to use/design computing tool, apply creative methods to interpret health data, and convey findings to health professionals in ways that make practical contributions to healthcare. Introductory database course and introductory programming course are recommended.

Skill Set: exploratory data analysis, effective visual presentation, basic computational and data mining methodology.
Tools: R, the open source statistics software, and Solar, the open source search engine.

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