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 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. 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 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. 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 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.

330. E-COMMERCE AND ENTERPRISE COMPUTING 3 cr. Prerequisite: 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. 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 (Cross-listed as CS 470) 3 cr. Prerequisites: senior in the Health Care Information Technology track, CS 270, CS 312. Students in the Health Care Information track will be required to 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.

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:  consent of chair and instructor. Designed for the student who wants to undertake a research project supervised by a faculty member.