Open Access. Powered by Scholars. Published by Universities.®

Software Engineering Commons™

Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 24 of 24

Full-Text Articles in Software Engineering

Challenges In Engineering Machine Learning (Software) Systems, Raffi T. Khatchadourian Ph.D. Dec 2025

Challenges In Engineering Machine Learning (Software) Systems, Raffi T. Khatchadourian Ph.D.

Open Educational Resources

Lecture slides on the software engineering challenges unique to machine learning systems, for an undergraduate software engineering course. After contrasting traditional programming with machine learning, the deck examines why the usual tools for managing complexity—abstraction, reuse, and composition—are harder to apply to ML, given the lack of clear specifications and modularity. It covers concept drift, feedback loops (illustrated with crime-prediction and recommendation examples), and the accumulation of technical debt in ML systems, including the role and pitfalls of notebooks in moving from experimentation to production. Based on "Machine Learning in Production/AI Engineering" by Christian Kaestner and Eunsuk Kang (Carnegie Mellon …


Introduction To Machine Learning And Machine Learning Systems, Raffi T. Khatchadourian Ph.D. Nov 2025

Introduction To Machine Learning And Machine Learning Systems, Raffi T. Khatchadourian Ph.D.

Open Educational Resources

Lecture slides introducing machine learning and machine learning systems for an undergraduate software engineering course. Topics include what machine learning is and how it differs from traditional programming, foundation models, the major types of learning (supervised, unsupervised, reinforcement, and others), and applications across domains. Using a food-delivery time-prediction case study, the deck walks through a typical ML pipeline—data collection and cleaning, feature engineering, model training, and evaluation—and covers evaluation methods (precision and recall, confusion matrices, error measures) along with underfitting versus overfitting and the realities of learning and evaluation in production. Based on "Machine Learning in Production/AI Engineering" by Christian …


Csc36000 - Modern Distributed Computing Assignment 2, Saptarashmi Bandyopadhyay Jan 2025

Csc36000 - Modern Distributed Computing Assignment 2, Saptarashmi Bandyopadhyay

Open Educational Resources

This assignment is designed to help the student identify and mitigate common errors in Distributed Computing such as race conditions and reaching consensus, as well as reflecting on how Distributed Computing concepts apply to their class project.


Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi Khatchadourian Jan 2023

Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Introduction, Raffi Khatchadourian Jan 2023

Introduction, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Working With Control-Flow Graphs, Raffi Khatchadourian Jan 2023

Working With Control-Flow Graphs, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Reengineering And Refactoring, Raffi Khatchadourian Jan 2023

Reengineering And Refactoring, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Building An Ast Eclipse Plug-In, Raffi Khatchadourian Jan 2023

Building An Ast Eclipse Plug-In, Raffi Khatchadourian

Open Educational Resources

Complete the Building an AST Eclipse Plug-in assignment. Once it works, find a medium-sized open-source Java project to run your plugin on. You may want to explore GitHub. Import the project into Eclipse and run your plug-in on it. Report on the following, which may require you to change some of the source code so that it is convenient:

  1. Project name.
  2. Project URL.
  3. Project description.
  4. The number of classes in the project.
  5. The number of user-defined methods in the project.
  6. For each class, the number of method calls.
  7. Statistics about the method calls:
    1. The total number of method calls …


Wala Quick Start, Raffi Khatchadourian Jan 2023

Wala Quick Start, Raffi Khatchadourian

Open Educational Resources

Setting up and trying the TJ Watson Library for Analysis (WALA).


Eclipse, Osgi, And The Java Model, Raffi Khatchadourian Jan 2022

Eclipse, Osgi, And The Java Model, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian Jan 2022

Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Csci 40500/77100: Software Engineering, Raffi Khatchadourian Feb 2021

Csci 40500/77100: Software Engineering, Raffi Khatchadourian

Open Educational Resources

This course is intended to be an introductory survey on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the efficient engineering of high-quality software systems. This may include understanding and appreciating problems in large-scale software development such as functional analysis of information processing systems, system design concepts, timing estimates, documentation, and system testing.


Csci 40500/77100: Software Engineering, Raffi Khatchadourian Feb 2021

Csci 40500/77100: Software Engineering, Raffi Khatchadourian

Open Educational Resources

This course is intended to be an introductory survey on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the efficient engineering of high-quality software systems. This may include understanding and appreciating problems in large-scale software development such as functional analysis of information processing systems, system design concepts, timing estimates, documentation, and system testing.


Inheritance Details In Scala, Raffi Khatchadourian Sep 2020

Inheritance Details In Scala, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Devops: Lecture 1 - "Overview", Jeremy Andrews, Nyc Tech-In-Residence Corps Apr 2020

Devops: Lecture 1 - "Overview", Jeremy Andrews, Nyc Tech-In-Residence Corps

Open Educational Resources

Overview lecture for the "DevOps" course delivered at the City College of New York in Spring 2020 by Jeremy Andrews as part of the Tech-in-Residence Corps program.


Devops: Architecting Your Infrastructure (Syllabus), Jeremy Andrews, Nyc Tech-In-Residence Corps Apr 2020

Devops: Architecting Your Infrastructure (Syllabus), Jeremy Andrews, Nyc Tech-In-Residence Corps

Open Educational Resources

Syllabus for the "DevOps" course delivered at the City College of New York in Spring 2020 by Jeremy Andrews as part of the Tech-in-Residence Corps program.


Needfinding, Devorah Kletenik Jan 2020

Needfinding, Devorah Kletenik

Open Educational Resources

This activity guides students through the process needfinding to identify areas of need for their creation of a technology for the "public good." Students will conduct contextual inquiry to identify the needs of their target audience.


Personas, Scenarios And Storyboards, Devorah Kletenik Jan 2020

Personas, Scenarios And Storyboards, Devorah Kletenik

Open Educational Resources

This activity guides students towards the creation of personas, scenarios and storyboards for a product/website that they are creating.


Public Interest Technology: Coding For The Public Good, Devorah Kletenik Jan 2020

Public Interest Technology: Coding For The Public Good, Devorah Kletenik

Open Educational Resources

These slides are used to guide a discussion with students introducing them to the notion of public interest technology and coding for the public good. The lesson is intended to spark a discussion with students about different sorts of technology and their societal ramifications.


Accessibility: The Whys And The Hows, Devorah Kletenik Jan 2020

Accessibility: The Whys And The Hows, Devorah Kletenik

Open Educational Resources

This presentation introduces Computer Science students to the notion of accessibility: developing software for people with disabilities. This lesson provides a discussion of why accessibility is important (including the legal, societal and ethical benefits) as well as an overview of different types of impairments (visual, auditory, motor, neurological/cognitive) and how developers can make their software accessible to users with those disabilities. This lesson includes videos and links to readings and tutorials for students.


Coding For The Public Good: Front-End Website Design And Development, Devorah Kletenik Jan 2020

Coding For The Public Good: Front-End Website Design And Development, Devorah Kletenik

Open Educational Resources

This activity helps student design and develop a front-end of a website, from wireframes through HTML/CSS/Javascript. It includes design questions for students, including the invocation of Ben Schneiderman's eight golden rules for interface design.

Note: this activity assumes prior knowledge of web development. Since this activity is designed for an HCI course, with a focus on interface design, students are not expected to create a back-end for it. This activity can obviously be modified for a full-stack experience.


Accessibility Evaluation, Devorah Kletenik Jan 2020

Accessibility Evaluation, Devorah Kletenik

Open Educational Resources

This activity guides students through the evaluation of a website that they have created to see if it is accessible for users with disabilities. Students will simulate a number of different disabilities (e.g. visual impairments, color blindness, auditory impairments, motor impairments) to see if their website is accessible; they will also use automated W3 and WAVE tools to evaluate their sites. Students will consider the needs of users with disabilities by creating a persona and scenario of a user with disabilities interacting with their site. Finally, students will write up recommendations to change their site and implement the changes.


Enhancing The Study Of Art History Utilizing Computational Thinking: Focus, Abstraction In Art (Modern), Douglas L. Moody, Sandra Cheng Jun 2019

Enhancing The Study Of Art History Utilizing Computational Thinking: Focus, Abstraction In Art (Modern), Douglas L. Moody, Sandra Cheng

Open Educational Resources

No abstract provided.


Arecibo Message, Joshua P. Tan May 2019

Arecibo Message, Joshua P. Tan

Open Educational Resources

This two week assignment asks students to interpret and analyze the 1974 Arecibo Message sent by Drake and Sagan. Week 1 introduces the concepts behind the construction of the message and engages with a critical analysis of the architecture and the contents of the message. Week 2 asks students to develop software in a Jupyter Notebook (available for free from the Anaconda Python Distribution) to interpret messages that were similar to those produced by Drake and Sagan.