This page contains some of my school work. Please forgive my horrific use of fonts and spacing back then. Only now in this late hour do I realize my mistakes of youth when I lacked understanding of print vs. screen font usage, page layout, and document flow. For this I apologize to my professors.
My reasons for posting answers:
- Whether your goals are finishing or creating an assignment, or just understanding one of the basic concepts approached in each assignment, hopefully something here will be of some use to you.
- It provides a good way to organize my work in a logical manner. It’s easier for me to make use of it this way.
- Everybody cheats in school at least once. If you didn’t you spent way too much time reaching enlightenment.
- Sometimes you can’t reach an answer on your own. It is better to have an answer available for you to work through thus you may actually reach enlightenment instead of failing and not learning jack shit. Don’t listen to people who tell you cheaters never really learn. When it comes to school, it is more than possible to cheat and learn.
- Turnitin.com actually listens when you tell them not to crawl your site.
- I don’t have a lot of respect for existing teaching methodologies. This is the information age, answers are available on request. Adapt.
- Because I can.
All publicly available software found in this section is released under the GPL and all documentation is released under the FDL
with the following exceptions:
- the questions and excerpts from texts remain the intellectual property of their respective copyright holder. Their use is governed by their respective licenses. Permission was granted by the authors for their work to be distributed in this form.
The course descriptions are blatantly stolen from UMBC’s sites….
Computer Organization & Assembly Language
The purpose of this course is to introduce computer science majors to computing systems below that of a high-level programming language. The material covered can be broadly separated into the categories of assembly language programming and computer organization. Under the heading of assembly language programming students will be introduced to the i386 instruction set, low-level programming, the Linux memory model, as well as the internal workings of compilers, assemblers and linkers. Topics under computer organization include digital logic design (combinational circuits, sequential circuits, finite state machines) and basic computer architecture (system bus, memory hierarchy and input/output devices).
Principles of Programming Languages
This course examines the semantics of programming languages. Topics include: history and fundamentals of programing languages, formal specifications of syntax and semantics; the implementation and execution of programs; and object-oriented, functional, and logic programming. Programming assignments and projects will provide experience in a number of languages.
Data Structures
The course covers data structures and associated algorithms. Relationships among data structures, their utility in various situations, and factorsaffecting their performance in algorithms will be considered. You will learn to analyze the demands of algorithms, how to choose appropriate data structures, and how to integrate data structures into algorithms.
Computer Architecture
This course will study the design of complex computer systems. All parts of a computer system as covered. We will start off with a discussion of computer performance and measurement, instruction set architectures and computer arithmetic. We will discuss the basic control unit of a computer and the design of system datapaths. We will discuss pipelining, the most important topic in CPU design today. Finally, we will move to memory hierarchy and cache design and performance, input/output devices and signalling, and buses. We will finish the course with a brief discussion of multiprocessor systems.
Operating Systems
This class covers the basics of modern computer operating systems, including processes and synchronization, memory management, I/O, file systems, and security / protection.
Compiler Design Principles
The course provides the student with an overview of the issues in the design and construction of translators. The course emphasizes techniques with direct application to construction of compilers; many of the same concepts find application in interpreters.
Automata Theory: regular expressions, finite automata, context free grammars, NFA and DFAs. Deterministic parsing: LL, LR parsers and the lex/yacc (flex/bison) like tools (Jflex, javacc, etc). Semantic analysis: abstract syntax trees, symbol tables, type checking, resource allocation. Additionally covers virtual machines and run-time environments: stacks, heaps, objects, code generation, resources, templates, and optimizations.
Scripting Languages
This course is a study of a class of programming languages and tools known as Scripting Languages. Topics include: writing scripts to control and connect other programs, strengths and weaknesses of interpreted languages, extending scripting languages to include new functionality, embedding functions of a scripting language in other tools, syntax and usage of regular expressions, and the role of open source software. Programming projects in multiple languages will be required. Languages studied may include Unix shell and related tools (sed, awk), Perl, Tcl/Tk, and Python.
Graphical User Interface Programming
The purpose of this course is to provide the student both knowledge and a basic Graphical User Interface, GUI, program that the student has written and can be expanded into various applications the student wants to develop.
Algorithm Design and Analysis
Primary goals: llearn the quantitative methods used in the analysis of algorithms, sharpen their problem solving skills through the design of algorithms, learn to write explanations for the correctness of algorithms and justifications for their performance.
Secondary goal: to familiarize students with a range of fundamental algorithms.
Artificial Intelligence
This course will serve as an introduction to artificial intelligence concepts and techniques. We will use the Lisp programming language as a computational vehicle for exploring the techniques and their application. Specific topics we will cover include the history and philosophy of AI, Lisp, the agent paradigm in AI systems, search, game playing, knowledge representation and reasoning, logical reasoning, uncertain reasoning and Bayes nets, planning, and machine learning. If time permits, we may also briefly touch on multi-agent systems, robotics, perception, and/or natural language processing.
Computer Networks (theory)
This course introduces the fundamentals of data communication and networking, including circuit and
packet switching, network architectures/protocols; local/metropolitan/wide-area networks, OSI protocols; TCP/IP suite; network management; network programming
Network Programming (application)
To learn about network programming and the design and implementation of network-aware software and services. Lectures will be supplemented by numerous practical exercises in socket programming, protocol and system design.
Feed
No comment yet