Get Tech'Ed HomePage

Course Homepage


CSM CSCI-410

Elements of Computing Systems

Course Information

(Last Mod: 17 December 2013 13:16:49 )



Course Catalog Description

This comprehensive course will help students consolidate their understanding of all fundamental computer science concepts. Topics include symbolic communication, Boolean logic, binary systems, logic gates, computer architecture, assembly language, assembler construction, virtual machines, object-oriented programming languages, software engineering, compilers, language design, and operating systems. Using a hardware simulator and a programming language of their choice, students construct an entire modern computer from the ground up, resulting in an intimate understanding of how each component works.

Prerequisite: CSCI 341 or EGGN 482.


Textbook

The Elements of Computing Systems - Building a Modern Computer from First Principles

Noam Nisan and Shimon Schocken

ISBN: 978-0-262-64068-8

The MIT Press, 2005

 

CODE - The Hidden Language of Computer Hardware and Software

Charles Petzold

ISBN: 978-0-7356-1131-3

Microsoft Press, 2000

 


Software

All of the software directly related to the project for this course can be found at the following website:

Nand 2 Tetris

To run some of these programs, you will need the Jave Runtime Environment, as well.

Python

http://www.python.org/

It is recommended that you install Python 3.3 from the above site, as this is the version that the instructor and grader will be using and your code must run successfully on the grader's platform.


Grading

There will be no exams in this course (including no final exam). Instead, there will be a total of 20 quizzes, mostly covering the readings in CODE, five Python programming assignments aimed at preparing you for the later project phases, and 12 projects from ECS. The point allocation is as follows:

Assignment Type Each Total
Quizzes (20) 15 300
Python (5) 20 100
Projects 1 - 9  (9) 40 360
Projects 10-12 (3) 80 240
TOTAL   1000

NOTE: The present term will probably have ~10 quizzes totaling approximately 200 points and 3 Python assignments totaling 60 points. Thus the total points for the course will be in the 840 range.


All assignments are due, via submission to Blackboard, by 8:00AM on the assigned due date. Quizzes and projects will be accepted late only by prior arrangement (with special case exceptions) and will generally have a 20% per day late penalty.