Course offerings reflect the 2017-2018 Elmhurst College Catalog. One unit of credit equals four semester hours.
Computer Game and Entertainment Technology Courses
This course introduces the student to techniques for solving a variety of mathematical problems that arise in the development of computer games, animation, simulation, computer graphics and related areas. Topics covered in the course include 2-D and 3-D Cartesian and Polar coordinate systems, vectors and scalars, implementation of trigonometric functions in rendering 2-D and 3-D images, representing the motion of an object subject to external forces, implementing collision detection, constructing 2-D and 3-D rotational, scaling and translational matrix-based transformations and camera positioning in the virtual world. Also covered are techniques for implementing world-space to viewport and screen space transformations, rendering curves using linear, cubic and B splines, and rendering curved surfaces using Bezier and spline techniques. Lastly, additional topics include random number generators and application of random numbers in a variety of CGE topics, techniques for rendering objects in Euclidean and fractal geometry, ray tracing techniques using vectors and planes and others. Prerequisite: MTH 132.
This course provides a general understanding of using the computer as a tool to solve the types of mathematical problems that arise in the development of computer game and entertainment projects. The student writes computer programs that solve problems in a series of evaluations of various mathematical functions, differential and integral calculus, probability and statistics, 2-D and 3-D vector systems, matrix application in computer graphics, animation, simulation and other related topics. Techniques that apply Monte Carlo concepts are also discussed, and the student learns how to apply these to solving a number of important CGE problems. Prerequisites: MTH 151, CS 220.
Emphasis is placed on 3-D graphics and various “toolkits” used to create this type of graphics such as Direct-X. Rendering of solid objects, life forms, fractal scenes and objects, terrains, 3-D modeling, lighting and shadowing, texturing and other topics are discussed. Prerequisite: CS 220.
This course introduces the student to principles applied to animate computer-generated objects on a computer screen. Both 2-D and 3-D animation techniques are discussed, together with topics including the physics of animated systems, systems of particles, inverse kinematics, framing, interpolation and hierarchies. Also considered is the application of animation to the simulation and modeling of physical systems. Prerequisite: CS 220.
This course considers the use and application of electronic media forms such as video, music and sound in an interactive digital system that is graphically based. By merging these forms together, the student creates a “virtual” world that mimics real-world experiences. The course also covers basic concepts of human/computer interaction. Prerequisite: CS 220.
In this course, students apply concepts learned in previous classes, such as animation and simulation techniques, three-dimensional graphics, and the incorporation of media components such as video, music and sound in a highly interactive game. Students also learn to develop story lines, scripting techniques, aspects of game theory, and how to infuse their games with simulated cognition and artificial intelligence. Prerequisite: CS 303.
This course applies the topics of computer animation, computer modeling and simulation, artificial intelligence, and computer graphics to the design of computer-generated film. Using appropriate software packages such as those from Macromedia, the student learns how to develop a script and then apply it to create scenes that go into the design of a computer-generated film.
Using the principles of game design, graphics, animation and simulation, and other skills learned in previous courses, the student applies these in the design of web-based entertainment systems. This includes developing multiplayer games played over the Internet, multimedia performances that “play” on a client’s computer, interactive web-based systems and other related topics. Prerequisites: CGE 350, CGE 355.
This is the capstone course for the student majoring in computer game and entertainment technology. The student in this course applies all of the concepts and skills learned in previous CGE courses to produce a significant project. This activity will preferably be performed at a company as part of a project development for that company. Prerequisite: CGE major with senior standing or consent of the instructor.
This course gives Honors Program students the opportunity to design and implement a significant research project in the field of computer game and entertainment technology, culminating in an appropriate public dissemination of research methods and findings. This research must build upon previous coursework taken within the major or minor, facilitating faculty supervision and guidance. Repeatable for credit. Permission of the faculty supervisor and the director of the Honors Program required prior to registration.
Computer Science Courses
This course covers basic concepts in computer science and digital technology. These include, but are not limited to, computer systems, communication devices, digital media in audio and video, and various forms of “hand-held” devices. The use of spreadsheets, databases, word processing, presentation software and electronic communication is also covered.
Core topics include Linux shell commands, shell scripts and related file systems. Several related topics such as file permission, process handling, sysadmin tools and the access of Linux resources via application programs. Prerequisite: CS 220 or one course covering a high-level programming language.
This course introduces students to algorithms, object-oriented programming and related computer science topics. Primitive and user-defined data types, fundamental control structures, and the use of an integrated development environment of a programming language are studied through programming assignments. Debugging and testing techniques are introduced. An introduction to several computer science concepts, including an introduction to machine representations of data, computer system and processor architectures and related operation, file systems and operating systems. This course is for CS, CGE and IS majors, but is recommended for students in any major who seek to enhance their skill set with knowledge of a programming language.
Introduction to object-oriented programming and data structures. Emphasis on string processing, recursive procedures, sorting and searching and debugging techniques. Introduction to data structures, including stacks, queues, trees, linked lists, strings, and algorithmic design and analysis. Prerequisite: CS 220.
Discusses game programming, use of audio and animation techniques, 2-D and 3-D graphics techniques, and design and game architecture. Rule playing and interaction in games are also covered. Prerequisite: CS 220.
An in-depth study of computer hardware, from the logic gate level up through registers, and CPU devices. Students examine primary and secondary memory and input/output, interrupts and multiprocessor systems. The course also covers programming hardware using an assembler language is also studied, and assembler features such as interrupts, internal and external subroutines, conditional assembly, real-time programming and the macro language. Prerequisite: CS 220.
Object-oriented concepts are studied, including object as class instantiation, class design techniques and taxonomies, design patterns, single- and multiinheritance, abstract classes, interfaces, contract programming and exceptions. C++ syntax, semantics and object-oriented design implementations are studied. C++ concepts and implementation of object-oriented design concepts include constructors, destructors, copy constructors, and assignment operators, operator/function overloading, scoping rules, static vs. dynamic bindings, templates, functors and exception handling. Libraries, such as STL, are studied and utilized within projects. Integrated development environment tools for debugging, documenting, testing and configuring software systems are introduced. C++ implementation techniques for implementing concepts such as event-driven, GUI, and multi-threads; library and related frameworks for these concepts are also introduced. Prerequisite: CS 255.
Algorithm design and asymptotic analysis of algorithms using sequential and parallel computational models are central to this course. Object-oriented programming language implementation of algorithms and related data structures are studied; data types and class representations studied include strings, stacks, queues, priority queues, lists, sets, multi-sets, maps, multi-maps, hash-tables and graphs. Algorithm design techniques include greedy, divideand-conquer, backtracking, dynamic programming and approximation. Mathematical models and techniques representing the best, worst and average case analysis of covered algorithms. Computational P, NP and NP-complete problem classes are introduced. Prerequisites: CS 255, CS 318 and MTH 301 or concurrent enrollment.
This course introduces the theory of computer network and various types of networks, including local area, wide area and global networks. Theory topics include network architecture, data transmission techniques, network topologies, network media and network security. Students learn programming projects that utilize various widely used system platforms and communication protocol apply concepts. Prerequisite: CS 220.
An introduction to fundamentals of artificial intelligence, including problemsolving techniques, search strategies and heuristics, planning, machine learning and knowledge representation. First order logic, normal forms, unification and resolution principles are introduced with applications to problem solving, theorem proving, logic and database theory. Prerequisite: CS 255.
Java syntax and semantics and implementation pragmatics for expressing object-oriented design patterns. Java implementation strategies for webbased applications using event-driven programming, concurrent threads, file I/O and database applications are studied. Documentation and debugging tools are introduced through various Integrated Development environments. Prerequisite: CS 318 or CS 320 or consent of the instructor.
Concepts include tasks and process representations, process coordination and synchronization, concurrent constructs in programming languages, process and job scheduling, performance and monitoring mathematical tools, virtual and physical memory management schemes, file management organization, device management, issues in real-time and distributed operating systems, security issues, and communications and networks. Prerequisites: CS 310 and CS 360. It is highly recommended, although not required, that the student also take CS 205 before taking CS 420.
A comparative study of programming languages from perspectives of the designer, implementer and user is central to this course. Regular grammars, regular expressions, finite state automata, context free grammars, and pushdown automata are studied in the context of building programming language translators. Imperative, object-oriented, functional and logic language classes are studied. Concepts covered include data and control abstractions, strong and weak typing, static and dynamic scoping, parameter passing and concurrency. Formal specifications and implementation strategies of the concepts are studied. Prerequisites: CS 310 and MTH 301.
This course covers ways to create dynamic web applications using both server side and client side programming. In this course students will learn web application basics, ASP.NET application fundamentals, validation, basic forms authentication for web-based security, databinding from a datasource, creating and consuming web services, session state configuration and application data caching. In addition, students will also learn how to embed maps into their web pages using the Google Maps API and the ArcGIS API. Prerequisites: CS 220 or ISG 100.
A presentation of formal models of computation via turing machines, random access machines and partial recursive functions. Other topics are Godel’s numbering, Church’s thesis, unsolvability, context free grammars and computational complexity. Prerequisite: MTH 301. Upon request.
Features of graphics programs are considered, including two- and threedimensional coordinate systems, transformations, perspectives, hidden-line algorithms and polygon filling (graphics), and boundary recognition, template matching, surface and edge enhancement (image processing). Prerequisites: CS 220 and MTH 132.
.50 or 1.00 credit
Students earn credit for computer-related activities performed at participating company or corporation sites. Normally, only full-time day students are eligible for this course. Prerequisite: consent of the department chair.
An introduction to the concepts of design, development and maintenance of large-scale software systems. Chief programmer teams, the software life cycle and underlying related topics are covered, including requirement analysis, implementation techniques, validation, verification, maintenance, documentation, user interfaces, reliability, software development tools and programming environments. Various cost-estimation models are also introduced. Prerequisite: CS major with senior standing or consent of the instructor.
.50 or 1.00 credit
This course gives Honors Program students the opportunity to design and implement a significant research project in the field of computer science, culminating in an appropriate public dissemination of research methods and findings. This research must build upon previous coursework taken within the major or minor, facilitating faculty supervision and guidance. Repeatable for credit. Permission of the faculty supervisor and the director of the Honors Program required prior to registration.
Information Systems Courses
This course introduces Visual BASIC programming language. The student will write programs in Visual BASIC that demonstrate the features of the BASIC language including control structures, input/output operations and use of library functions such as those that are used to implement graphical user interfaces and to access databases. This course is recommended not only for IS and CS majors, but also for students majoring in business, the natural sciences, mathematics and other disciplines in which programming a personal computer is required. Prerequisite: CS 220.
This online course is designed to provide students with an in-depth understanding of one programming language that is in demand in the marketplace. Languages chosen vary by semester and include both legacy programming languages that are still in high demand and evolving programming languages that are beginning to see industry demand. This course may be repeated for credit with instructor or academic advisor approval. Prerequisites: Two programming language courses, which may or may not cover different languages. (Any two equivalent courses from the following set: CS 220, CS 255, IS 224, CS 440, IT 232 or IT 422.)
Decision making and problem solving utilizing the various quantitative models commonly used to improve and enhance business intelligence within an organization. Such models to include inventory theory, exponential smoothing, artificial neural networks, waiting line models and stochastic processes. Practical applications of artificial intelligence and a discussion of data mining techniques are included. Prerequisites: MTH 162, MTH 345.
Topics include defining data requirements and modeling those requirements using Entity Relationship Diagrams, creating physical databases using Microsoft SQL Server, and SQL coding for simple queries, complex queries, stored procedures and triggers. Additional topics include data quality, data warehouses, data security and distributed databases. Prerequisite: CS 220.
A study of the phases of analysis, design and implementation of information systems. Topics include fact-gathering techniques, design of output, input, files, presentation techniques, system processing, project management, system testing and documentation. A structured approach to system design and development is emphasized. Prerequisite: a course covering a high-level programming language.
Fundamentals of information systems in organizations, with a focus on the impact of information systems on organizational behavior, communications and managerial style. The use, misuse and management of computer-based systems and their integration with organizational goals are emphasized. Information systems in the functional areas of marketing, production and finance are studied. The case study method is used. Prerequisite: CS 220 or IT 228.
This course gives Honors Program students the opportunity to design and implement a significant research project in the field of information systems, culminating in an appropriate public dissemination of research methods and findings. This research must build upon previous coursework taken within the major or minor, facilitating faculty supervision and guidance. Repeatable for credit. Permission of the faculty supervisor and the director of the Honors Program required prior to registration.