Behavioral & Natural Sciences: Computing Course Descriptions

Undergraduate 2020-2021

INF 120 Principles of Programming I (3)
Prerequisite(s): Grade of "C" or better in MTH 185 /Equiv or placement
Gain an understanding of the basic concepts and considerations of structured and object-oriented programming methodologies and be able to apply these concepts appropriately to solve a variety of typical problems, programming in an event-driven graphical development environment including creating classes and objects.

INF 221 Principles of Programming II (3)
Prerequisite(s): INF 120 or equivalent
Develop programming techniques emphasizing reliability, maintainability, and reusability. This course includes an introduction to objects, classes, and object-oriented design, incorporating encapsulation, inheritance, polymorphism, and abstraction. Additional topics include systems development lifecycle (SDLC), multi-dimensional arrays, exception handling, addresses, pointers, and dynamic storage allocation.

INF 230 Database Design & Development (3)
Prerequisite(s): INF 120 or equivalent
This course provides an introduction to fundamental database concepts including current relational database modeling, file management, data definition, and standards. Learn to develop structured query language (SQL) statements to develop, retrieve, manipulate, and maintain data. Use complex and compound criteria from multiple tables to develop appropriate reports and perform data analysis. Also explore some contemporary non-relational databases.

INF 250 Web Fundamentals & Standards (3)
This course is designed to provide students with the fundamentals of current and proposed standards for HTML, XHTML and CSS. This course also explores web technologies, examining future directions that present opportunities for multimedia developers, examines various multimedia formats (images, audio, video, sound and animation), web standards and accessibility.

INF 255 Client-Side Scripting (3)
Prerequisite(s): INF 221 and INF 250
Introduction to the Document Object Model (DOM), fundamentals of Internet application design, development, and deployment using client-side scripting language(s) and the use of external libraries such as JQuery. Further examination of various multimedia formats (images, audio, video, sound and animation).

INF 256 Server-Side Scripting (3)
Prerequisite(s): INF 221 and INF 250
This course covers the configuration of web server software and the use of server-side programming. Topics include: Server-side scripting in languages such as PHP and Java Server Pages, SQL, database access and drivers, security issues, including access control and secured transmissions.

INF 270 Intro to Mobile Application Development (3)
Prerequisite(s): INF 221 or equivalent
In this course, students will be introduced to the foundations of mobile development and its unique requirements and constraints. Students will create a variety of mobile applications. Requirements and design decisions tied to mobile application development and how they relate to limited resources available on mobile devices are emphasized.

INF 324 Data Structures (3)
Prerequisite(s): INF 221
In-depth study of the abstract data type: its theory and implementation, study of complex data structures including trees, B-trees and graphs.

INF 325 Networks (3)
Prerequisite(s): INF 221
Introduction to networking and technologies for wireless protocols and multimedia messaging services.

INF 328 Object-Oriented Analysis and Design (3)
Prerequisite(s): INF 221
This course covers techniques of abstraction and object design, design patterns, and object modeling and how to apply these concepts to web and mobile applications.

INF 331 Applied Database (3)
Prerequisite(s): INF 230
This course builds on the Database Design & Development course and focuses on the creation, administration and use of databases utilizing a multi-tier application design methodology. This course assumes knowledge of database system concepts. The student will be introduced to application program development in a database environment with emphasis on setting up, modifying, and querying a database. Students will also do extensive project work writing and utilizing database stored procedures and triggers.

INF 355 Advanced Client-Side Scripting (3)
Prerequisite(s): INF 255
This course covers the more advanced Object-Oriented features of a client-side scripting language as well as AJAX with XML and JSON. Open source libraries such as jQuery, JQuery Mobile, and Prototype are covered with an emphasis on developing plugins for these libraries.

INF 356 Advanced Server-Side Scripting (3)
Prerequisite(s): INF 256
Advanced topics for scripting in a server-side programming language. Topics covered will include object-oriented web application frameworks , Model/View/Controller (MVC) design pattern, Content Management Systems (CMS), web services, XML Schemas, SOAP (Simple Object Access Model), WSDL (Web Services Description Language), authentication, authorization, session management, PDF generation and email communication.

INF 370 Algorithms (3)
Prerequisite(s): INF 324
Introduction to useful algorithms for searching, sorting and decision making; utilization of methods to quantify and classify efficiency of algorithms; probabilistic and randomized algorithms and dynamic programming. Course covers advanced algorithms on graphs, divide-and-conquer and dynamic programming, greedy methods, backtracking, branch-and-bound, computational complexity and parallel algorithms.

INF 377 Introduction to Automata (3)
Prerequisite(s): INF 221
Course presents a study of formal languages. Topics include: language classes, formal definitions of grammars and acceptors, deterministic/nondeterministic systems, finite state machines, push down automata and normal forms.

INF 378 Machine Learning and Data Mining (3)
Prerequisite(s): INF 221, INF 230, MTH 320
The course will focus on various data mining and machine learning techniques and their applications. Students will manage real data and implement applications for machine learning and data mining using Python and related libraries.

INF 380 Operating Systems (3)
Prerequisite(s): INF 324
Course offers an introduction to the theory and practice behind modern computer operating systems. Topics will include: computer and operating system structures, process and thread management, process synchronization and communication, memory management, virtual memory, file system, I/O subsystem and device management.

INF 391 Topics in Computing (3)
Prerequisite(s): INF 120 or equivalent and 2 other INF courses
Variable topic course with emphasis is on current trends in technology. Course may be taken up to four times (total of 12 credit hours).

INF 396 Co-Op:Parallel(PT) (0-3) EXP
Prerequisite(s): CED 220
A related work experience supervised by a faculty coordinator in collaboration with the cooperative education. Credit is awarded upon successful completion of the work experience, documentation and evaluation.

INF 400 Senior Research (1)
Prerequisite(s): Senior status or permission of instructor
Students work independently mentored by a faculty advisor on a project that demonstrates and integrates knowledge attained through previous coursework.

INF 496 Co-Op:Parallel(FT) (0-3) EXP
Prerequisite(s): CED 220
A related work experience supervised by a faculty coordinator in collaboration with the cooperative education. Credit is awarded upon successful completion of the work experience, documentation and evaluation.

NLP 105 Introduction to Linguistics for Computer Scientists (3)
In this class, we will explore common questions that linguistics answers such as: Where did English come from? Why do people have accents? If a baby hears two languages, will the baby be confused? The course will explore language structure (syntax), language in culture and use (pragmatics), word parts (morphology), and the sounds of human speech (phonetics and phonology). Expect to dive into fun projects, like teaching people to speak English, creating your own language, and finding out where you favorite words came from and why. This course provides necessary conceptual background for students interested in corpus linguistics and natural language processing and is a prerequisite to Introduction to Language and Computers.

NLP 106 Introduction to Secondary Research Methods (3)
Have you ever heard on the news "scientists have discovered" ...says who, where? Or what about a medical procedure or a drug...how do we know what kind of research has been done...is it safe? If you have ever wondered about these type of questions, this course is for you. We will learn how to find and interpret academic and scientific articles in order to find answers to real world questions. We will learn to think critically about things that may impact the value of the research, such as sample selection and researcher bias. We will also work together to write an article with the view of submitting it to a journal or conference for publication. Natural language processing and computational linguistics requires a deep understanding of the real-world problems at hand and whether the computer derived solutions indeed work as intended in the messy contexts of workplaces and society-at-large. This course will prepare students to be critical consumers of information about the problems they are trying to solve and is a prerequisite to Introduction to Primary Research Methods.

NLP 125 Introduction to Language and Computers (3)
Prerequisite(s): NLP 105
If you've ever wondered how your phone knows what you're going to type or how Google knows what you're trying to buy, this course will answer your questions. Using examples from technology and media we use every day, this course will overview basic concepts related to corpus linguistics (using a big collection of language to understand how language works) and natural language processing (understanding what language is trying to say and often using that information to make real time decisions). Working together, we will engage in hands-on activities and projects using corpus linguistics and natural language processing tools. We will also contemplate what all the advancements in technology mean to our daily work (are robots going to take over?) and privacy (who or what is listening to us and how and why?).

NLP 126 Introduction to Primary Research Methods (3)
Prerequisite(s): NLP 106
The first step to solving a problem, in computer science and other concentration areas, is narrowing the problem down and developing a plan of attack. Suppose we have a formal business or computer problem - and we determine that no one else has ever answered our exact question - how would we go about finding the answer? In this course you will learn how to develop and refine your own research question and conduct a mini-study using proper research theory and methods to look for answers. You will have the opportunity to explore pathways towards publishing or presenting your research.

NLP 126H HON: Introduction to Primary Research Methods (0)
Concurrent requisite(s): NLP 126
Course description as stated in NLP 126 (Honors Course)