Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

Git Primer

11 minute read

Published:

This primer introduces the basic commands and workflows in the Git™ Version Control System (VCS). For a more detailed look at the workings of Git, refer to the free resource hosted as part of the Git open-source project - git scm book.

*nix Plumbing

3 minute read

Published:

Unix-based systems generally have a similar command line interface (CLI). This interface is challenging at first, but allows users to do powerful operations in a fraction of the time required to do the same task in a GUI. An additional benefit is that actions are more repeatable via the CLI. One useful thing to do is chain together multiple commands into one mega-command. This chaining is accomplished with the pipe key |. Since pipes are used to connect commands, this is colloquially referred to as “plumbing”.

Simplifying Make

4 minute read

Published:

This is an attempt at simplifying make, I hope it can help anyone who struggling with the basics.

Basic Vim Setup

3 minute read

Published:

Vim is by no means the only code editing tool out there…it’s just the best one 😁. It is highly customizable, and if you choose it as your editor you will modify it over time to suit your needs. For beginners, a very simple setup can go a long way in helping to develop code.

Debugging Segmentation Faults in C++

11 minute read

Published:

Segmentation faults in C++ are a sign that you are trying to do hard things. Congratulations! Now, let’s take a peek at how to start debugging.

Uninitialized variables in C++

5 minute read

Published:

C++ won’t always work the way you expect, and that is by design. It’s a remarkably rigid language and it requires that a programmer cross all of their f’s and dot all of their j’s.

Common Constructor Mistakes in C++

5 minute read

Published:

It is very common to have some difficulty when constructing custom classes in C++. Below I’ll discuss what tend to be the two most common problems I see with student submissions. The first is local scope vs instance variables. The second is a lack of default constructors.

Operator Overloading in C++

6 minute read

Published:

What follows is an example of an overloaded operator for a class named Foo.

portfolio

publications

Nifty Assignments

Published in SIGCSE 2021, 2021

The Nifty Assignments special session is about promoting and sharing the ideas and ready-to-use materials of successful assignments

Recommended citation: Nick Parlante, Julie Zelenski, Adrian A. de Freitas, Troy B. Weingart, Keith Schwarz, Ben Stephenson, Steven Bitner: Nifty Assignments. SIGCSE 2021: 1240-1241 https://dl.acm.org/doi/10.1145/3408877.3439501

Utilizing Test Driven Development in a Data Structures Course

Published in FECS 2021, 2021

High failure rates in Data Structures and Algorithms courses suggest the need for different approaches to teaching programming. This work contains a description of an effort to introduce Test-Driven Development in a first course in data structures.

Recommended citation: accepted

Student Persistence in the Use of Test Driven Development

Published in CSCI 2022, 2022

This work extends a prior study of a modified test-driven development approach to software development in a first course in data structures. The current aims to determine if students persisted in utilizing a test-driven development approach in a follow-on course in advanced data structures and algorithm analysis.

Recommended citation: accepted

talks

Utilizing Test-Driven Development in a Data Structures Course

Published:

High failure rates in Data Structures and Algorithms courses suggest the need for different approaches to teaching programming. This work contains a description of an effort to introduce Test-Driven Devlopment (TDD) in a first course in data structures. Methods of teaching and utilization of the method are described, as are empirical results regarding student utilization of TDD and outcomes in the course. Instruction and project distribution that focuses on unit testing indicates an adoption of an incremental development methodology by the students in the study. Advantages, pitfalls and issues that need to be addressed in order to utilize the approach successfully in intermediate programming courses are discussed.

Git and GitHub

Published:

The talk was given as a part of our workshop supplements to assist students with fringe topics that when misunderstood have detrimental impacts on their ability to absorb primary course matter.

teaching

Advanced Database Systems

Graduate course, University of West Florida, Department of Computer Science, 2018

Advanced topics in database management systems will be covered, for example, further dependencies and higher normal forms, transaction processing, concurrency control, backup and recovery, indexing, replication, managing large databases, and contemporary issues and topics in databases.

Capstone Systems Project

Undergraduate course, University of West Florida, Department of Computer Science, 2020

Develop a software system for a real-world client while working in small teams. Develop and deliver relevant artifacts such as a project proposal, design, test plan, code, user’s manual, and project log with metrics as the software system evolves throughout the course. A final presentation and evaluation of the project experience will be prepared.

Intermediate Computer Programming - Java

Undergraduate course, University of West Florida, Department of Computer Science, 2020

An intermediate course in object-oriented programming. Topics include object-oriented modeling, algorithms, inheritance, polymorphism, input/output. Emphasis will be on issues of object-oriented design and good programming practices. Students entering this course are expected to have a solid knowledge of programming in the object-oriented paradigm. The focus will be on developing skills in program design as a necessary prerequisite to effective implementation.

Computer Science Project

Graduate course, University of West Florida, Department of Computer Science, 2021

Capstone course for Masters students who do not elect the thesis option. Students will define and carry out a project that shows mastery of some topic in computing and produces some concrete product such as a report or a computer program.

Software Engineering Foundations - Java Programming

Graduate course, University of West Florida, Department of Computer Science, 2021

A course in the Accelerated Software Engineering Foundations Series in which students will gain a comprehensive understanding of principles/concepts of Java programming and how to apply those principles/concepts in conjunction with principles of software engineering to design and develop object- oriented software systems. Students taking this course should have an understanding of programming language fundamentals including variables, constants, selection, iteration, arrays, and functions or methods.

Data Structures and Algorithms I

Undergraduate course, University of West Florida, Department of Computer Science, 2022

A first course in Data Structures and Algorithms. Topics will include traditional data structures with a major focus on design and analysis of algorithms and will include projects that stress mathematics and science.

Advanced Algorithms

Graduate course, University of West Florida, Department of Computer Science, 2022

A comprehensive overview of the most commonly used approaches for approximate solution of NP-Hard problems, including linear programming, dynamic programming, and greedy algorithms. A survey of common algorithms including cache-aware algorithms, randomized algorithms, network flow algorithms, and online algorithms. This course takes an ‘experimental algorithms’ approach to educating students on augmenting theoretical results with empirical methods for the design of algorithms that are effective in practice.