Introduction to Information Technology
Allikas: Lambda
...history, trends, basics, paradigms, business.
Course code: ITX0025
Teacher: Endre Domiczi
Contact: emddom@gmail.com (mailto:emddom@gmail.com?subject=itx0025) Subject should contain the string "itx0025"
Tel: 53485178 (SMS preferred)
Link: http://www.lambda.ee/index/Introduction_to_Information_Technology or http://www.lambda.ee/index/itx0025
Link to NEW site https://sites.google.com/site/itx0025/
Link to last year Estonian version http://www.lambda.ee/index/Sissejuhatus_informaatikasse or http://www.lambda.ee/index/itv0010
Link to other course kept by EDo http://www.lambda.ee/index.php/Itx8065 i.e. http://www.lambda.ee/index.php/Software_Development_and_System_Programming
Latest News
- Please go to new location by clicking here (https://sites.google.com/site/itx0025/lambda-layout#TOC-Latest-News)
Lecture: Amount, Time and Location, Scores
- Please go to new location by clicking here (https://sites.google.com/site/itx0025/lambda-layout#TOC-Lecture:-Amount-Time-and-Location-S)
Exam, Preparation, Evaluation, Results
- Please go to new location by clicking here (https://sites.google.com/site/itx0025/lambda-layout#TOC-Exam-Preparation-Evaluation-Results)
Student Presentations & Rewards
- Student groups for presentation: please click here (mailto:edo@iki.fi?subject=itx0025_homework_group) for signing up.
- The email should contain for each group member the name, student number and email-address. Please don't touch the subject line (or only add to it)
- group size is 1-3 persons
- presentation time is min. 10 minutes, max. 15 minutes (maybe 20).
- topics can be selected from materials on this page that are prefixed with "Additionally:" or you can come up with your own, but then you should agree on it in advance with me
- choose a topic that you understand; you should be able to answer some questions related to the presentation
- do not read only, but present
- Valuable comments during lectures will also be rewarded
- E.g. <Solution of Robot-problem>: by <X Y> (5 points)
- Student presentations
- E.g. <PQ> & <R S>: <Presentation Title> (both of them receive 20 points)
Course goals
- Please go to new location by clicking here (https://sites.google.com/site/itx0025/lambda-layout#TOC-Course-goals)
Summary
Historical and conceptual overview of informatics as a domain of business, science and engineering. Early history of the domain, scientific and technical development at the beginning of the last century, the rapid development during the mid-century and the even faster paved changes in the scientific-, business and technological aspects during the last decades.
Main programming paradigms (imperative, logical, functional, object-oriented) as well as paradigms in system architecture (mainframes, personal computers, client-server systems, distributed and multi-layer systems).
The birth and disappearance of technologies, companies; trends, principles, specific events.
Lecture plan and materials
The course DOESN’T HAVE a single course-book. As follows, material for each lecture is given separately.
NB! Materials for not-yet-delivered lectures are preliminary: they are changed, supplemented during the course.
Introduction : Basics of Computers and Programming.
- Lecture material: Intro2it_1_edo.PPT, Intro2it_1_edo.pdf.
Early History : Industrialization. Theoretical foundations. Logic.
- Lecture material: intro2it_2_edo.ppt (http://www.cs.hut.fi/~domiczi/itx0025/intro2it_2_edo.ppt), Intro2it_2_edo.pdf.
- Additionally:
- Paul Graham: What you'll wish you'd known (http://www.paulgraham.com/hs.html)
- A collection of web-based logic programs offering a number of logical functions by Christian Gottschall :
- overview (http://logik.phl.univie.ac.at/~chris/gateway/formular-uk.html), formulae of classical two-valued propositional logic (http://logik.phl.univie.ac.at/~chris/gateway/formular-uk-zentral.html)).
- A history of computers (http://www.maxmon.com/history.htm) from the beginnings - ~1945:
- Computer History (http://devel-rok.informatik.hu-berlin.de/svn/TI2/2006/folien/pdf/eng_ca02.pdf) - lecture by Prof. Dr. Miroslaw Malek
- read and also play with the : Data Representations Applet (originally written by David Eck) (http://math.hws.edu/TMCM/java/DataReps/index.html).
- Computer Origins and the Defense of the Faith (http://www.asa3.org/asa/PSCF/2004/PSCF9-04Montgomery.pdf) by John Warwick Montgomery
"Medieval" history : from WWII till beginning of the 60's. Computers and programming. Languages and architectures. Integrated circuits.
- Lecture material: intro2it_3_edo.ppt (http://www.cs.hut.fi/~domiczi/itx0025/intro2it_3_edo.ppt), Intro2it_3_edo.pdf.
- Additionally:
- Paul Graham: Undergraduation (http://www.paulgraham.com/college.html) plus: more advice for undergrads (http://www.paulgraham.com/undergrad2.html)
- Eck intro lab: data reps (http://math.hws.edu/TMCM/java/labs/DataRepsLab.html).
- Eck lab: Turing machines (http://math.hws.edu/TMCM/java/labs/xTuringMachineLab.html).
- Earlier machines:
- Example of an important analog computer: Norden bombsight (http://en.wikipedia.org/wiki/Norden_bombsight)
- English cryptography saga: Colossus (http://en.wikipedia.org/wiki/Colossus_computer), Turing (http://en.wikipedia.org/wiki/Alan_Turing), Germans' Enigma (http://en.wikipedia.org/wiki/Enigma_machine) and Lorenz SZ 40 (http://en.wikipedia.org/wiki/Lorenz_SZ_40/42)
- First digital computers working with electricity:
- Zuse electro-mechanical computer (http://www.epemag.com/zuse/), compare with this site (http://www.zib.de/zuse/English_Version/index.html).
- Atanasoff's electronic computer (http://www.computermuseum.li/Testpage/ABC-Computer-1940.htm)
- Mark I (http://en.wikipedia.org/wiki/Harvard_Mark_I): first programmable electro-mechanical computer.
- Read also: Chronology of Personal Computers (http://www.islandnet.com/~kpolsson/comphist/) by Ken Polsson
"Medieval" history (continued): 60's, beginning of the 70's. Minicomputers and microprocessors.
- Lecture material: intro2it_4_edo.ppt (http://www.cs.hut.fi/~domiczi/itx0025/intro2it_4_edo.ppt), Intro2it_4_edo.pdf.
- Additionally:
- Continuation to question "what to do in high school?". Joel Spolsky: Advice for Computer Science College Students (http://www.joelonsoftware.com/articles/CollegeAdvice.html)
- PDP-1 Restoration Project (http://www.computerhistory.org/pdp-1/index.php)
- Spacewar: first graphical computer game (http://pdp-1.org/Wiki/Spacewar)
- Atari muuseum (http://www.atarimuseum.com/)
- mechanical pong (http://www.cyberniklas.de/pongmechanik/indexen.html)
- SRI international (http://en.wikipedia.org/wiki/SRI_International)
- Bell labs (http://en.wikipedia.org/wiki/Bell_Labs)
"Medieval" history (continued): 70ś . MicroComputers, Personal Computers.
- Lecture material: Intro2it_5_edo.pdf.
- Additionally:
- Colossal Cave (adventure) (http://www.rickadams.org/adventure/) textual adventure game
- Magnavox odyssey (http://www.pong-story.com/odyssey.htm)
Recent history: 80's till today. IBM PC, Macintosh, new and old operating systems. Special computers, workstations, essential software. Saga summary
- Lecture material: intro2it_6_edo.PPT.
- Additionally: Apple Macintoshi reklaamfilm:
- Small mpeg variant (http://cs.ttu.ee/kursused/itv0010/various/1984.mpeg)
- Large quicktime variant (http://cs.ttu.ee/kursused/itv0010/various/1984.mov)
- Additionally: Apple Macintoshi reklaamfilm:
Basic principles of computers, programming languages.
- Lecture material: Intro2it_7_edo.ppt.
- Additionally:
- Get a bit acquainted with the following sites:
- http://www.mkdata.dk/click/
- Tom's hardware guide (http://www.tomshardware.com/)
- D.Eck, parts of this: Eck labs (http://math.hws.edu/TMCM/java/index.html) (can take from here as separate applications (http://math.hws.edu/TMCM/java/DownloadingAndInfo.html)). NB! Read on your own, try and do 1-2 exercises from each part
- Logic circuits (http://math.hws.edu/TMCM/java/labs/xLogicCircuitsLab1.html)
- Memory circuits (http://math.hws.edu/TMCM/java/labs/xLogicCircuitsLab2.html)
- Get a bit acquainted with the following sites:
Programming languages continued. Operating Systems.
- Lecture material: Intro2it_8_edo.ppt.
- Additionally: Eck labs cont'd: Read on your own, try and do 1-2 exercises from each part:
- xComputer (http://math.hws.edu/TMCM/java/labs/xComputerLab1.html)
- xComputer assembly language (http://math.hws.edu/TMCM/java/labs/xComputerLab2.html)
- Obligatory reading (
- Obligatory is the first 1/4 of article In the Beginning was the Command Line
- Suggested reading:
- The Art of Unix Programming (http://www.faqs.org/docs/artu/)
- Computer languages history (http://www.levenez.com/lang/)
- About 2500 Computer Languages, Past and Present (http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm)
- Computer language shootout (http://shootout.alioth.debian.org/)
- Minix: the mini-Unix that was the inspiration of Linux (http://www.minix3.org/)
- Unix history (http://www.levenez.com/unix/)
Information Systems
- Based on:
- Bennett, McRobb and Farmer:
- Object Oriented Systems Analysis and Design Using UML, (3rd Edition), McGraw Hill, 2005.
- Chapters 1-3
Object-Orientation, Modeling in UML
- Based on:
- Bennett, McRobb and Farmer:
- Object Oriented Systems Analysis and Design Using UML, (3rd Edition), McGraw Hill, 2005.
- Chapters 4-5
Software architecture and paradigms.
- Lecture material: SW Arch & Paradigms.
- Additionally: Become acquainted with:
Examples of exams from previous year (to practice)
NB!
- The questions will be different
- More difficult tasks give you more points than the easy ones:: most difficult 10-15 points, easy ones: 6-9 points. Altogether 100 points
(N)obligatory textbooks
To pass the course one must read the the following material. NB! The amount of obligatory material may be increased : follow the list
- DIY material (obligatory)
- The Definitive Guide to How Computers Do Math: Featuring the Virtual DIY Calculator by Clive Maxfield and Alvin Brown (http://www.bookfinder.com/dir/i/The_Definitive_Guide_to_How_Computers_Do_Math-Featuring_the_Virtual_DIY/0471741965/)
- "DIY Calculator site" (http://www.diycalculator.com/index.shtml)
- On the DIY downloadpage (http://www.diycalculator.com/downloads.shtml) you will find the DIY Calculator's installer (http://www.diycalculator.com/progs/setup.zip)
- The Official DIY Calculator Data Booka (http://www.diycalculator.com/area51/databook.zip) 202 page (starting from 1 :-) PDF file
- Instructions for various Labs (http://www.diycalculator.com/popup-hm-demos.shtml)
- Workbench Lab instructions (http://www.diycalculator.com/docs/demo-workbench-101.pdf)
- The Definitive Guide to How Computers Do Math: Featuring the Virtual DIY Calculator by Clive Maxfield and Alvin Brown (http://www.bookfinder.com/dir/i/The_Definitive_Guide_to_How_Computers_Do_Math-Featuring_the_Virtual_DIY/0471741965/)
- Reeborg the robot as Lab exercise
(André Roberge, © 2004, 2005, 2006)- Learn programming with Reeborg (https://www.cs.indiana.edu/cgi-pub/chaynes/a201/rurple/en/lessons_toc.htm)
- What is RUR-PLE (http://rur-ple.sourceforge.net/en/help.htm#RUR-PLE)
- Learning Python: Child's Play with RUR-PLE! (http://rur-ple.sourceforge.net/en/rur.htm)
- [image:
]
- History from the Beginnings - 1981 (worth a look, compulsory material: lecture): Bebop BYTES Back (http://www.maxmon.com/history.htm)
- History 1945-1990 (worth a look, compulsory material: lecture): The Computer Museum (http://www.computerhistory.org/timeline/).
- History 1947-1999 (http://cs.ttu.ee/kursused/itv0010/elcomphist/index.htm) (it's not directly obligatory): author Ken Polsson.
- About Operating Systems in a broader context: The first 1/4 of the article is obligatory In the Beginning was the Command Line
- Obligatory articles from IT business and management. Not necessary to "learn" them, enough to have a fast read through:
- Paul Graham: How to start a startup? (http://www.paulgraham.com/start.html)
- Paul Graham: Great hackers (http://www.paulgraham.com/gh.html)
- Paul Graham: Why smart people have bad ideas (http://www.paulgraham.com/bronze.html)
- Joel Spolsky: Cover: http://www.joelonsoftware.com/
- Joel Spolsky: Strategy: http://www.joelonsoftware.com/articles/fog0000000074.html
- Joel Spolsky: Functional spec:Painless Functional Specifications (1. part): http://www.joelonsoftware.com/articles/fog0000000036.html
- Joel Spolsky: IT Work Arrangements : 12 steps: http://www.joelonsoftware.com/articles/fog0000000043.html
- Joel Spolsky: Project Planning: Painless Software Schedules: http://www.joelonsoftware.com/articles/fog0000000245.html
- Greenspun: Read only the Table of Contents, not needed to read the complete book!: http://philip.greenspun.com/panda/
- Greenspun: Future Chapter: http://philip.greenspun.com/panda/future
- Greenspun: Humor: http://philip.greenspun.com/careers/
Very useful material: read it!
- Read Daily: http://www.news.com
- Read Daily: http://www.slashdot.org
- Software management, about twice a month: http://www.joelonsoftware.com
- Paul Grahami essays, new ones less often (http://www.paulgraham.com/articles.html).
- Jargon lexikon and the New Hacker's Dictionary (http://catb.org/~esr/jargon).
- The cathedral and Bazaar (http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/)
- Gnu manifests (http://www.gnu.org/philosophy/)
- David Eck: Labs and Applets for "The Most Complex Machine" (http://math.hws.edu/TMCM/java/index.html).
If it all seems too easy, then:
- Read most of Paul Graham's essays (http://www.paulgraham.com/articles.html).
- Read the book of Steven Raymondi (NB! difficult for beginners :-) The Art of Unix Programming (http://www.faqs.org/docs/artu/)
- Read through, very funny and educative book: Philip Greenspuni Guide to Web Publishing (http://philip.greenspun.com/panda/). If you feel like, find out what else Greenspun does (can read another book) and how this famous company was born and disappeared (http://www.waxy.org/random/arsdigita/).
- Watch, what you can get from the net (hopefully): Semantic Web (http://www.w3.org/2001/sw/Activity)
- Read carefully (not at all obligatory and doesn't suit beginners) and also do the exercises: Computer Systems: a programmers perspective (http://cs.ttu.ee/kursused/itv0010/various/csapp.beta.11.16.pdf) draft version.
- Read essays by Daniel Dennett (http://ase.tufts.edu/cogstud/incpages/publctns.shtml)
- Try to install Gandalf,an automated theorem proving, artificial intelligence system Gandalf (http://www.ttu.ee/it/gandalf/) (Unix or Windows+cygwin (http://www.cygwin.com/)) and play around with it. Try also Otter (http://www-unix.mcs.anl.gov/AR/otter/) (easier, but more classic system). How, read from here (http://www-unix.mcs.anl.gov/AR/otter/) and from here (http://www.cs.miami.edu/%7Etptp/OverviewOfATP.html) and from here (http://www-2.cs.cmu.edu/%7Efp/courses/atp/handouts.html).
- Tee omal käel ette läbi terve Programmeerimise põhikursus (peaasi: tee kõik harjutustööd: programmeerimise õppimiseks ainus viis on palju programmeerida :-)
- Learn to program in assembler (http://webster.cs.ucr.edu/) (fairly unpractical skill, but pretty educative :-)

