Mr. Knautz teaches or has taught the following courses. The courses taught regularly have a link to the syllabus for the course.
This course introduces the student to the basics of computers and shows how problem solving is a central theme in Computer Science. Today, many college and post-secondary students are already familiar with computers, the Internet and the World Wide Web. Thus, in this course we go beyond click-here-click-there: we teach the student to be confident, in-control users of Information Technology (IT). Students are taught to use IT to solve problems on their own and apply the power of IT to their everyday lives.
Topics include: data & program representation, the system unit, the CPU & memory, storage systems, input & output devices, the operating system & utility programs, networking and computer communications, the Internet & the World Wide Web, problem solving techniques, algorithms and basic programming.
Introduces the fundamentals of software development; including software classes, objects, logic, selection control, repetition control, subprograms, parameter passage, and rudimentary software engineering techniques.
This course will introduce the student to the technical side of Web concepts. In today’s fast paced communication-centered world, the World Wide Web is an important source for a plethora of information. Even though there is a wealth of tools for building Web sites, they cannot do it all. You still need to know “what’s under the hood” to be an effective Web master.
Web Concepts I concentrates on client-side concepts and will introduce the student to the basic building blocks of Web sites: manual Web site authoring, building dynamic Web pages, how to use objects, programming events and event driven programming, Markup Languages and the Document Object Model.
To reinforce the concepts, the student will learn technologies that are widely used in the Web community today. We will cover such technologies as the Hypertext Markup Language Version 5 (HTML5), Cascading Style Sheets Version 2 and 3 (CSS) and client-side scripting with JavaScript and jQuery.
This course introduces the student to object-oriented programming. Java is an object-oriented programming language that uses abstraction, encapsulation, inheritance, and polymorphism to provide great flexibility, modularity, and reusability in the software development life cycle. In addition, this course introduces the student to elementary Java GUI programming as well as recursion and generics. Finally, this course introduces the student to data structures and algorithms.
General topics include: class inheritance, polymorphism, exception handling and text I/O, abstract classes and interfaces, GUI basics, drawing shapes, event-driven programming, using GUI, components, recursion, generics, lists, stacks, queues, O(), binary search trees and sorting.
Examines concepts and tools for UNIX including file system organization, directory and file manipulation, text processing, UNIX processes, editors, interacting with other users, interacting with Internet hosts systems.
Investigates Unix shells, shell variables and the environment, scripting languages, input and output, control structures, argument handling, functions, parameter passing and start-up scripts.
This course is the second of two courses that will introduce the student to the technical side of Web concepts. In today’s fast paced communication-centered world, the World Wide Web is an important source for a plethora of information. Even though there is a wealth of tools for building Web sites, they cannot do it all. You still need to know “what’s under the hood” to be an effective Web master.
Web Concepts II concentrates on server-side concepts and will introduce the student to the basic building blocks of Web site functionality: operating systems, Web servers, transport protocols, databases & SQL and server-side programming.
To reinforce the concepts, the student will learn technologies that are widely used in the Web community today. We will cover such technologies Linux, Apache & IIS, HTTP and URL’s, MySQL and PHP.
Examines existing tools, environments and programming languages for developing applications for mobile devices on the Android platform. Explores current research on mobile applications and future trends.
This course explores server-side application programming concepts. Networked applications require data that comes from servers. Communicating with these servers is the major topic of this course. Server-side application programming requires a different skill set and a different style of thinking than client-side device programming. This course discusses server-side programming techniques focusing on RESTful Web Services.
Topics include network and communication protocols, Model/View/Controller design pattern, server-side frameworks, relational databases and database connectivity, dynamic content delivery, communication security, web services.
Focuses on project-based development of a significant web site or a specific web-based problem or project under the supervision of the instructor. Includes project management techniques, client-server communication and content management systems.
This course introduces the student to the basics of Web Security. The field of computer security is, in general, one of the hottest topics in Computer Science. E-Commerce systems are now extremely common. These systems are critical to the operation of many of today’s businesses from Wal-Mart to IBM. As these systems become more and more prevalent, the temptation to abuse these systems becomes greater and greater. This course will focus on the hacker and the security holes exploited by the attacker. The heart of this course is to show and explain the real-world exploits/hacks so that you, as a security minded professional, can spot and eradicate security breaches.