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

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 am retiring 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 enjoy 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.

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.

Recent Changes:

Beginning with the end of the Fall 2015 semester we started recording videos of the lectures and help sessions for both CSE681 - Software Modeling and Analysis and for CSE687 - Object Oriented Design. Most lecture pages have links to their videos. There is also a Video Page that orders all the video links and gives a few words about the contents of each.

I'm now (summer 2016) adding course descriptions and lecture material for on-line versions of CSE681 and CSE687. The residential courses operate on a Semester system. But, the on-line courses operate on a Quarter system, and so the number of lectures will change. Also, the model for on-line courses is that, for each week, the first lecture will be recorded and will be based on the new material I'm adding. The second lecture will focus on student questions and review. For that I am not adding any material.

The consequence of this model of the Quarter system course is that there are about half the number of lecture pages as for the residential course. Residential students may find it useful to use the on-line materials to study for course examinations as that material is more focused on the ideas whereas a lot of the residential lecture materials also focus on professional practice.

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 teach 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 is 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. Master's Projects are no longer required, but 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 have recently started a small research group that focuses on software complexity, accessibility and reuse. For details refer to this Research page. This group consists 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 extends 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 are 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.