Tim Bower
Associate Professor, Department of Integrated Studies
Office: Technology Center 164
Phone: 785-826-2646
Email: tim@k-state.edu
Areas of Specialization/Research
- Robotics and Automation Engineering Technology
- Computer Systems Technology
- Programming
- Networking
- Speech Recognition
- Image Processing
- MATLAB Programming
- LabVIEW Programming
- Unix/Linux
- Python Programming
- Systems Adminstration
Courses taught at K-State Salina
- CMST 102 - Introduction to Computer Technology
- CMST 130 - Introduction to PC Administration
- CMST 250 - Networking I
- CMST 270 - Introduction to Unix
- CMST 302 - Applications in C Programming for Engineering Technology
- CMST 305 - Robotics Programming
- CMST 350 - Unix Systems Administration
- CMST 410 - Operating Systems
- CMST 355 - Network Programming
- CMST 499 - Advanced Python Programming
- CMST 357 - Machine Vision
- ETB 310 - Data Analysis and Tools
Open Source Software & Class Programming Assignments
Several of my software projects are in one way or another related to programming assignments that I gave to my students. However, these were not simple projects. Simple programs have their place in teaching students how to program, but nothing builds their confidence like having written some part of a program that is, well, non-trivial.
I enjoy programming, and I've never shied away from letting others exam my code. I often frame my larger programming assignments in a way that requires me to do far more programming than the students do. I often give quite a bit of code as a starting point to the assignment, and I always complete the assignment myself well before it is due. Thus, I am able to demonstrate the correct running of the program and I'm also able to give better assistance when they struggle with the assignment. So, because of my personal efforts that often go far beyond just teaching the class, I am left with some nice programs that I can make available as open–source software and integrate those efforts into my scholarship activities.
Ideally, we would like to give the students a problem description and have them do it all themselves. However, that is not always practical. Sometimes the students lack the confidence to know how to even get started on a larger project. Overwhelming the students can also slow the pace of the class resulting in a reduction of how much material is covered in the class. I have two teaching methods that I like to use to build students up to where they are able to attempt serious programming projects.
• My favorite programming assignment scheme is progressive assignments, where over the course of 2 to 4 assignments, the students pick up the components they need to ultimately have a fairly large program, which they wrote. This is what I did with the Graphic Blackjack Game (PDF) project. That project ending up being more more difficult than either I or the students anticipated, but I'm also quite certain that several students advanced considerably in their programming skills as they worked on it.
• My second favorite technique is to give the students a working program and ask them to add a new feature to it. This has worked fairly well in my Network Programming on-line class. In this class, we cover several different Network Programming topics, thus it is not practical to use progressive assignments. The Multi-Party Chat Client and Server (PDF) and Graphical Weather Forecast Viewer (PDF) projects both came from the Network Programming class.
Footnotes
• I have plenty of simple programs too, they are not listed here.
• Because students may be still working on the assignment, I am sometimes delayed on when I can release some programs as open–source, or I may not be able to release the versions of my programs that have the assignment completed.
• I prefer this approach by quite a bit over taking a program and striping out part of the code and asking the students to fill in the missing code. I've done that on a few occasions when I could not think a feature for them to add and progressive assignments were not possible. From a student learning perspective, I am usuall not pleased with the results when I ask students to fill in the missing code. When students add a feature, it gives them ownership of a corner of the overall program.
Additional Open Source Projects
One of my long term goals is to be a contributor to a significant open–source project, but at this point my contributions to the open–source community are as an educator and developer of some small, but not trivial and interesting programs. I am especially interested in writing Python programs which involve network programming and/or have value for systems administration, especially of Unix/Linux computers.
• Vox Audio File Conversion (PDF)
• RandMusic - Copy Random Songs to an MP3 Player (PDF)
• Find and Prompt for Removal of Duplicate Files (PDF)
• .vimrc File (configuration file) (PDF) for the vim/gvim Text Editor
USB Microphones Compatible with Linux
A good USB microphone is not exactly cheap. If you use Linux, you do not want to spend money buying a microphone only to find that it does not work with Linux. The goal of this table is to provide a list of USB microphones, mixers and some webcams that are confirmed to work or to not work with Linux.
Most manufacturers will not advertise that their devices work with Linux just because they don't want to support it. However, almost all USB audio devices use a standard interface, which is supported by Linux. So the chances of a USB microphone working with Linux is much greater now (2009) than it was a few years ago. If they claim something along the lines of "No special drivers are needed with Windows", then there is a good chance that it will work with Linux. However, before purchasing a microphone, it is re-assuring to find that others have successfully used it with Linux. So that is what I'm attempting to document here.
If you know of other devices that are confirmed to either work or not work with Linux, please send that information to me at tim@k-state.edu, so that I can add it to the list.
USB MICROPHONES/MIXERS KNOW TO WORK WITH LINUX
The microphones listed below should work with any Linux Distribution. Distributions that are confirmed to successfully use the microphone are listed just in case that information helps.
Microphone/Mixer | Notes (Confirmed Distrubution) |
Alesis IO|2 USB Audio Hub | 24 bit device, but only get 16 bit with Linux |
Blue Snowflake | |
Lambda Lexicon | Ubuntu 9.04 |
Logitech 9000 Pro webcam | |
Logitec USB Microphone | Some problems reported by some |
M-Audio FastTrack USB Mixer | Did not work with some older distributions, but confirmed to work with Ubuntu 10.04 |
Microsoft LifeChat LX-3000 | Ubuntu 9.10 |
MXL 990 | Kubuntu |
Plantronics iAudio 550 | Ubuntu |
Samson C01U | Centos, Ubuntu -- should just work on any Linux system |
Samson Q1U | |
Samson GoMic | openSUSE -- should work with others also |
Sony Eye webcam | Ubuntu 9.04 -- May take some effort |
Superlux E205U | |
Terratec Aureon 5.1 USB Mark II |
USB MICROPHONES/MIXERS KNOW NOT TO WORK WITH LINUX
- Arduino Sound Mixer
Publications
Copyright Notice: The documents distributed by this server have been provided by the contributing authors to ensure timely dissemination of scholarly and technical work on a noncommercial basis. Copyright and all rights therein are maintained by the authors or by other copyright holders, notwithstanding that they have offered their works here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.
- T. Harding, T. Mertz, B. Genereux, S. Guzek, T. Bower, "Reinventing a Computer Technology Curriculum to Meet the Needs of Students and Future Employers", 2017 ASEE Annual Conference & Exposition, May 2016. doi: 10.18260/1-2--18790
- T. Bower, "Teaching Introductory Robotics Programming: Learning to Program with National Instruments' LabVIEW", IEEE Robotics & Automation Magazine, vol. 24, no. 2, pp. 67-73, June 2016. doi: 10.1109/MRA.2016.2533002
- T. Bower, "Dumping PowerPoint in Favor of Web Sites", K-State Salina Professional Day 2011 January 11, 2011.
- T. Bower, "Experiences With Virtualization Technology in Education", The Journal of Computing Sciences in Colleges, Parkville, MO, April 9-10, 2010.
- T. Bower, "Using Linux Kernel Modules for Operating Systems Class Projects", Proceeding of the 2006 ASEE Annual Conference (ASEE'06), Chicago, June 18-21, 2006.
- Audiobook recording: A Bunch of Everylastings, by Frank W. Boreham
Computer Science Papers
- "Analysis of the effects of removing redundant header information in persistent HTTP connections", T. Bower, D. Andresen, D. Bacon. Proceeding of the 2001
- "An IP-Level Network Monitor and Scheduling System for Clusters", D. Andresen, S. Kota, M. Tera, T. Bower. Proceeding of the 2002 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'02), Las Vegas, June, 2002.
- "Distop: A Low-overhead Cluster Monitoring System", D. Andresen, N. Schopf, E. Bowker, and T. Bower. Proceeding of the 2003 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA'03), Las Vegas, June, 2003.
Additional Forms of Contact | ||
View my schedule on Google Calendars |