An introduction to the foundational principles of computer architecture, including the design and organization of processors, memory hierarchies, input/output systems and multiple CPU systems. Learn the core components that make up modern computer systems, including the CPU, GPU, memory, buses, and storage. Learn how to optimize performance, analyze trade-offs, and appreciate the historical and societal context of computing.
This course is an introduction to the basics of hacking in an ethical manner to protect others. The fundamentals of system defense including logins, server configurations, and permissions are covered. Standard software used to prevent unauthorized system access will be used. Students will participate in simple labs and “capture the flag” contests (CTF) to gain a hands-on understanding of the fundamentals.
This course covers techniques for collecting, storing, analyzing, and visualizing big data, with a focus on scalable machine learning applications. Students will explore MapReduce using Hadoop, Pig for scripting, and Apache Spark for distributed data processing, machine learning, and streaming analysis. The course also compares relational SQL and NoSQL databases, while delving into natural language processing and machine learning challenges like clustering, regression, and classification.
An overview of machine learning techniques using R. Topics include an introduction to programming in R, the use of nearest neighbor and naive Bayes algorithms, support vector machines, hidden Markov models, and market basket analysis as well as model evaluation and improvement.
Seminar series with weekly presentations of topics of current interest in computer science and related fields. Speakers include practicing computer scientists and researchers from industry or other academic institutions, Elizabethtown faculty, and invited campus-wide speakers from a variety of disciplines.
Principles and theories behind the design of operating systems and their practical implementation, including executives and monitors, task handlers, scheduling algorithms, file handlers, device drivers and interrupt handlers, theories of resource allocation and sharing, multiprocessing and interprocess communication.