Computer Engineering Course Notes - Jim Fawcett

"Good judgement comes from experience, and experience comes from bad judgement."
- Jim Horning

Jim Fawcett, Ph.D.

CST 4-187, Syracuse University, Syracuse, New York 13244
(315) 443-3948, jfawcett@twcny.rr.com
twitter: @fawcettjim
Schedule - classes and appointments
How to Find Things, Website Overview
Since retiring I've started a new github site holding a curated
selection of materials from this site and new content. The intent is
to provide better organization for code and coding resources.
github site home
site repositories
C++ Story

Purpose of this Site:

The site serves, for current and former students, as a portal into a sequence of software design courses I've taught for the last twenty five years. This page links to descriptions of each of the courses and to folders containing presentations and code used as an integral part of these courses.
I retired at the end of the 2019 Spring Semester. It's been a great ride. I've been extraordinarily lucky to have met and worked with so many great people. All my students (usually about) 200 each year, are surrogate sons and daughters. I enjoyed almost every minute working with them. I expect this site will stay up for a while after I leave, partly because on-line courses, taught by other faculty, use this site for their lecture and project materials. I hope you find the site useful. You will find reusable components and demonstration designs posted in my github repository collection. Those are documented in the corresponding github documentation site. I started this at the end of May, 2019, with a few repositories. As of the beginning of February, 2020 there are more than 60 repositories.
Infrastructure for this site - the collection of its pages and linking structure - has been evolving for years, and that process continues. The goal of the site is to organize notes, presentations, demonstration code and reusable code modules. The content is intended to supplement course lectures and you will need to make frequent references as you take courses from the sequence described here.

Using code and notes from this website:

Most of the code linked on pages of this site has been developed with Visual Studio. I am now using Visual Studio 2017 so you will need this latest version to build a lot of the code here. You can download the free Visual Studio Community Edition here. There is a brief summary of Visual Studio features on that page.


I taught software design courses on a regular schedule, each offered once each year: Courses

Course Handouts

You will find a collection of directories on the college server to provide access for current and former students to selected notes, references, and code. Be warned that the code was discussed in class and much of it will have meaning, only to that class. However, feel free to browse, and download anything you wish: Handouts. You will find links and descriptions of much of the code here. These folders have more content than a simple directory organization can properly support. This site is trying to provide a grand scheme for improved accessibility. The site is now in its twentyth year and its contents and structure are reasonably current.

Internships and Master's Theses

The Department of Electrical Engineering and Computer Science has three programs: Computer Engineering, Computer Science, and Electrical Engineering. In all of these programs you have the option of augmenting your Program of Study with internships and/or a Master's Thesis.

An internship is usually a full-time working experience that becomes part of your program of study. Many students seek internships over the summer break. When you complete an internship you document that with a report with your narrative about the assignments you've completed, the relationships you've had with people there, and a brief discussion of the academic merit of this experience. Here is more information.

If you are interested in carrying out some original Master's-level research follow this Yellow Brick Road.

Research and Development

Several students and I started a small research group that focused on software complexity, accessibility and reuse. For details refer to this Research page. This group consisted of several Doctoral students, one or two students preparing Master's Theses under my direction, and occasionally a student doing an Independent Study. Some of this research extended into the classroom. For example, the CSE784 - Software Studio class has, over several years, developed projects that implement some of the software accessibility ideas we were exploring.

Ancient History

From 1978 through 1990 I taught, as an Adjunct, all Electrical Engineering courses, e.g., a variety of control system courses, digital signal processing, complex variables, linear vector spaces, etc. None of those notes are in electronic form, and so do not appear in this site.