sort by: Relevancy | Title try advanced search for more options
Lasers are essential to an incredibly large number of applications. Today, they are used in bar code readers, compact discs, medicine, communications, sensors, materials processing, computer printers, data processing, 3D-imaging, spectroscopy, navigation, non-destructive testing, chemical processing, color copiers, laser "shows", and in the military. There is hardly a field untouched by the laser. But what exactly is so unique about lasers...more
Topics include: Advanced memory management features of C and C++; the differences between imperative and object-oriented paradigms; the functional paradigm (using LISP) and concurrent programming (using C and C++); brief survey of other modern languages such as Python, Objective C, and C#. Prerequisites: Programming and problem solving at the Programming Abstractions level. Prospective students should know a reasonable amount of C++. You ...more
This is the introductory course for computer science at UNSW.This course consists of three strands: programming, systems, and general computer-science literacy.The programming strand is further divided into two parts. For the first half of the course we cover small scale programming, in the second half we look at how to effectively use teams to produce more substantial software.In the systems strand we will look at how computers work. Conc...more
Carnegie Mellon University's 2010 Dickson Prize awardee is chemist and materials scientist Dr. David A. Tirrell, who is world-renowned for his innovative discoveries in polymer chemistry and macromolecular engineering. In his early research, Tirrell made important macromolecular discoveries that have made the development of "smart" materials -- those that respond to external cues like light, pH or temperature -- possible. Most recently, an...more
We had a gap at the end of Lecture 12 so Richard gives an unplanned and impromptu talk about some of the contributions of the amazing thinker Alan Turing. So much to say, so little time, such fast talking. We chat about 3 different major contributions he made to the world - his decryption work during WWII and the Engima Machine; his abstract model of a computer (the Turing Machine) and what things can be effectively "computed"; and finall...more
Car-Cdr Recursion Problem that Returns the Sum of Every Element in a List of Integers, How Scheme Checks Type During Run-Time Rather than Compilation, Recursive Implementation of the Fibonacci Function in Scheme, Example that Illustrates Runtime Error/Type Checking Vs. Compile-Time Error/Type Checking, Writing a Recursive Flatten Function that Removes All the Intervening Parentheses from a List, Using a Cond Structure to Branch Over the Va...more
More Detail about Activation Records - Layout of Memory During a Function Call, How the Return Address of a Function is Stored on the Stack, Example Showing How an Activation Record is Constructed on the Stack, Setting Up Function Parameters on the Stack, Using the Call Instruction to Jump to the Function, Cleaning Up at the End of a Function and Using the RET Instruction and the Saved Return Address to Return to the Original Function, Gen...more
In this lecture, Professor Freedman considers the various barbarian kingdoms that replaced the Western Roman Empire. Oringinally the Roman reaction to these invaders had been to accommodate them, often recruiting them for the Roman army and settling them on Roman land. Now, however, they were the rulers of the previously Roman lands of the West. These tribes included the Ostrogoths and Visigoths in Italy, the Franks in Gaul, and the Vandal...more
We start by discussing the skater guy from last lecture. intrinsic vs extrinsic motivation. deep and surface learning. class reps revisited briefly. what can go wrong. what courses of action are open to you to deal with things going wrong in your code? we look at 4 general strategies and discuss their relative strengths and weaknesses. assert as a way of documenting assumptions and of checking them. contracts. who is to blame. what can y...more
Principles of Good Software Engineering for Managing Large Amounts of Data, Principles of Design, The Collection Hierarchy, Useful Methods of Collection, The FlyTunes Example Program - An Online Music Store, Defining the Song Class, Defining the Album Class, Seeing the Program Run, Considering the Data Structures Needed, Reusing Data - Shallow Copy vs. Deep Copy, The FlyTunesStore Program Code
Guest Lecturer: Sasha Rush, Haskell History, Safeguards in Haskell that Avoid Runtime Errors, Expressive Functions in Haskell, Speed of Haskell, Haskell Fibonacci Sequence in One Line Using Lazy Evaluation, How Lazy Evaluation Allows if Statements, Haskell Types, User-defined Data Types, Representing the Null Type in Haskell, List Types, Strings as Lists and Recursive Type Definitions, List Functions and Pattern Matching, Type Variables an...more
Detecting fixed points in von neumann's simple random number generator. data structure revision. using trees. implementing a very simple tree. Talk about the anagram lab exercise. Improving the UNSW 89019 microprocessor. CISC and RISC design. Using memory segments to be able to address more memory. The bicycle wheel puzzle. Simulation - a neat and simple way to solve complicated problems when you can't be bothered to use/can't rely upon...more