Paul Kline

Fall 2020

Liberal Arts Computing
CS120
This course is an introduction to fundamentals of computing technology and the principles that make computers work. Students will learn a brief history of Computer Science, the basics of numbers systems and data representation in computers, introductory logic, and the basics of computer programming.
Essentials of Computing
CS210
Provides background in the concepts, tools, and techniques essential to the study of Computer Science. Beginning with a study of the logic behind computer hardware and software, the representation of information in a computer, and ways human interact with technology, students will investigate basic website and mobile app development.
Software and Information Systems
CS220
User-centered software development and professional practice with particular emphasis on the structure and use of information systems. Topics will include the software lifecycle, design and architectural patterns, the relational database model and its implementation, and a study of database design and normalization. Prerequisites: CS 210, CS 211.
Horizons of Computer Science
CS372
A broad overview of the current state of Computer Science. Students will learn concepts fromcomputer and programming language theory and techniques from fields such as ArtificialIntelligence, Parallel Programming, and Graphics and Visualization in preparation for advancedwork both in the field and across other disciplines. Prerequisites: CS 313.

Spring 2020

Liberal Arts Computing
CS120
This course is an introduction to fundamentals of computing technology and the principles that make computers work. Students will learn a brief history of Computer Science, the basics of numbers systems and data representation in computers, introductory logic, and the basics of computer programming.
Computer Science II: Paradigms
CS212
Continuation of CS 211 with emphasis on nonnumerical applications and programming language paradigms. Fundamental data structures. At least two programming languages from different language paradigms will be covered. Prerequisite: CS 211.
Computer Organization and Systems
CS254
Provides an integrated introduction to computer architecture and operating systems. Topics include: data representation, digital logic, introduction to assembly language, memory organization and management, resource allocation and scheduling, concurrency, introduction to system security, performance evaluation and reliability. Prerequisite: CS 210 or consent of instructor.
Practicum in Computer Science
CS385
This course is taken after successful completion of any 300 level area course. Student teams will design, develop and implement a substantial project based on the area courses represented by the individual team members. Course may be repeated for credit. Prerequisites: any designated area course; acceptance of project proposal by instructor. In addition, Cybersecurity students must have completed CS 256 and one upper-division security course. Game design and development students must have completed WR 152 and CS 383.

Fall 2019

Essentials of Computing
CS210
Provides background in the concepts, tools, and techniques essential to the study of Computer Science. Beginning with a study of the logic behind computer hardware and software, the representation of information in a computer, and ways human interact with technology, students will investigate basic website and mobile app development.
Software and Information Systems
CS220
User-centered software development and professional practice with particular emphasis on the structure and use of information systems. Topics will include the software lifecycle, design and architectural patterns, the relational database model and its implementation, and a study of database design and normalization. Prerequisites: CS 210, CS 211.
Horizons of Computer Science
CS372
A broad overview of the current state of Computer Science. Students will learn concepts fromcomputer and programming language theory and techniques from fields such as ArtificialIntelligence, Parallel Programming, and Graphics and Visualization in preparation for advancedwork both in the field and across other disciplines. Prerequisites: CS 313.

Spring 2019

Beginning Programming using Python
CIS142
In this introductory course, students will create computer applications that perform tasks and solve problems. Students will utilize fundamental logic, problem-solving techniques and key programming concepts to design, develop and test modular applications written in the Python programming language. 3 hrs. lecture, 2 hrs. open lab/wk.
Software Engineering I
EECS448
This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components. Prerequisite: EECS 268 and upper-level EECS eligibility.
Programming Language Paradigms
EECS368
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility.

Fall 2018

Programming Language Paradigms
EECS368
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility.

Spring 2018

Programming Language Paradigms
EECS368
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility.

Fall 2017

Programming Language Paradigms
EECS368
The course is a survey of programming languages: their attributes, uses, advantages, and disadvantages. Topics include scopes, parameter passing, storage management, control flow, exception handling, encapsulation and modularization mechanism, reusability through genericity and inheritance, and type systems. In particular, several different languages will be studied which exemplify different language philosophies (e.g., procedural, functional, object-oriented, logic, scripting). Prerequisite: EECS 268 and upper-level EECS eligibility.