| |
Computer Science (CS)
Professors: D. W. Palmer, M. Kirschenbaum; Associate Professors: F. J. Fuglister, D. A. Norris (Chair), D. L. Stenson; Assistant Professor: 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 (page 253.)
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. Computer science 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.
What makes a computer information systems degree unique from other computing degrees is that it integrates an understanding of technology with a strong business foundation. The computer information systems curriculum at John Carroll University includes a sequence of business courses to complement the technical skills that students obtain while solving real-world application problems. The business foundation enables computer information systems students to evaluate the potential financial and social impact of different technologies.
Major and Minor Requirements |
Major in Computer Science: 52 hours. CS 128, 128L, 228, 230, 301, 328, 330, 351, 428, 469, 470; MT 118 or MT 135 (or another MT course with permission of department); two CS courses chosen from the following list: 333, 401, 444; 4 additional CS courses at or above the 300 level.
A comprehensive examination is required.
Major in Computer Information Systems: 52 hours. CS 128, 128L, 228, 230, 328, 330, 351, 431, 469, 470, 475; MT 118 or MT 135 (or another MT course with permission of department); two CS courses chosen from the following list: 365, 430, 477; 4 additional CS or BI courses at or above the 300 level, at least two of which must be selected from the following list: BI 326, BI 371, BI 382, BI 383.
A comprehensive examination is required.
Minor in Computer Science: 22 hours. CS 128, 128L, 228, 301, 328; two additional courses chosen from 300 and 400-level CS courses; one of the following: MT 118, 134, 135.
Minor in Computer Information Systems: 22 hours. CS 128, 128L, 228, 230, 351; two additional courses chosen from 300 and 400-level CS courses; one of the following: MT 118, 134, 135. |
101. TOPICS FROM COMPUTER SCIENCE 3 cr. Computer familiarization course surveying the academic discipline of computer science. Topics include elementary programming, spreadsheets, databases, and graphics packages. Emphasis is on understanding what computers and computer professionals do rather than on learning programming.
128. INTRODUCTION TO SOFTWARE APPLICATION DEVELOPMENT 3 cr. Corequisite: CS 128L. Overview of software development for a variety of application domains: business, internet, and scientific. Introduction to software development covering topics such as graphical user interface, web, spreadsheet, and database applications. Overview of the software life cycle: design, implementation, testing, and evolution of software applications.
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.
202. INTRODUCTION TO COMPUTER SCIENCE II 3 cr. Prerequisite: CS 201 (no longer offered). Continuation of CS 201. More advanced concepts in object-oriented programming and design and their application to data structures and algorithm analysis. Topics include O-O concepts of polymorphism, overloading, overriding, and genericity, as well as linked lists, stacks, queues, trees, recursion, and algorithm comparison using order notation.
228. OBJECT-ORIENTED DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 128. Corequisite: MT 118 or MT 134 or MT 135. Project-based course that demonstrates software engineering benefits of object-oriented languages: modularity, adaptability, and extensibility. Object-oriented programming concepts: objects, classes, methods, constructors, message passing, interfaces, inheritance, polymorphism. Graphical User Interface APIs. Standard Data Structures/Collections APIs.
230. WEB DESIGN AND PROGRAMMING 3 cr. Prerequisite: CS 128. Principles of web page design; HTML, DHTML, XHTML; cascading styles sheets; XML technologies: XSL, XPath, XQuery, DTDs, XML schemas; Document Object Model. Introduction to client-side and server-side programming: Javascript, AJAX, Database Programming.
280. HOT TOPICS IN COMPUTER SCIENCE 1 cr. Discussion of computer-science issues by faculty and students; ideologies, trends, emerging technologies, and cutting-edge concepts in computing. Invited speakers from academia and industry will present their perspectives on new technologies. Faculty and students select articles for discussion. Students may take Hot Topics courses for credit a maximum of four times.
301. ALTERNATIVE PROGRAMMING 3 cr. Prerequisite: CS 228. Exploration of many of the concepts that predated object-oriented programming, including embedded programming, microprogramming, real-time/performance computing, and low-level computing. Specifically the course will focus on when these concepts should be used instead of the mainstream object-oriented approach.
309. WEB DESIGN AND PROGRAMMING I 3 cr. Prerequisite: CS 202. Principles of web page design; HTML, DHTML, XHTML, and XML; cascading style sheets; introduction to client-side and server-side programming; Javascript and Perl; integrating Java applets; Java-based XML processing.
310. WEB DESIGN AND PROGRAMMING II 3 cr. Prerequisite: CS 309. Advanced web programming and scripting methods, including Active Server Pages, Python, PHP. Topics selected from web server administration, web agents, security, e-commerce, and others.
320. GUI PROGRAMMING 3 cr. Prerequisite: CS 202 (or 201 and department chair permission). GUI (graphical user interface) allows users to interface with a computational environment using a point-and-click mechanism and minimal typing in the PC windowing systems. GUI is suitable for an application that includes buttons and menus. Fundamentals of writing Windows applications, event-driven programming, and the GUI. Includes dialogues, menus, controls, scope, and lifetime of variables, data types, objects and instances, MDI, fonts and graphics, the Clipboard, and simple file I/O.
328. DISTRIBUTED APPLICATION DEVELOPMENT 3 cr. Prerequisite: CS 228. Advance object-oriented programming: exceptions, threads, synchronization, serialization; Client/Server model and APIs; Internet APIs: Java.net, Google; networking protocols; practical network administration concepts and practices.
330. E-COMMERCE AND ENTERPRISE COMPUTING 3 cr. Prerequisite: CS 230, 328. Advanced web programming and design; J2EE architecture: servlets, server pages, database connectivity, XML processing, Enterprise Beans; Enterprise Computing; E-Commerce frameworks and architectures.
333. ROBOTICS 3 cr. Prerequisite: CS 228. Construction 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 cooperation, coordination, and redundancy. Conceptual and practical aspects of robotics.
351. DATABASE SYSTEMS 3 cr. Prerequisite: CS 228. Relational databases: structure, operations, SQL, QBE; database design: entity-relationship models, normal forms; properties of storage devices; query processing and optimization; transaction management.
365. GAMING AND GRAPHICS 3 cr. Prerequisite: CS 328. Exploration of computing techniques that create color, animated imagery of objects and realistic and imaginative representations of the world that can be used in photography, motion pictures, and video games.
367. PARTICIPATORY DIGITAL MEDIA 3 cr. Prerequisite: CS 230. Introduction to a variety of “web 2.0” technologies, including blogs, RSS, podcasting, wikis, social bookmarking tools, photo sharing tools, e-communities, mapping tools, audio and video podcasts, and screencasts. The course will examine existing web-based phenomena such as MySpace, FaceBook, SecondLife, and YouTube, and consider the implications for society, journalism, and the economy.
380. SPECIAL TOPICS IN PROGRAMMING 1-3 cr. Prerequisite: dependent on topic. Investigations of emerging programming technologies and paradigms.
401. SOFTWARE SECURITY 3 cr. Prerequisite: CS 301. Study of typical ways in which software fails to be secure and methods and technologies used to develop secure software. Possible topics include anti-virus, spyware removal, firewall, internet security, pop-up blocker, spam blocker, backup, internet filtering, and encryption software.
428. NETWORK PROGRAMMING WITH LINUX 3 cr. Prerequisite: CS 328. Project-driven course that will study aspects of the Linux operating system and computer network related to a semester project. Topics may include management of computer resources such as memory management and file system structure and protection; network topology, including routing algorithms; and the use of analytical tools for network analysis and design. Successful projects will create tools to be used in other computer science courses.
430. .NET COMPUTING 3 cr. Prerequisites: CS 228, 230. Introduction to the .NET Framework, including Visual J#.NET or Visual C++.NET and Visual Basic.NET; Visual Studio.NET and its lifecycle tools; ASP.NET applications. Configure and deploy an application built on the .NET Framework; interoperate with existing applications and build applications for mobile devices.
431. MULTIMEDIA PROGRAMMING 3 cr. Prerequisites: CS 228, 230. Principles of interactive multimedia design; introduction to multimedia documents and authoring via Dreamweaver, Macromedia, and Flash; introduction to integrated hybrid applications using Flash and HTML, digital media, compression, and synchronization.
444. ADAPTIVE AND OPEN SOFTWARE SYSTEMS 3 cr. Prerequisites: CS 328, 351. Design and implementation of adaptive software frameworks; component-based models; open-source architectures and methodologies; tool extensions and plug-ins; meta-level programming and reflection; aspect-oriented programming; language annotation processors.
469. SOFTWARE ENGINEERING TOOLS AND TECHNIQUES 3 cr. Prerequisites: CS 330, 351. Skills, tools, and techniques necessary for successful software engineering projects in a hands-on, project-oriented context. Students will work on several separate development efforts during the semester; each will focus on a different set of tools and techniques. Topics include system design, UML diagrams, unit testing, continuous integration, refactoring, performance and optimization, acceptance testing, and code maintenance.
470. SOFTWARE ENGINEERING PROJECT 3 cr. Prerequisite: CS 469. Simulation of the environment of the professional software developer working in a team on a large software project for a real client. Development teams will make widespread use of the tools and techniques learned in CS 469. 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. Use of the Extreme Programming development methodology.
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.
477. DESIGN PATTERNS 3 cr. Prerequisite: CS 228. Object-oriented design skills and techniques. 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 to patterns, and using the patterns together to build larger, more maintainable programs.
478. FORMAL LANGUAGES (MT 478) 3 cr. Prerequisite: MT 341 or 342. Finite and push-down automata and Turing machines. Regular languages, context-free grammars, recursive and recursively enumerable languages. Other topics chosen from Church’s thesis, Gödel numbering, decidability, and recursive functions.
480. SPECIAL TOPICS cr. TBA. Reading, reports on, and investigation of selected material and topics. |