placeholder image
  • Contact Info

Herman, CJ

Teaching Associate Professor

Positions

Research Areas research areas

Teaching

courses taught

  • CSCI 3287 - Design and Analysis of Data Systems
    Primary Instructor - Fall 2018
    Introduces the fundamental concepts of database requirements analysis, database design, and database implementation with emphasis on the relational model and the SQL programming language. Introduces the concepts of Big Data and NoSQL systems. Same as CSPB 3287.
  • CSCI 3753 - Design and Analysis of Operating Systems
    Primary Instructor - Fall 2019 / Fall 2020 / Spring 2021 / Fall 2021 / Spring 2022 / Summer 2022 / Fall 2022 / Fall 2023
    Analyzes the software that extends hardware to provide a computing environment, including the role of linkers, file systems, resource sharing, security and networking. Studies the history of operating system organization and design and their influence on security, functionality and reliability. Same as CSPB 3753.
  • CSCI 4113 - Linux System Administration
    Primary Instructor - Fall 2018 / Spring 2019 / Fall 2019 / Spring 2020 / Fall 2020 / Spring 2021 / Fall 2021 / Spring 2022
    Introduces Linux system administration and related topics, including troubleshooting system and network problems, hardware and software configuration and installation, basic scripting and security aspects of internet hosts. Students build Linux servers from the ground up, using provided computing resources, and must maintain and secure the servers themselves.
  • CSCI 4273 - Network Systems
    Primary Instructor - Spring 2020 / Spring 2022 / Fall 2022 / Spring 2023
    Focuses on design and implementation of network programs and systems, including topics in network protocols, file transfer, client-server computing, remote procedure call and other contemporary network system design and programming techniques. Familiarity with C and Unix or Linux is required.
  • CSCI 4830 - Special Topics in Computer Science
    Primary Instructor - Spring 2023
    Covers topics of interest in computer science at the senior undergraduate level. Content varies from semester to semester. Only 9 credit hours from CSCI 4830 and/or CSCI 4831 can count toward Computer Science BS or BA.
  • CSCI 5040 - Professional Masters Project 1
    Primary Instructor - Fall 2023
    First class in a two semester cycle. Focuses on applied best practice in all facets of software engineering in industry and the application of those practices. Students are part of a development team involved in a two-semester project. Each student has a specific role on the project, and all will be responsible for some level of actual software development. The first semester focuses on design, requirements, and prototyping and is based on common waterfall project practices with gate reviews and project artifacts. Testing, soft skills for teamwork, project management, and other supporting aspects will be driven throughout the semester. The outcome of the two-semester cycle is a final project delivery of a software product for an institutional or industrial partner and/or for entry into software development competitions.
  • CSCI 5050 - Professional Masters Project 2
    Primary Instructor - Spring 2024
    Second class in a two-semester cycle. Focuses on applied best practice in all facets of software engineering in industry and the application of those practices. Students are part of a development team involved in a two-semester project. Each student has a specific role on the project, and all will be responsible for some level of actual software development. The second semester focuses on development, code construction, and delivery, using agile-based project management for development. Students work in both Scrum and Kanban agile project cycles. Testing, soft skills for teamwork, project management, and other supporting aspects will be driven throughout the semester. The outcome of the two-semester cycle is a final project delivery of a software product for an institutional or industrial partner and/or for entry into software development competitions.
  • CSCI 5113 - Linux System Administration
    Primary Instructor - Fall 2021 / Spring 2022
    Introduces Linux system administration and related topics. Includes hardware and software installation, storage management, configuration of user accounts and system services, development of automation and monitoring tools, and the provisioning of common network services. This laboratory focused course will provide significant exposure to the network security concerns of Internet connected hosts. Students will build a network of Linux servers from the ground up, using provided computing resources, and must maintain and secure these servers themselves. Previously offered as a special topics course. Recommended prerequisite: CSCI 3753 (minimum grade B). Same as CYBR 5113 and CSCI 4113.
  • CSCI 6930 - Professional Internship
    Primary Instructor - Fall 2023 / Spring 2024
    This class provides a structure for CS graduate students to receive academic credit for internships with industry partners that have an academic component to them suitable for graduate-level work. Participation in the program will consist of an internship agreement between a student and an industry partner who will employ the student in a role that supports the academic goals of the internship. Instructor participation will include facilitation of mid-term and final assessments of student performance as well as support for any academic-related issues that may arise during the internship period. May be taken during any term following initial enrollment and participation in CS graduate programs.
  • CSCI 7000 - Current Topics in Computer Science
    Primary Instructor - Spring 2022 / Spring 2023
    Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 8 total credit hours.
  • TLEN 5842 - Linux Systems Administration
    Primary Instructor - Spring 2018 / Fall 2018 / Spring 2019
    Introduces Unix system administration and related topics, including trouble-shooting system and network problems, hardware and software configuration and installation, basic scripting, and security aspects of internet hosts. Students build Linux servers from the ground up, using provided computing resources, and learn to maintain and secure the servers in a virtual environment.