Course offerings reflect the 2018-2019 Elmhurst College Catalog. One unit of credit equals four semester hours.
Computer Game and Entertainment Technology Courses
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.
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.
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. Prerequisites: CGE 303 and CS 255.
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.
Features of graphics programs are considered, including two-and three-dimensional 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.
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.
Mathematical properties and applications of tree structures and graph theory are studied along with related algorithms. Fundamental concepts of discrete probability, including the binomial distribution and Bayes’ theorem, are presented and used in the context of introductory analysis of algorithms. Computational linear algebra techniques and matrix operations are expressed algorithmically. Computations and algorithms for all topics in this course are implemented with an interpreted translator system, such as Python, Matlab, Octave or ML. Prerequisite: MTH 301.
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 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 multi-inheritance, 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, divide-and-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 problem-solving 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 web-based 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 push-down 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. 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, unsolvable problems, Chomsky hierarchy and computational complexity. Prerequisite: MTH 301. Upon request.
.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 C# programming language. The student will write programs in Visual C# that demonstrate the features of the C# 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. Note: offered even numbered years only. Prerequisites: MTH 151 or MTH 126, and 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.