Classes

CSCI 4415 - Real Time Embedded Systems

CSCI 4415 (formerly CS-190) is a George Washington University, Department of Computer Science course in real-time embedded systems. This course is taught as CSCI-4415 section 80 for undergraduate students and CSCI-6907 section 80 for graduate students. The purpose of this course is to engage computer science undergraduates and graduates with hardware and embedded systems. While Computer Science students get a strong conceptual overview of systems and hardware in various organization and architecture courses, many students have never experienced actually working with computer hardware. This course will focus on hands-on projects, through homework, labs and final projects involving both hardware and low-level software. This course will discuss the design issues in an embedded system and the technologies needed to support such systems, with the focus on the software aspects.

CSCI 4237 Software Design for Handheld Devices

CSCI 4237 - Software Design for Handheld Devices is a George Washington University, Department of Computer Science course in developing applications for modern day smartphones. This class will be a rigorous examination of the tools and techniques used for programming mobile devices in Java. The student will develop programs for a number of different phones including BlackBerry and Android phones. Attention will be given to the details necessary for developing fully functional applications such as games and business tools. Programs will be developed to run within the emulators that are part of the development tools, however real devices can be used if the student wishes to provide their own. We will also pay specific attention to topics that are unique to handheld devices: designing for limited screen size and constrained resources, cross platform development, portability, on-device testing and performance issues.

CSCI 3410 - Systems Programming

Block DiagramCSCI 3410 is a new George Washington University, Department of Computer Science course replacing Computer Architecture II (CSCI 3462). This course introduces students to many concepts underlying all computer systems and ties together the basic concepts from transistors though software development. Topics include: processor operation, hierarchical memory systems, microcontroller architecture, digital and analog data acquisition, actuation, and systems software development topics from the programmer's perspective such as compilers, linkers, operating systems, testing and debugging. The course uses embedded platforms to teach students how programs interact with and are constrained by hardware (with a little bit of “Basic Electronics” included so that the embedded systems part can be more easily understood).

CSCI 3410 Syllabus

The purpose of this course is to engage computer science undergraduates and graduates with hardware and embedded systems. While CS students get a strong conceptual overview of systems and hardware in various organization and architecture courses, many students have never experienced actually working with hardware. This course will focus on hands-on projects (through homework, labs and final project) involving both hardware and low-level software. This course will discuss the design issues in an embedded system and the technologies needed to support such systems (with the focus on the software aspects). In addition, we will also cover a gamut of real-time embedded systems-related topics. The class can be taken for graduate and undergraduate credit, the work load being scaled appropriately. Updated for Spring 2009.

CSCI 3410 - Class Schedule

This class follows the university undergraduate and graduate academic calendars. I prefer all submissions by email by midnight of the due date (which is almost always a Tuesday). If your work requires submitting something other thanthough email or blackboard (paper, CD, a device, etc) then it should be in my mailbox in the Academic Center (704) by 4:00 PM (not later) on the due date or you can give it to me before, during, or after class on the due date. ALL submissions after these times will be considered late.


Before The Class Begins

Befoere the class starts, it would be good to read the following: