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. Introduction to Visual Studio, ASP.Net, Visual Basic. 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.

150. DATABASE SYSTEMS (DATA 150) 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, 128; prerequisite/corequisite: CS/DATA 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, and AJAX.

228. OBJECT-ORIENTED DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 128. 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. Note: A grade of C or higher in CS 228 is required to register for any course that has CS 228 as a prerequisite.

242.  MODELS OF  COMPUTATION 3 cr. Prerequisite: CS 228, MT 142. 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.

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 each of which focuses 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 (DATA 307) 3 cr. Prerequisite: CS 128 or DATA 200. 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 include gene sequence assembly, sequence alignment, phylogenetic tree inference, gene expression, and protein interaction networks.

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.

322. BIG DATA ANALYTICS (DATA 322) 3 cr. Prerequisite: CS/DATA 150 and either CS 228 or DATA 200. What is “Big Data?” Data mining algorithms, machine learning algorithms. Emphasis on real analyses 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; Data Structures/Collection API’s. Introduction to algorithms and analysis of algorithms. Graphical User Interface APIs.

340. DATA VISUALIZATION (DATA 340) 3 cr. Prerequisite: CS 228 or DATA 200. Introduction to basic data visualization techniques. Discussion of different techniques to view data, and analysis of classic data representations. Students will use advanced tools for generating and exploring, static and dynamic visual representation of very large datasets.

350. ADVANCED DATABASE SYSTEMS (DATA 350) 3 cr. Prerequisite: CS/DATA 150 and either CS 228 or DATA 200. Alternative data models and advanced database techniques, Big data support, Web-DBMS integration technology, data-warehousing and data-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. Investigation 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; threading/synchronization as well as socket programming; client/server model.

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; also, the use of modules and recompiling the Linux kernel to alter the Linux operating system.

470. SOFTWARE ENGINEERING PROJECT 3 cr. Prerequisites: senior CS 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 use their skills, ingenuity, and research abilities to address various 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 Technology major, CS 270, CS 312. Students will develop a large software project related to Healthcare IT using the same methodologies and techniques as 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 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 Technology major, 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.

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

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

478. HEALTHCARE TECHNICAL INTERNSHIP 3 cr.  Prerequisite: senior standing in the Healthcare Technology major, CS 470HC, and permission of department chair. Highly individualized, culminating experience for students in this major. Focuses on an information technology-related challenge that has been designed and approved by the MT/CS faculty and a healthcare professional.

479. HEALTHCARE MENTORING INTERNSHIP 3 cr. Prerequisite: CS 478. This course is by invitation only. A student who excels in a CS 478 internship is provided the opportunity by the sponsoring organization to accept a second internship in the senior year. The student will serve as a mentor to the 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, and research on 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.