We will start right away with a look at a Java program. For most of this course all your programs will have the same basic structure, which is reproduced below. This contains all the essential parts of code that must be included in any program. So what does this all mean? public class Simple
Java programs are made up of classes, so the first line says that we are going to define a a class and we have chosen to call it Simple, though of course you could call it another name. (The convention is for class names to start with a capital letter.) The class Simple is everything contained within the outermost set of curly brackets <>. The purpose of the word public is something we will come to later; in the meantime you should always use it.
Classes contain methods, and this line (3) is the start of the method called main. When the computer runs any Java program it starts by looking for the main method and carries out whatever the instructions are within it. All programs must contain one (and only one) main method.
Instructions for what the main method should do are in the form of some Java code which goes in the main method — i.e. within the corresponding set of curly brackets, <> . The //some. part on line 5 is called a comment, a note to yourself or others reading the file which is ignored by the computer. There are other ways to write comments which will be covered soon.
Also note how within the class all the other lines have been indented by four spaces, and within the method everything is indented by a further four spaces. The spaces don’t have any effect in the program — they are just used to make the structure of the program clearer to see at a glance. You may also use blank lines occasionally for clarity as well.
For a budding computer hobbyist, it was the thing to have after you got your first computer. It had a keyboard, a printer that served for all output, and even a means of input and storage, a paper tape reader and punch. The hobby computer revolution started with the MITS 8800, 6-7 years before the IBM-PC came to being. That fact usually brings yawns until you note that this was where Microsoft got their start, beginning with a couple of college drop outs and ending. in amazingly short time all things considered, with an empire that could purchase outright several small countries.
If you got one, for the steep price of about $1000, and then put it together, not a small feat, what you got was a big blue box with lights on the front. If you did your homework correctly, those lights did the right things, and after carefully reading the manual, and inputting several byte instructions, painstakingly flipping each bit of the byte, 8 bits, then hitting enter for each byte, you could actually get the machine to do something sensible with the lights on the front.
The beast was commanded to count on the lights. In binary of course. Next, a lit bit was walked across each of the front panel lights in turn, marquee style. Finally, the game "shoot the duck" was entered, which rotated a light across the row of lights. The object was to hit the switch under it at just the right time, and turn the light off. Miss and you just created another light. Get all the lights out, and, well, you ran out of interesting things to do rapidly. Of course, using a computer stripped of its essence like this is somewhat like buying an engine, starting it up on the garage floor and marveling at it. Obviously more has to happen. In short order, a lot happened. It soon became known that if you bought a little extra memory, and an I/O device, and got hold of a thing called a "Basic interpreter" you could reach the next level in computerdom (and limits on your credit card).
Now, with an ASR-33 clanking away next to the blue box, and that Basic tape, probably borrowed from a friend, you were ready to sign on.
The teletype stops.
The end of the tape falls on the floor.
The machine hammers out a sign-on. Microsoft Basic 1.2. Ready. Ready ! The machine talks ! Those who were there know. It was time for a beer, to show the wife, to cheer. That goddam box spoke to me in English. Now I understand.
The period of time for Classic Basic, as I define it was short, from about 1976 to 1980 at the latest. For a brief time, and the last time for quite a while, home computers were unified in simplicity. You had Basic. It printed and accepted lines in "teletype mode", which is to say a line at a time, resembling a typewriter.
Many programs were passed back and forth then, typed in from magazines, punched in from paper tape, read in from cassette tapes, or from a new, odd device called a "floppy disk". Passed from hand to hand, copied without a care, even from the writers of the programs themselves.
And most of them were games.
 To be fair, the "golden age" of simple line oriented basic started in 1964, with the Dartmouth timeshare system, and continued though minicomputer Basics. In fact, some of the microcomputer Basic games here are recodes of games running on those systems.
These elementary Basic programs are still perhaps the only collection of programs that can honestly be said to run on any computer, anywhere. This property alone makes a museum collection worthwhile.
Original Basic programs from this time are hard to find now, even on the Internet. The media on which they were kept was either lost, destroyed, or more likely, simply belonged to an obsolete computer or media type that was thrown out at the end of its life. The magazines that published them are gone, interest in them has waned.
Perhaps most destructive of all, when advanced graphics began to become common on computers such as the Apple, a lot of them were "converted" to run specifically on those computers. This made the game more interesting by adding graphics, but was the death warrant to the source, as when that computer died, so did the specially modified source for it.
Many of the games were reinvented over and over. Lunar Lander had several versions, later becoming a full graphical game. Artillery was also a popular graphics game. Many early programs were inspiration for later, more complex games. The gaming empire that became Quake started as a humble Apple computer game named "Castle Wolfenstein". And of course, the ultimate irony is that the Microsoft Basic that ran many of these games started an empire of unimaginable wealth.
The creative computing library
After having this site up for a while and getting many letters from you all (thank you), it became apparent that most of the early games came from a magazine that used to be published called "Creative Computing". Further, they had published two volumes of these computer games in book form.
Now since these are way out of print, this might not have helped me a couple years back. However, we live in Internet time, and the Internet has enabled me to find books that I would never have been able to find formerly. Within days I had a copy of it.
The intent was to scan it in and OCR it (convert it automatically to computer readable text). Unfortunately, the programs in the book had been reproduced from listings made on a dot matrix printer, and attempts to OCR it yielded nothing but garbage. However, I was able to obtain a collection of the programs in a archive file meant for CP/M users (probally for Microsoft Basic-80). In this collection I found most every file accounted for. I also found that the games have been modified from the original book form. Some of the modifications were useful, such as printing out instructions for how to play the game, that only appeared in the original book. Some were not so useful, such as printing control characters here and there.
Acting as a computer historian, I "unmodified" the games to create the original games as they appeared in the book.
The Creative computing library serves several important goals for the purposes of the Classic Basic Games page. First, I can verify that these games were original from 1978, the time the collection was published. Second, the original author, David H. Ahl, did research back then as to "who wrote what" program, research that would be hard to reproduce today. Thus, hopefully, the programs are titled with the proper authors.
Readers will note that the "More Basic Computer Games", the sequel to the collection, does not appear here. I have the book, but I have not found more than a very few of the programs in computer source form. I am still looking for the games, or a better OCR program to convert the book form to computer form.
The Creative Computing collection was received from helpful people on the net, and those sources restored to original condition as referenced to the original book. Because the collection was restored from modified sources, it is still possible to find errors or differences from the original program. These are being corrected as I find them.
I have tried to stay as close to the original, as determined by the book, as possible. In some cases, this results in errors that were in the original program being left in. Occasionally, it was necessary to fix errors in the source because the programs would not even load, such as missing quotes, which many Basics will not allow. Some of these might have been printing errors, some may have been original program errors.
Get the book?
The original book is available online:
At the time of this writing, it has 17 copies available, starting at 41 cents, so it is reasonable any way you want it.
In some of the games, it helps decidedly to have the original description from the book, which has details the program does not.
On most of these games, you are going to want to keep the CAPS LOCK key on. Most of them were created on terminals without lower case, and expect responses from the terminal in upper case.
Creative Computing Programs
Kidding. Its another guess the number game .
Changes made to library from book form for GW-Basic and QBasic
After dealing with these programs for quite some time, I decided to wrap up the various fixes into a "modified" form for GW-Basic and QBasic use. These are the most popular in-use versions, and QBasic is (unfortunately) the last Microsoft Basic that can really run these programs.
The list of changes made are in the gqgames.zip folder above, as "changes.txt". The changes made are more in the nature of "cleanups". They fix tricks that took advantage of quirks in the original Microsoft Basic. As a result, the new versions should run on all Microsoft Basic versions, including the original.
There are a few (four at this writing) programs that were still found not to function, these are listed in the changes.txt file. They simply required more time and work than I have available at present.
The versions in this library were tried (admittedly not extensively) and found to work on both GW-Basic and QBasic.
The original creative computer games from the book are in a separate library, and were kept as much original as I could manage. They’ll remain that way for historical purposes.
Where can I get a basic to run these programs?
What happened to original Microsoft Basic?
All of the programs here are made to run on Microsoft Basic for microcomputers, so if you want to run them without modification, you are going to need one of the original versions of Microsoft basic.
The first versions of Microsoft Basic were loaded by paper tape, the Microsoft 4k and 8k (referring to memory size) Basics. Later, Mbasic-80 became the standard Microsoft Basic running under CP/M. All of these versions can still be run using CP/M or Altair simulators.
When the IBM-PC came out, Microsoft created BASICA, which was tied to the early IBM-PC roms, and cannot be run on modern machines, followed by GW-BASIC.
If you wish to simulate the original versions, see:
However, this is a non-trivial task for moderate to expert computer users. The most difficult task is moving the Basic source files to within the simulated disc.
GW-BASIC has excellent backward compatibility with the early Microsoft Basic versions. It behaves as an extended version of those early Basics. Best of all, it is freely available, and still runs in a DOS box on the most advanced Windows (XP, Vista) that are available. You can find it right here:
You can find an online manual for GW-BASIC at:
Note that there are still programs in the collection that will not run on GW-BASIC, see the notes above.
The next version of Microsoft Basic was QBASIC, which "replaced" GW-BASIC. QBASIC is not "exactly" upwards compatible with GW-BASIC, but apparently it is compatible enough. I have been able to run all of the programs in the collection on QBASIC, so the difference between GW-BASIC and QBASIC does not affect them, aside from where I have noted.
You can download Qbasic, for free, from Microsoft:
The next version of Microsoft Basic was Visual Basic. Visual Basic is not compatible with GW-Basic nor QBASIC. It really isn’t a traditional basic at all. You will not be able to run these programs on Visual Basic without extreme modification, very likely a complete rewrite.
How about other Basics?
There are lots of other Basic implementations floating around the network, but you are going to find that compatibility between different Basics was never a strong suit of the language.
I am sure there is a Basic out there that is compatible with the original microcomputer Basics. Unfortunately, that would take some work to find such a Basic. My searches on the Internet have mainly turned up a series of Basics implementations that are more interested in adding graphics or objects to Basic than in backward compatibility. This is one (of the many reasons) I don’t personally program in Basic anymore.
If you want to find such a Basic, I recommend you search for one that advertises good compatability with GW-BASIC or QBASIC.
By the way, I tried BASCOM, which is a companion compiler to GW-BASIC, but it failed on many or most of the programs here.
How this page got started
How did I get started collecting these programs ? Well.
I write programming language interpreters and compilers for fun. The first language processors I wrote, a compiler and an interpreter, were written for Basic, back when most of my code was written in assembly language. Because of the simplicity of Basic, it is usually possible to write a "tiny Basic", a stripped down version of Basic, in a day or so. Writing such a Basic in various languages has been a pastime for me, and is an important benchmark of a new language for me (perhaps the subject of another web page).
Because the machines that ran my earlier Basics became obsolete, I decided that I wished to have a Basic implementation written in my chosen high level language, Pascal, and slowly grew a Basic implementation in my spare time from a tiny basic in the 1980s to the very not-so-tiny IP Basic today (this is a large Basic interpreter that I work on from time to time. It is not finished nor avialable).
I needed some test material to verify that it worked correctly. Well, Basics vary a lot, especially in the details of graphics and sound, so what I needed were some very simple programs that did not do any advanced I/O. It occurred to me that the old basic programs I used to play with when I first started using a computer 20 odd years ago were perfect for that purpose, and so I set out to find some.
After having a great difficulty finding more than a sparse few, it occurred to me that finding these programs would be a lot easier if I placed the results of my search up for general viewing and download, sort of a "stone soup" idea that would get programs to come to me. In typical Internet fashion, this has worked pretty well.
The "real" Sam the computer man
So did I in fact start programming in the garage with an 8800 and a teletype ? Weeeellllllll.
The famous article in Popular Electronics about the Mits 8800 appeared just before I graduated high school in Los Angeles. I read it backwards and forwards, it did not have a lot of information. I later realized that some of the information was wrong, and still later it came out that the computer in the article was a fake, a mockup, even though the 8800 was later a real product.
The truth is that in 1975, getting into computers was a several thousand dollar proposition, and I simply could not afford it. Instead, I learned the basics (pun intended) of computers at the disk drive maker Micropolis. I liked it so much, and still could not afford a "real" computer, that I did what a few hardy (or perhaps insane) people did, and cobbled up an S-100 system from a combination of kits, my own designed boards, scrounged parts and jury rigs. In fact, until 1987, I never owned a computer that was not a collection of parts that I designed or made, including the operating system. On the other hand, because I worked for a disk drive maker, I never really used paper tape or cassette tape extensively, so I missed the "joys" of having to start up my computer that way.
Later, I did in fact get an 8800 and an ASR-33 teletype, in the early 1980’s. By then they were being sold cheap. I finally had the system everyone started the whole thing with. The ASR-33 was a little to big to keep around, but I still have the 8800. I hear they are valuable now, but to me, having one sitting up there on the shelf is priceless.
In 1987 I got tired of being incompatible with everyone else, and put together a PC, yes, again from parts. In fact, aside from the two notebook computers I own, I have never purchased a preassembled computer, because all I do is upgrade parts of my existing ones. I have three computers in various parts of the house used by various members of the family, making five in total, with an 8 address TCP/IP lan running the whole show.
The aims of this short course are to introduce the elements and practicalities of computer programming through the MATLAB mathematical computing environment.
Familiarity with using Windows applications, and with the use of a scientific calculator. No previous programming experience is required.
At the end of the course students should be confident about using MATLAB in their own project work, and should feel more prepared to tackle other procedural languages for computing, such as C++ or Visual Basic.
If you have access to a computer at home, you are recommended to buy a copy of "The student edition of MATLAB" version for Windows. The newest version is release 14, but release 13 would be just as good for this course.
MATLAB & Simulink Student Version Release 14, ISBN 0-9755787-2-3
MATLAB Student Version Release 13, ISBN 0-9672195-9-0
The student edition contains a complete MATLAB programming environment and costs about Ј45. It comes with an introductory guide. There are also a large number of MATLAB books available, one that is recommended is "Essential MATLAB for scientists and engineers" by Brian D. Hahn, Arnold, 2001, ISBN 0-7506524-0-3.
The student edition of MATLAB may be missing the Signal Processing toolbox files needed for lectures 8, 9 and 10. Replacements for the missing functions can be downloaded as a zip file. Unpack the contents of this file into a DSP direcory in your MATLAB installation, then add the DSP directory to the search path (under File/Set Path).
There is a free MATLAB simulator called Octave available at http://www.octave.org/ , however installation of this on Windows requires some computer skills. Also not all of the MATLAB functionality we will use on the course is available in Octave.
We will equip the computers in Room G5 with MATLAB. There should usually be at least one machine available for student use at any time of day. Students are recommended to store their program files on the central server, so that they will not be tied to a specific machine.
A 35 page MATLAB primer by Kermit Sigmon can be downloaded from the course web site. A collection of online resources can be found at: http://www.glue.umd.edu/
nsw/ench250/matlab.htm. The MATLAB home page (from the manufacturers) is at: http://www.mathworks.com/
1.1. Components of a computer
1.2. Working with numbers
1.3. Machine code
1.4. Software hierarchy
2.1. MATLAB Windows
2.2. A First Program
2.3. Expressions, Constants
2.4. Variables and assignment statement
3.1. Basic plotting
3.2. Built in functions
3.3. Generating waveforms
3.4. Sound replay, load and save
4.1. Arguments and return values
4.3. Formatted console input-output
4.4. String handling
5.1. Conditional statements: If, Else, Elseif
5.2. Repetition statements: While, For
6.1. Writing to a text file
6.2. Reading from a text file
6.3. Randomising and sorting a list
6.4. Searching a list
7.1. Attaching buttons to actions
7.2. Getting Input
7.3. Setting Output
8.1. Characterisation of linear systems
8.2. Finite Impulse Response filters
8.3. Infinite Impulse Response filters
8.4. Frequency response
9.1. Filterbank analysis
9.2. Fourier analysis
9.4. Filterbank synthesis
10.1. Fundamental frequency estimation – frequency domain
10.2. Fundamental frequency estimation – time domain
10.3. Formant frequency estimation
Students will be asked to produce a computer program to specification. The aim will be to demonstrate an ability to transform a problem into a design, and a design into an operational program. Assessment will be based on the design and implementation.
Lectures and Practical Classes: Mondays 1400-1600 Wolfson House.
Coursework Set: End of autumn term.
Coursework Due in: After reading week, spring term
Is there an app that allows Basic programming on the iPad? I don’t know how to program using Apple’s SDK. I just was looking for an easy-to-understand language. Any sugge
iMac 17inch Intel core 2 Duo, Mac OS X (10.4.5)
Posted on May 15, 2010 3:11 PM
May 15, 2010 3:13 PM
May 15, 2010 3:15 PM
May 15, 2010 3:17 PM
Dec 14, 2010 3:13 PM
Dec 14, 2010 8:24 PM
Try Luna but you have to know LUA coding.
Oct 16, 2011 10:36 AM
If you want to write an app for the iPad using BASIC and sell it in the App Store then you’re out of luck; you’ll have to learn Cocoa and use the SDK.
However, if you want to write apps in BASIC on your iPad, you can use something like Basic! which is an inexpensive way to do simple BASIC programs.
Another recent app that showed up is techBASIC. Far more robust that Basic! and more expensive ($15). The entire development environment and library of programs reside on your iPad but it’s interpretive BASIC. You have access to the different sensors (accelerometer, magnetometer, and gyroscope) as well as the UI controls on the iPad. You can also access the camera. It’s a universal app so it’ll run on your other IOS devices as well. It showed up on the app store in April 2012 and is from a company called ByteWorks (the same company that did the developer tool suite for the Apple IIgs for us old-timers) – http://www.byteworks.us/Byte_Works/techBASIC.html .
Aug 29, 2012 7:56 AM
As mentioned before techBASIC works great for programming on the iPad/iPhone.
The Byte Works recently added techBASIC App Builder which allows you to take the program you wrote on the iPad, compile it on the Mac and then sell it on the App Store.
May 15, 2013 10:05 AM
Very interesting. I’ve held off buying techBASIC but now that you can compile the code using Xcode and their App Builder . this may be very interesting for those quick, one-off projects. Thanks Mike.
The terms software and program are used interchangeably as they often refer to the same thing in daily usage. Even though they very close to synonymous, there are still minor differences between them should distinguish one from the other. Software is a very broad term that is used to identify programs, data, and other related files that are used to accomplish certain tasks in a computer or any other device that is performs a computing task. In this sense, we can say that even a program is also a software. But in the broader meaning of the word, a program is any set of instructions that are executed by a machine.
As an example, let’s say that you have a software that records names and addresses in a database. The program and the database are parts of the software but the database is not program. It is simply an accessory to the program that makes it more useful.
Software, including programs, is usually stored in storage media like flash memory or hard drives. This makes it easy for the hardware to retrieve the information quickly and automatically. But programs already existed prior to the coining of the word software. Even before computers, programs were already in use. An excellent example would be the punch cards used by Jacquard looms in weaving clot way back in the beginning of the 19th century. It automated the process and the weavers can pick the design by picking the correct punch cards that contain the program.
With these differences in mind, it is quite correct to refer to computer programs as software as they are actually software. Just take not that not all parts of a software package are programs since not all of them contain instructions. Some of them merely contain data or even images that the program uses in its user interface. Lastly, although most programs are now software, not all are.
1. Software is a broad term that covers computer programs as well as the components that it needs to run while program is a term used to describe any code that is used to run a device
2. Programs existed before software
3. Software typically consists of files while programs can be files or even punch cards
Search DifferenceBetween.net :
Email This Post : If you like this article or our site. Please spread the word. Share it with your friends/family.
Ben Joan. “Difference Between Software and Program.” DifferenceBetween.net. December 25, 2010 .
I like this site, pleas keep it up
Thank you so much it my first time here , but it is not my last
now i had a clearer understanding between the differences of the two terms. Because, some just use these terms interchangeably and for those who are new to these fields might think they are just the same. Now I can share some thoughts on what software and programs are.
the site is good but try and put the differences in a tabular form
i like it. but write in two seprate points.
some say the program the software ,but surely they have different task and usage
(d)computer basic parts
I asked my sir they told (b)program;
CAD/CAM is a software but here software not given in options hence program is the ANS
REASON:EVERY PROGRAM IS A SOFTWARE
agar software given in options then it will be will be given preference as it is a more clear term
I tend to differ that database does not have instructions. It is true that database is basically a different set of instructions but whose main purpose is to store, protect and manage access to data.
Just name any database that is not a software, mysql, oracle, dbase, ms access ….
I am studying Web Server’s technical components, and at a place I was confused a lot with programs and software as they are used interchangeably but do different tasks. Now thanks for pointing out the difference so simply.
Excellent example I have totally understood the given topics
Thanks for this site its a very important sites for me
Leave a Response
Written by : Ben Joan. and updated on December 25, 2010
undergraduate degree programs, bachelor of science in computer science with specialization in software technology, bscs
Overview of the Colleges
Bachelor of Science in Computer Science with Specialization in Software Technology
Degree Codes: Program- BSCS Plan- BSCS
The Bachelor of Science in Computer Science major in Software Technology (BSCS) program prepares students to become holistic and competent computer scientists and IT professionalswho are capable of designing effective and efficient technological solutions for nation building. With a good understanding of the foundation theories of Computer Science, the program provides opportunities for students to discover and strategically manage innovative technology to help shape the future of computing. With various research programs and activities to keep pace with the rapid advancement in technology, ST students are engaged in advanced research and product development in various fields. Armed with a good grasp of core computer science concepts and abreast with current advances in technology, ST graduates not only produce software solutions that are relevant to the needs of the community, but also exemplify leadership qualities in order to set and pursue future directions for the computing industry and research.
The program also provides the necessary background for students to pursue graduate studies to further their knowledge and skills in conducting advanced research in computing and technology. Through the ladderized Master of Science in Computer Science program, qualified ST students can earn two degrees (BSCS and MSCS) in a span of five years, thereby reinforcing the universityвЂ™s and collegeвЂ™s mission of producing more graduates who are highly competent and qualified to work in this globally-competitive environment.
Total number of units required (academic and non-academic)*:
Total number of Academic units: 184
Total number of non-academic units: 12.5
Total number of terms: 12 terms
* Applicable to curriculum of Academic Year 2011-2012 only. Subject to revisions in the future without prior notice
Choices for Specialized tracks:
Intelligent Systems Track: Natural Language Processing, Distributed Artificial Intelligence, User Modeling, Empathic Computing, Machine Learning, Neural Networks & Fuzzy Logic
Games Development Track: Computer Graphics, Game Design, Game Development, 3D Modelling
Security and Pattern Recognition Track: Cryptography, Ethical Hacking, Digital Image Processing, Modelling and Simulation
Software Engineering Track: Project Management, Knowledge Management, Professional Software Development (tie-up with industry), Technology and Business Planning
Center for Empathic Human-Computer Interactions (CEHCI)
DLSU Game Development Lab (DGDL)
Center for Language Technologies (CeLT) –
Netcentric Computing Lab
Introduction to Computer Programming 1 (COMPRO1)
This course covers the fundamentals of logic formulation and computer programming using the C programming language. It serves as a foundation for future courses that the students will encounter throughout the Computer Science program. This course is coupled with a lab component.
This course provides an overview of computers, number systems, data types and representations, digital logic systems, assembly and machine language, compilers and translators, operating systems, internet working, human computer interactions, and intelligent systems.
This is a one-term introductory course in Discrete Mathematics. Topics include, but not limited to: prepositional and predicate logic, set theory, relations and functions, integers and algorithms, proof rules and program correctness, mathematical reasoning, recurrences.
This advanced course for computer programming in C covers the representation and manipulation of C data structures. This course, like COMPRO1, serves as a foundation for future courses that the students will encounter throughout the Computer Science program. This course is coupled with a lab component.
This course provides an overview of software engineering as a discipline concerned with the application of theory, knowledge, and practice for effectively and efficiently building software systems. It introduces the students to the fundamental principles and methodologies of software engineering.В It focuses on the concepts and principles of software requirements engineering, its tools, techniques, and methods for modeling software systems. Various approaches to requirements analysis and review activities are examined.
This course introduces students to the theories, processes and skills needed in the development of web applications. It provides an overview of the various technologies used in designing and implementing web-based systems. Advanced topics are also included to prepare students in realizing useful web applications that utilize up-to-date industry tools.
ST Specialization Courses
Introduction to Data Structure and Algorithm (DASALGO)
This is a introductory course in Data Structures and Algorithms. Topics include, but not limited to: representation and operations on linear and non-linear data structures (arrays, lists, stacks, queues, graphs, trees, heaps), applications of data structures, types of file organizations, hashing, and analysis of algorithms.
Object-oriented Programming using Java (OBJECTP)
This course provides the students with the fundamental understanding of object-oriented technology.В It also introduces the different concepts that are commonly associated with object-oriented programming such as threading, event-driven programming, etc. using Java as the programming language.
Advanced Discrete Structures (ADVDISC)
This course provides students with advanced theories on discrete structures and linear algebra. It covers topics on methods of proof, inductions, equivalence relations, solutions of equations, as well as matrices, vector spaces, and linear transformations.
Introduction to Databases (INTRODB)
The course covers the basic theories behind databases, data models and database analysis and design. The course will tackle different data models but will concentrate mainly on relational databases, being the most commonly used today.В The course introduces learners to concepts on conceptual design of databases using the concepts of the Entity-Relationship (ER) model and normalization, relational model, relational database design and database query languages.
This course introduces the students to the basic concepts and techniques in the area of artificial intelligence. Concepts and techniques include knowledge representations, searching and problem solving. Furthermore, the course is designed to expose undergraduate students to functional and symbolic programming and use of an expert system shell.
This course provides an overview of the principles underlying number systems and representation, logic gates, Boolean algebra, simplification of Boolean functions, and basic operation of combinational and sequential logic circuits.
This course introduces the student to the basic concepts of computer networking. The seven layered ISO-OSI reference model for computer networks, using TCP/IP and other current networking standards as an example.
Automata Theory, Formal Languages and Computational Complexity (THEOCOM)
This course concentrates on the theoretical aspect of Computer Science, which has evolved from three disciplines: mathematics, engineering and linguistics.В
This course provides an overview of Instruction Set Architecture through assembly language programming and the interaction between basic computer system components, namely the CPU, Memory, and I/O.
This course is on managing technology and innovation for survival and growth in challenging times. Students will learn how to develop corporate strategies and understand current practices in innovation management. They will also devise innovation approaches that integrate design, marketing and production perspectives, and combine technology and business models.
Introduction to Operating Systems (OPERSYS)
This is an introductory course to operating system design and implementation. This course will cover basic algorithms and procedures to CPU scheduling and memory management. This course will also introduce students to basic concepts of writing concurrent processes and basic techniques to synchronize processes.
This is an advanced programming course emphasizing object-oriented design. Design patterns are recurring solutions in designing systems and are considered simple yet elegant solutions which have been proven effective over time. The applications of these design patterns allow the creation of systems that are more scalable, reliable and effective.
This course covers topics in advanced statistics and probability, including joint probability distribution, F-distribution, sampling distribution, chi-square distribution, and analysis of variance. Topics on numerical methods are also introduced, including continuous and discrete functions, non-linear equations, quadratic and cubic functions, interpolation, and regression techniques.
This course is about major advanced concepts in the field of databases. Being an advanced course, it will involve a considerable amount of research work as embodied by the projects required to complete the course.
This course introduces the theories, formal techniques, design, and implementation considerations in the construction of interpreters, compilers, and language translators in general.
The aim of this course is to prepare ST students for practicum and a career in software development by delivering actual knowledge and skills currently required by the industry. This is achieved through lectures from IT industry practitioners on the current trends and organizational practices that lead to producing software that is robust, reliable and attractive to use, often co-operating with others as part of a development team.
This course covers the design and analysis of different algorithms under various design principles and techniques making use of different data structures.
This course introduces the students to the concepts and principles surrounding secure coding practices and software security assessment. Students will be taught how to properly assess threats that may present a risk to software, web applications in particular, and how to mitigate these threats by incorporating appropriate controls through the software development life cycle. The course will also cover the methodologies and tools used to test existing web applications.
This course is the venue for Software Technology upperclassmen to apply and practice the Computer Science concepts and theories they have learned, by working in an actual company environment.
Advanced Technologies (STADTEC)
This course aims to introduce students to advanced topics in computing in order to build software systems that are fast and efficient in utilizing available resources.
This course will introduce students to the practices of a full spectrum of software development approaches and methods, from the more plan-driven, documentation-intensive approaches of PSP, TSP, and CMMI, to the more agile methods of XP and Scrum.
ST Elective Courses
Software Technology Elective 1 to 4 (STELEC1 to 4)
Various courses allowing the students to specialize in a particular field of interest connected with software technology; choices of electives vary such as intelligent systems track, games development track, security and pattern recognition track, software engineering track, mobile computing, network administration and management, multimedia and information retrieval, and design patterns.
This course covers Special course under CCS; choice of electives vary such as technopreneurship, interactive storytelling, business management, professional software development, foreign languages, and introduction to accounting.
Software Technology Research Methods (STRESME)
A course on methods of research where students learn the steps on how to do a research project; a thesis proposal should be produced at the end of the course.
The undergraduate thesis is a non-classroom learning environment in which students may apply the skills, methods, and theories learned throughout their stay in the College of Computer Studies. THSST-1 involves the following activities: (a) search and review of related literature. (b) investigation of existing solutions to the identified problem(s) in STRESME. (c) evaluation of existing solutions. (d) application of methods and theories in the design of a solution to the problem(s).
Entry into the THSST-2 stage requires a successful completion of all THSST-1 requirements and prerequisite courses as specified in the appropriate ST flowchart. This stage involves the implementation of major system functions in the target programming language and/or environment. The components are expected to perform the following activities: (a) development and implementation of the solution identified in THSST-1. (b) documentation of development and implementation issues. (c) regular consultation with the thesis adviser. (d) submission of a 6-page technical paper to be reviewed by the panelists and if accepted, participation in a public presentation in a duly organized symposium or congress by the College &/or University, or local/national conferences.
During this stage, the proponents perform the following activities: (a) development of minor system functions (i.e online help, system enhancements). (b) system testing and analysis of test results. (c) documentation of testing activities and test results. (d) finalizing of the thesis deliverables (i.e. main document, technical manual, userвЂ™s manual, software). (e) preparation for the thesis defense.
This course will discuss introductory topics on computer graphics including modeling, viewing, projection, and viewport transformations; simple illumination models, and parametric curves/surfaces.
Course Descriptions (ST Electives)
Introduction to 3D Computer Graphics and Animation (3DMODEL)
This course will discuss introductory topics on 3D computer graphics including modeling, material properties, lights, cameras, animation and rendering.
Introduction to Cryptography (CRYPTOG)
A course that outlines the different schemes involved in making communication systems as well as special purpose systems secure. The course is divided into five parts ranging from the mathematical background of the available algorithms up to real world applications.В Also covered are the legal and political issues governing the research, development and implementation of the cryptographic schemes.
Introduction to Distributed Artificial Intelligence (DISTRAI)
This course provides advanced discussions on the area of artificial intelligence (AI), specifically, on the basic concepts and approaches in distributed artificial intelligence (DAI).
Distributed Computing (DISTCOM)
This is an introductory course to Distributed Computing. It introduces students to concurrent/parallel programming and synchronization problems to effectively design and implement applications for multi-core systems. This course will also give an introductory to network and socket programming and later introduce students to different design and implementation of Distributed System and be able to design one on their own.
Empathic Computing (EMPATHY)
EMPATHY presents an emerging, forefront research area of empathic computing. It covers a wide-breadth of computer science disciplines, including digital signal processing, affective user modeling, ambient intelligence, sensor-rich and ubiquitous computing, and adaptive user interfaces, utilizing, but not limited to machine and statistical learning as tools for problem solving.
This course focuses on guiding students learn the different techniques and technologies used for programming interactive games and virtual reality simulations. Students will use the knowledge in developing their own 2D or 3D game using the C/C++ programming language. The course focuses primarily on programming aspects including event loops and execution threads, rendering and animation in 3D, terrain/background representation, polygonal models, texturing, collision detection and physically-based modeling, game Artificial Intelligence, and multi-user games and networking.
Introduction to Computer Graphics (GRAPHIX)
This course will discuss introductory topics on computer graphics including modeling, viewing, projection, and viewport transformations; simple illumination models, and parametric curves/surfaces.
In this course, we will look into the technical capabilities and challenges of developing for mobile platforms for practical usage in the IT industry. The course would also look into ways of integrating such devices into the industry supply chain and the issues it raises.
Project Management (STPRJMA)
This course is designed for Software Technology students to have a better understanding of project management. The students will be trained to be better project managers. They will do an actual project and define its scope, cost, and the time required to accomplish it using MS Project. They will also be given cases to analyze and evaluate. Discussions and readings would cover the basic definitions and concepts in project management and its knowledge areas such as project integration management, scope management, time management, cost management, quality management, human resource management, communication management, risk management, and procurement management.
Petit Computer Brings BASIC Programming To Nintendo 3DS
There is a little-known but clearly successful app called Petit Computer for the Nintendo DSi (It’s available on the 3DS eShop, too) from developers SmileBoom. And now, there will soon be a “Mark III” (Tentative title) for the series. It’s essentially a programming tool that lets you create very basic programs using BASIC.
3DS owners who download the software and understand BASIC will be able to program pretty much anything they can think of within the confines of the application. The original, if you check out the video in the eShop link above, shows that it’s possible to generate basic RPGs, graph charts and so forth. Mark III will up the ante by adding some more requested functions. Namely, it’ll add:
Up to 999, 999 lines of code
Support for extended Circle Pad interactions
Color-coding for words
Program return indicators
Up to 4 source multi-editing
A copy-paste function to help with the above
Standard painting features (Which means not having to fiddle with knowing exactly what shade #015E is)
More editing options, like undo and multi-line copy functions
Input device support for the microphone, cameras, sensors etc.
Server work and control capabilities
A direct hook link to the DETUNE sound software application
It’s also hinted that there may be ways to code to make it possible to add 3D effects, leveraging on the 3DS’ main selling point, though details on this haven’t been officially announced yet.
SmileBoom did say they intend to bring the program to the West, since BASIC programming is pretty easy to swap over. There’s no current release date for the software beyond a “Coming soon”. We’ll keep you posted once it’s announced.
Working on a computer is better than on a 3ds.
I mean coding without a keyboard is a little… hard…
You’ve never used Petit Computer then lol
I’m curious then, as I haven’t used it either. How does Petit Computer make it easy to code despite not having access to the things you can take advantage from with a desktop or laptop? Including basic things like a full-sized keyboard?
It has a fully functional virtual keyboard that works exactly like a normal keyboard.
i know that you have a virtual keyboard but being a programmer that started on a commodore 64 with a real keyboard i find v-keyboard still a little too slow for typing code. Sure it can be a good way to learn but not much more…
Someone made an app for the original that allowed you to type code on your computer and send it to the 3DS app via a QR code.
Whaaat, that’s amazing!
Well that’s kind of cool I guess… Cant say that that interests me but I’m glad it exists. Just imagine all the people who may get into programming based on some app they decided to try for 3DS.
yeah, it sounds cool, but i doubt i’ll personally ever have the dedication to learn and write a program for it.
Dammit where the hell is KORGMD01?!
KORGMD01 doesn’t exist.
KORG M01D on the other hand is on my Japanese 3DS, it got delayed for them too… Given that the application is more or less in English from the get go and assumes you have some knowledge (manual in Japanese aside), I have no idea why it is taking so long to release where you are at.
OH, is it decent?
Yep it’s good, though to be honest I never used the other versions of KORG like the DS one or PC ones to have any real sense of perspective, a music friend of mine seems to like the DS version and I see a lot of potential to create great stuff (there are some nice demo tunes included to make you feel jealous – including the modest three drum beat you hear as you start the thing up).
I can try to tackle more specific questions if you want, given that it’s in English, it’s one game I can describe fully without much practice.
10 PRINT “Very interesting”
Now I’ll let someone else close the infinite loop.
Sorry, I couldn't resist.
“Basic” nothing. Someone actually recreated a couple of screens’ worth of Megaman using the DSi version.
999,999 LOC. Seriously? Would someone need this feature? I mean, if handling source files from 20k+ LOC in a computer gets troublesome I can’t fathom a 3DS doing it
Other than that sounds interesting, maybe I’ll give it a try
This would potentially be very cool as a teaching tool..
It’s okay, I guess.
I can do simple coding and I think there would be in-game tutorials, but I doubt that I would be motivated enough to do games with that. I think it is better to just think of it as programming learning tool.
Looks really cool. It could be fun to code some basic stuff in, maybe work together with other people for bigger projects. Not to mention playing other people’s projects.
I bought Petit Computer to see if I could learn something and I did….and it was…super basic 🙁
I wonder if previous owners will get to upgrade at a lesser cost or something…
This is super nifty and I’m super proud that this exists.