Once again I’m looking for capstone projects for senior students in the CIS undergraduate program at ASU. Students will be working in teams of 4-6 over a 15 week period and will be expected to use all of the knowledge they’ve gained throughout their undergraduate studies as well as learn new tools to fit the job. Past projects have included from-scratch web applications, mobile web sites and basic mobile apps, new features for existing web apps, data analysis, requirements analyses, and digital marketing projects involving SEO, social media, etc.
Past clients have included brand-new startups (even a lone founder with nothing more than paper sketches of his intended web app), small, medium, and large companies. Clients are expected to maintain communication with the students, who will present several working “demos” of the project as it emerges, and will need your feedback. Beyond that, there is no cost to participate, although I will expect you to fill out a questionnaire at the end of the semester to help me grade the students. This is a great opportunity for you to get a real project completed, to get to know some students who may be potential hires, and to give back to the ASU community.
In my opinion the most successful projects have been “from scratch” web development projects, because the students have training in web development already, and with new projects they won’t face a big up-front hurdle of trying to understand someone’s existing code. However, with the big group coming into the class this fall, it’s usually possible to find enough students to take on other types of challenges such as mobile app programming or big data analytics.
If you are interested in sponsoring a project for the semester that spans August 21 to December 5, please e-mail me or call 480-965-0024 during the business day, and I’ll tell you all about it.
It’s now just about 13 years since I’ve been able to call myself a “professional” web developer, and I found out that my trusty old IDE, Allaire Homesite, is no longer on the market. I’m thinking about trying emacs… it’s older than me, and still popular, so there’s got to be something to it. But what about the back-end? I’ve always just used an FTP tool to dump script files (PHP and the like) into a traditional web host — this site runs on GoDaddy hosting — but nowadays I’m playing around with web frameworks like Flask and will need to have a lot more control over my environment. The name of the game these days is the cloud (aka platform-as-a-service), where you architect applications in loosely-coupled modules running in configurable virtual machines. I’ve decided to try Heroku, because it has multiple Python tutorials including one based on Flask, my framework of choice, and gives you an apparently free PostgreSQL database. If I can get it running, my first challenge is going to be building myself a fresh new blog. This site is built in WordPress, which is a powerful and easy-to-use tool, but it has way more features than I need, and I need a learning project anyway. Whether I can get it running is indeed the question. I can run
git with no problems on my Windows machine, but can’t get the command-line Heroku tools (
foreman) to work at all. I’m going to try setting up a new Arch Linux virtual machine with VMware Player and use that for development.
St. Isidore of Seville, pray for me! (He’s the patron saint of the Internet.)
The summer cohort of CIS440 is rolling along with five teams building web apps from scratch for businesses in the area, including a couple of brand new startups. It’s exciting to do this all in the short span of six weeks, and it’s been a very high-energy group. I suspect the fact that the teams are meeting daily instead of twice per week is helping with keep the momentum up.
This week the focus of my lectures has been on DevOps and on Testing, two concepts that I think are essential to software development but have never been included before in this course (which was originally more of a Project Management course). In talking to professionals throughout the Valley, it has frequently come up that new graduates may have a lot of knowledge in programming, but never have any training in software testing or even basic tools for collaboration such as version control.
So, how should it be included in a course like this one? This semester, I gave a basic lecture on a number of common DevOps approaches, without getting into specific tools, basing the lecture mainly on Paul Swartout’s Continuous Delivery and DevOps: A Quickstart Guide. Testing is an area I know even less about, so I ended up showing a video by Carl Meyer and recommending another one by James Bach. In addition, one assignment each student must do is participate in a “tech talk” for the class. One group is presenting on a Git/Github workflow tomorrow, and another will present on some type of automated test runner next week. (The “tech talk” idea has been a stroke of genius, by the way. It allows the students to specialize and go beyond the core content of the course, while guaranteeing that I learn something new from each class.)
But I think that in the future I might be able to impart a lot more by doing something like creating a “DevOps” workflow for the whole class: have students turn in assignments via Git, grade team members somehow based on the repo’s statistics (# of commits, or whatever), require testing from the beginning, maybe even define tests of my own which students will have to make their projects pass in order to get credit. Hey… maybe I can get a student team next semester to work on this for me!
Teaching a short six-week session of CIS 365 with a small group (9 students) was a great opportunity to try out some new things in the curriculum including (as mentioned) the use of an open-source DBMS, PostgreSQL, for teaching. Here’s some of what I discovered from the experience:
- BYOD with an open source DBMS works. Postgres works just about the same on Macs and PCs, so there were no complications in letting the students use their own machines, but one: I couldn’t figure out how to set a PATH in the Mac OS, so it was challenging for Mac users to use the command-line features of
- Adding a final “tech talk” assignment was a great way to focus the schedule on the DBMS. Previously I’d held a day on using Access and Excel as database front-ends, a day on Tableau, a day on database-driven websites with PHP, and maybe some other special topics. This cluttered the schedule and distracted the students. For the summer semester, instead, I spent more time on advanced features like stored procedures, triggers, and fuzzy-text queries, and I assigned each team to prepare a tech talk for the class on one of those other technologies which might be used for the front-end of a database application.
- Group projects are still hard to grade fairly. From the professor’s point of view, it’s hard to tell who’s doing the work and why. Next time, I’ll keep the projects but probably make them a smaller part of the overall grading.
In the coming year instead of CIS 365 I’ll be teaching CIS 355, a course on data warehousing in our new Business Data Analytics major. It should be a good course for me to leverage what I’ve learned about teaching SQL and RDBMSs, and explore a new application of those technologies.
The spring semester has just concluded and I’m proud to have finished my first year as an ASU faculty member. After a short breather, the summer session will be starting, and I’m going to be teaching CIS365 again from May 19 to June 27.
This semester, instead of using Microsoft SQL Server, we’re going to shake things up a bit and use PostgreSQL for the assignments. PostgreSQL (or just “Postgres”) is an open source database management system that should be able to run on everyone’s computer, even those of you with Macs, so we won’t have to fool around with virtual machines or cloud servers. (FYI, I installed the latest release, version 9.3, on my machine.) On the other hand, this means that the students and I will have to do some learning by trial and error as every database has its little idiosyncrasies.
I recommend that students look for some free help or documentation on the Internet, because the course text isn’t for Postrges specifically. I found one free book here, and I’m sure there are more, not to mention the official documenation at postgresql.org.
From a client who had our students do a website redesign:
“Thank you for allowing me to be part of it. The students did a fantastic job. I’m not only getting lots of new online orders, but many many more website visitors. The website is so much more impressive and I’m getting lots of offers for new … contracts from it. So, while most of what I do online is not quantifiable, it has noticeably made a difference in my presence.”
On Tuesday, we celebrated the success of 22 Capstone project teams with a first-ever capstone project showcase. Many of our sponsor organizaitons, as well as other faculty and students, were present to see the websites, mobile apps, digital marketing strategies, and consulting projects that our students had completed. Well done, everyone!
Thanks to all of the project sponsors who visited my CIS440 class on January 23rd, we successfully formed 23 student teams to carry out IT projects of all sorts during the semester ahead. I’m looking forward to seeing what kind of an impact we can make for the various sponsor companies over the course of what should be an exceptional learning experience!
Welcome to my freshly-updated website. In the spring semester, I’m teaching one section of CIS 365, Business Database Systems, and three sections of CIS 440, the capstone course for our CIS undergrads. My CIS 440 students will be working in teams to complete IT/IS projects for real-world businesses, such as websites, mobile apps, databases, requirements analyses, prototypes, and analytics dashboards. We had seven teams in the fall semester who produced excellent results for companies such as APS, Tanga, AuthorityLabs, and ASU, but I expect to have have more than twenty teams this spring. Do you know of a company, small or large, that would like to work with our students and get some projects from their backlog completed? Put them in touch with me. And students, I’ll see you in class next week!