Teaching


Chad A. Williams

Assistant Professor

Department Computer Science

Central Connecticut State University

Office: MS 30309

Phone: (860) 832-2719  

Email:  cwilliams at ccsu.edu



CV 
Teaching
    To succeed in my courses you must participate.  What does class participation mean?
   Current:
      Spring 2012:
CS 110 Intro to Internet Programming
3 Hours.  Examination of physical infrastructure of local and wide area networks, internet protocol implementation, world-wide web interface programming, interactive Java applet, and Visual Basic web programming. 

CS 492 Computer Security
3 Hours. An introduction to computer security for computer scientists. Topics include classical and modern techniques of conventional encryption; algorithms; public-key encryption, and hash functions; network security, with regard to e-mail, IP, and the Web; and system security intruders, viruses, worms, and firewalls. The fundamentals of network security issues are also explored.

CS 495 Legal, Social, Ethical, and Economic Issues in Computing
3 Hours.  An introduction to social, ethical issues and their benefits and risks in a complex technological society.  Topics will include understanding social, legal, philosophical, political, constitutional and economical aspects related to computers. 

   Past courses:
   Central Connecticut State University:
       Fall 2011:
CS 110 Intro to Internet Programming
3 Hours.  Examination of physical infrastructure of local and wide area networks, internet protocol implementation, world-wide web interface programming, interactive Java applet, and Visual Basic web programming. 

CS 113 Intro to Computers
3 Hours.  Introduction to computer programming together with the consideration of the impact of computers on society. Emphasis on logical problem-solving and algorithms.  This course is an introduction to the basic principles of computer programming. It focuses on developing problems solving skills through writing programs in Visual Basic 2010. Students learn to develop graphical user interfaces (GUIs) and use basic programming language structures to develop algorithms for solving various kinds of problems.

CS 407 Web Programming
3 Hours.  This class will focus on using client and server side programming to achieve advanced web interaction as seen in business web sites.  The Enterprise Java application framework will be used to develop dynamic web sites using open source tools.

    Bemidji State University:
Spring 2011:
CS 1309 Problem Solving and Computer Science
4 Hours. Introduction to general problem-solving techniques applicable to solving problems in computing. Techniques include using systematic lists, using diagrams, and looking for patterns. Includes fundamental computer science concepts in information representation, computer organization, process application, and social and ethical issues in computing. The one-hour lab introduces the use of software to solve a variety of problems. The prospective student should have a general understanding of computers and their operation. 

CS 3360 Object Oriented Software Development
3 hours.  A study techniques used in object-oriented software development. Key components of these techniques include design patterns, abstraction, encapsulation, modularity, message passing, polymorphism, inheritance, and incremental software development. This course includes developing UML designs based on the Rational Unified Process (RUP).  Implementing all patterns discussed in class in Java to give students a deep understanding of advanced OO concepts in one of the most widely used programming languages in business today is also covered.  Other topics include applets, javadoc, and automated testing.

CS 4362 Software Engineering II
3 Hours.  Software Engineering (SE) I and II provide a year long experience that integrates the theory and practice of SE.  The purpose of this capstone course is to provide a realistic project environment for students to demonstrate their cumulative CS experience.  These classes examine how software is developed in the real-world from inception to production.  For SE II, students will run the software project that was started in SE I.  The class focuses on project planning, tracking, and execution.  This includes working with the client to: refine requirements; prioritize deliverables; interactively achieve acceptance; and deliver the final product.

Fall 2010:
CS 1309 Problem Solving and Computer Science
4 Hours. Introduction to general problem-solving techniques applicable to solving problems in computing. Techniques include using systematic lists, using diagrams, and looking for patterns. Includes fundamental computer science concepts in information representation, computer organization, process application, and social and ethical issues in computing. The one-hour lab introduces the use of software to solve a variety of problems. The prospective student should have a general understanding of computers and their operation. 

CS 2260 Linux Systems Programming
Introduction to systems programming tools, including shell, awk, and perl programming. These tools are helpful in developing software in a Linux environment, doing system administration, and developing websites. No prior Linux experience assumed. 

CS 4361 Software Engineering I
3 Hours. Software Engineering (SE) I and II provide students a capstone experience that integrates the theory and practice of SE. SE I investigates a variety of SE models and guidelines used in industry. In the first part of a year-long project, students complete the requirements and specifications phases and reviews of SE and begin the formal design phase. Includes a two-hour lab. 
                
    University of Illinois at Chicago:
CS 440 Introduction to Software Engineering (Summer 2006)
3 Hours. Software life-cycle model, requirement specification techniques, large-scale software design techniques and tools, implementation issues, testing and debugging techniques, software maintenance.