Teaching

Chad A. Williams

Associate Professor, Department Chair

Department Computer Science

Central Connecticut State University

Office: MS 30309

Phone: (860) 832-2719  

Email:  cwilliams at ccsu.edu

About Me

CV 

Teaching

    To succeed in my courses you must participate.  What does class participation mean?

 Central Connecticut State University 

Fall 2019:

CS 410 Software Engineering

3 Hours.  An examination of the software development process from the initial requirement analysis to the operation and maintenance of the final system. The scope of the course includes the organization of software development projects, the verification and validation of systems, the problems of security and privacy, and the legal aspects of software development, including software protection and software liability.

CS 417 Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice.      

CS 493 Secure Software Systems

3 Hours.  Study of the approaches, mechanisms, and tools used to make software systems more secure.  We will motivate the study by discussing common software security threats.  The majority of the course will be divided into four main modules: architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing); software analysis (e.g., static analysis and testing, model checking); language-based approaches to building secure software (e.g., type systems, proof-carrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis).

CS 505 Design Patterns

3 Hours.  An in-depth study of designing and implementing complex systems using proven architectural patterns for structuring, creating, and manipulating object orientated systems.  Students will learn how to apply and implement a broad array of proven design patterns, when they should be used, and how to implement them in practice.    

CS 510 Fundamentals of Software Engineering

3 Hours.  An examination of the software development process from the initial requirement analysis to the operation and maintenance of the final system. The scope of the course includes the organization of software development projects, the verification and validation of systems, the problems of security and privacy, and the legal aspects of software development, including software protection and software liability. 

Spring 2019:

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.  

Fall 2018:

CS 416 Web Programming

3 Hours.  An examination of client and server side programming to achieve advanced data-driven web applications. The course will examine key concepts of both the client and server side processing of a data-driven web applications, as well as, other topics including web architecture patterns, and security considerations. The course will focus on the foundations of these topics in terms of their relevance in making theoretical design choices as well as how they can be implemented in practice.

CS 417 Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice.      

CS 493 Secure Software Systems

3 Hours.  Study of the approaches, mechanisms, and tools used to make software systems more secure.  We will motivate the study by discussing common software security threats.  The majority of the course will be divided into four main modules: architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing); software analysis (e.g., static analysis and testing, model checking); language-based approaches to building secure software (e.g., type systems, proof-carrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis).

CS 505 Design Patterns

3 Hours.  An in-depth study of designing and implementing complex systems using proven architectural patterns for structuring, creating, and manipulating object orientated systems.  Students will learn how to apply and implement a broad array of proven design patterns, when they should be used, and how to implement them in practice.    

    Spring 2018:

CS 490 Computer Communications Networks & Distributed Processing

3 Hours.  Study of networks of interacting computers. The problems, rationale, and possible solution for both distributed processing and distributed data bases will be examined. 

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 506 Software Testing and Quality Assurance

3 Hours.  An examination of the processes, principles, and techniques of software testing and analysis.  Topics include test life cycle planning, test design and coverage analysis, complexity, and levels and types of testing. Students will become acquainted with both the strengths and limitations of various functional and structural testing methods, as well as techniques for proving the functional correctness.

     Fall 2017:

CS 416 Web Programming

3 Hours.  An examination of client and server side programming to achieve advanced data-driven web applications. The course will examine key concepts of both the client and server side processing of a data-driven web applications, as well as, other topics including web architecture patterns, and security considerations. The course will focus on the foundations of these topics in terms of their relevance in making theoretical design choices as well as how they can be implemented in practice.

CS 417 Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice.      

CS 493 Secure Software Systems

3 Hours.  Study of the approaches, mechanisms, and tools used to make software systems more secure.  We will motivate the study by discussing common software security threats.  The majority of the course will be divided into four main modules: architectural approaches to building secure software (e.g., confinement, virtual machines, trusted computing); software analysis (e.g., static analysis and testing, model checking); language-based approaches to building secure software (e.g., type systems, proof-carrying code); and run-time enforcement of security policies (e.g., dynamic taint analysis).

CS 505 Design Patterns

3 Hours.  An in-depth study of designing and implementing complex systems using proven architectural patterns for structuring, creating, and manipulating object orientated systems.  Students will learn how to apply and implement a broad array of proven design patterns, when they should be used, and how to implement them in practice.     

    Spring 2017:

CS 490 Computer Communications Networks & Distributed Processing

3 Hours.  Study of networks of interacting computers. The problems, rationale, and possible solution for both distributed processing and distributed data bases will be examined. 

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.

     Fall 2016:

CS 416 Web Programming

3 Hours.  An examination of client and server side programming to achieve advanced data-driven web applications. The course will examine key concepts of both the client and server side processing of a data-driven web applications, as well as, other topics including web architecture patterns, and security considerations. The course will focus on the foundations of these topics in terms of their relevance in making theoretical design choices as well as how they can be implemented in practice.

CS 417 Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice. 

CS 110 Intro to Internet Programming

3 Hours.  Examination of history of world wide web, physical infrastructure, and internet protocols.  Techniques will be taught for developing web pages and creating interactive content using Javascript.

     Spring 2016:

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 490 Computer Communications Networks & Distributed Processing

3 Hours.  Study of networks of interacting computers. The problems, rationale, and possible solution for both distributed processing and distributed data bases will be examined. 

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.

     Fall 2015:

CS 416 Web Programming

3 Hours.  An examination of client and server side programming to achieve advanced data-driven web applications. The course will examine key concepts of both the client and server side processing of a data-driven web applications, as well as, other topics including web architecture patterns, and security considerations. The course will focus on the foundations of these topics in terms of their relevance in making theoretical design choices as well as how they can be implemented in practice.

CS 407 Advanced topics: Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice. 

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.

   

     Spring 2015:

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 490 Computer Communications Networks & Distributed Processing

3 Hours.  Study of networks of interacting computers. The problems, rationale, and possible solution for both distributed processing and distributed data bases will be examined. 

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.

     Fall 2014:

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.  

CS 407 Advanced topics: Design Patterns

3 Hours.  The focus of the course will be on moving from basic OO programming to developing an in depth knowledge of how to use advanced OO design patterns.  Students will be introduced to a broad array of proven design patterns, when they should be used, and how to implement them in practice. 

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.

    Spring 2014:

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 490 Computer Communications Networks & Distributed Processing

3 Hours.  Study of networks of interacting computers. The problems, rationale, and possible solution for both distributed processing and distributed data bases will be examined. 

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.

        Fall 2013:

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.  

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.

CS 502 Computing and Communication Technology3 Hours.  Computing and Communications Technology Spring. Prereq.: Admission to the CIT program or permission of the program director. Comprehensive coverage of the concepts of computer networking, and computer architecture and organization required to enable students to understand and efficiently utilize computing and communication resources. Development of distributed computer applications. 

      Spring 2013:

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.  

        Fall 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 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.  

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.

  

        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. 

Syllabus 

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.

Syllabus  

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. 

Syllabus

       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:

        Summer 2006:

CS 440 Introduction to Software Engineering

3 Hours. Software life-cycle model, requirement specification techniques, large-scale software design techniques and tools, implementation issues, testing and debugging techniques, software maintenance.