400
Video game design is an inherently interdisciplinary and technically challenging activity that requires proficiency in a broad range of topics and skills in the computer science curriculum. Video game developers must be excellent programmers, have a firm grasp of how to render and animate shapes and scenes, understand mathematical modeling of physical systems, be able to design and implement artificial intelligence systems, understand enough about hardware to optimize code for a variety of platforms, be able to plan and document complicated team projects, and appreciate the human factors issues involved in game design. And, of course, game developers must be creative and have an eye and ear for what makes for impactful game content. This course will cover each of these issues in an applied manner as the class builds basic but professional-looking video games from scratch. Students will work both individually and in teams and will be expected to document their work.
3
Prerequisites
CPSC 24500
This course will expand on CPSC 41000. Students will learn how to write 2D games for a variety of platforms and 3D games for PCs and popular consoles. They will use APIs and modeling tools for developing games in 3D and games for portable and other non-PC platforms. In addition, they will simulate physical systems and intelligent thought processes using vector math, mechanics and artificial intelligence. Work will be done in teams.
3
Prerequisites
CPSC 41000
Programming for mobile devices requires knowledge of in a wide range of computer science topics including human-computer interaction, memory management, processing power, and communications technologies. This course explores video game development focusing on issues specific to mobile devices. Topics that will be addressed include user interfacing, hardware devices, telephony, GPS systems, notifications, and application frameworks for mobile devices. Students will develop using both simulators and actual mobile devices. Work will be done individually and in teams.
3
Prerequisites
CPSC 24500
Fundamentals of computer and network security and information assurance. Topics include access control, authentication, trusted computing, software security and vulnerabilities, operating system security models, how various kinds of malware function, network security devices and architecture, computer hacking techniques and countermeasures, intrusion detection, cryptography, wireless security, and network security protocols.
3
Prerequisites
CPSC 20000
This second course in computer security explores techniques for performing encryption and authentication of data, operating system and application security, malware operation and analysis, code-level exploits, reverse engineering, security design principles, techniques for reducing complexity, and formal security models.
3
Prerequisites
CPSC 42000
An introduction to some of the most popular and useful tools cyber security professionals use to ensure the security of computers, networks, and mobile devices. Examples from several different categories of security applications are discussed and practiced: password crackers, traffic sniffers, vulnerability scanners, web scanners, wireless security scanners, exploitation, packet crafters, fuzzers, and computer and mobile forensics. Students will learn how to use these tools and, just as importantly, how they work from a Computer Science perspective, so that they can improve them and code their own.
3
Prerequisites
CPSC 20000
This is a one-semester course focusing on cryptography and network security. Three areas of emphasis include: symmetric key encryption, public key encryption, and network security practices. The mathematical concepts underlying encryption algorithms will also be presented.
3
Prerequisites
CPSC 20000
The best way to defeat a hacker is to code like one. That means being able to build, extend, and manipulate scripts and applications that compromise systems. This course presents a number of techniques for exploiting vulnerabilities in a variety of computer systems. Students will build port scanners, construct botnets, write exploits, create their own forensic analysis and network traffic analysis tools, develop web reconnaissance applications, implement scripts for examining and exploiting a wireless network, and craft malware that evade antivirus tools.
3
Prerequisites
CPSC 21000
While many tools exist for examining digital systems, the frenetic pace at which the cyber threat evolves means that hackers are constantly discovering new ways to hide their tracks. Digital forensics specialists who lack a programmer's understanding of how data are stored and hidden and how tools are written to examine these systems will forever be limited to using the tools others create. This course prepares digital forensics experts who can write their own digital forensics tools.
3
Prerequisites
CPSC 21000
This course provides an overview of display devices and applications, point-plotting techniques, two-dimensional transformations, clipping and windowing, lighting, and three-dimensional techniques. Students are also introduced to interactive computer graphics, animation and graphics applications. Students explore these concepts using C++ and the OpenGL programming interface.
3
Prerequisites
CPSC 21000
Methods, strategies, and tools for implementing software systems, particularly as part of a development team. Topics include the software development life cycle, Unified Modeling Language, software testing techniques, software security, open-source development, requirements gathering and documentation, maintenance, and basic software project management.
3
Prerequisites
CPSC 24500
This course provides a study of the structures of selected programming languages related to ALGOL 60 and LISP. Emphasis is placed on semantics rather than syntax of the programming languages. Backus-Naur Form, recursion, parameter transmitting techniques, and an introduction to formal language theory is covered. Functional programming is also discussed. A term project is required.
3
Prerequisites
CPSC 24500
Introduction to the field of artificial intelligence. This course covers the study of intelligent agent design and rational decision making. Topics include: goal-driven agents, search techniques, optimization, constraint satisfaction problems, logic, knowledge-based agents, probability and utility theory, Bayesian networks, and the basics of machine learning.
3
Prerequisites
CPSC 21000 and MATH 31000
This course studies programs that use experience for improving their performance at solving a variety of tasks such as classification, regression, or clustering. Topics include supervised and unsupervised learning, reinforcement learning, parametric and non-parametric methods, ensemble learning and introduction to computational learning theory. Students will learn how to evaluate the performance of machine learning methods and how to utilize the techniques in various applications.
3
Prerequisites
CPSC 21000 and MATH 31000
An introduction to the concepts, techniques, and systems of data warehousing and data mining, including (1) design and implementation of data warehouse and on-line analytical processing (OLAP) systems, and (2) data mining concepts, methods, systems, implementations, and applications.
3
Prerequisites
CPSC 21000 and MATH 31000
This course reviews computer networking protocols, including TCP/IP, and then builds upon that to describe how modern networks use such protocols to implement client-server systems. The course discusses servers, the services they provide, and the clients that request and utilize those services. Students learn to identify the range of services provided by modern networks, the fundamentals of configuring those services, and how to implement a variety of clients that access those services.
3
Prerequisites
CPSC 21000
This project-based course engages students in designing heterogeneous networks of clients, services, and cloud-based resources. Students work in teams to complete network design projects in which they provide a variety of clients' access to a variety of local and remote services.
3
Prerequisites
CPSC 28100 or CPSC 48000
Students a analyze formal language theory and finite state automaton, finite automaton-based lexical analysis, Wirth-Weber relations and simple precedence grammar, recursive descent parsing, symbol table organization, semantic routine and semantic models, and code generation techniques.
3
Prerequisites
CPSC 46000
In this course students will participate, as part of a team, in the design, implementation and testing of a medium-to-large software project. Additionally, this course will cover topics in professional ethics, intellectual properties, privacy, and professional communication.
3
Prerequisites
CPSC 44000
In this course students will participate, as part of a team, in the design, implementation and testing of a medium-to-large networked computer system. Additionally, this course will cover topics in professional ethics, intellectual properties, privacy and professional communication.
3
Prerequisites
CPSC 28100, CPSC 42000, or CPSC 48000
This series of 40000-level seminars focuses on various topics related to computer science; these seminars are usually offered on weekends.
1-3
Prerequisites
See Semester Course Schedule. Consent of instructor and/or chairperson may be required.
This course allows senior computer science students to engage in a scholarly research project in the field of computer science. Under the close guidance of their faculty advisor, students will select a research problem in a particular computer science area. They will survey the current literature in the chosen area and formulate a specific research question. Students will then attempt to address the research question using techniques from Computer Science, document their work, and present the results and conclusions. Students will write a well-researched final paper and give a presentation of their project and findings.
3
Prerequisites
CPSC 34000
Students acquire practical related experience through placement in selected settings. Students submit an internship proposal in advance for approval, maintain a daily task log and submit a five-page written summary report at the conclusion of the internship. A minimum of 210 clock hours and an interview with the on-site supervisor are required.
1 - 3
Prerequisites
Junior or Senior status in the Computer Science major, GPA of 3.00 or higher, and approval of the department chairperson.
This course is designed to meet the needs of Computer Science majors wishing to study an advanced topic not found in the curriculum.
1-3
Prerequisites
Consent of the department chairperson. To qualify for an Independent Study, a student must have successfully completed 60 credit hours, at least 12 of which were earned at Lewis, and have earned at Lewis University a minimum 3.0 cumulative GPA.