-
Editors
Learn how to use a good editor. I’m not going to get into a religious war here, so will not make any recommendations. However, once you’re touch-typing, you should be making changes to your code in terms of your thoughts, not in terms of your editor’s commands. Choose an editor that makes sense, and choose […]
-
Touch Typing
The one, simple thing you can do to increase your productivity more than 10-fold is to learn how to touch type. This isn’t just about improving your performance at the keyboard. It has to do with removing distractions and obstacles when coding. It’s about becoming one with the machine, translating the thoughts in your head […]
-
The Developers Bookshelf
Algorithms & Data Structures I’ve found multiple perspectives deepens my understanding of topics. The following books cover roughly the same ground, but have very different approaches, and I’ve gotten different insights from each of them Introduction to Algorithms, Cormen, Leiserson, Rivest and Stein. The basics, written clearly and yet with rigor, this book should be […]
-
Round Ireland with a Fridge, Tony Hawks
A cheerful account of a pointless trip that brought to mind something that Jerome K. Jerome would write. I kept reading the dialogues in Derry Girls accents. And there are gems like these: ‘Yes’, I replied accurately.
-
Programming for the Programmer
Motivation Students aspiring to program come in all varieties. Some are good, some are not so good and this categorization is strictly within the same pool. The frustrating part (for me) is that the good programmers have a long way to go to become competent developers. And the not-so-good programmers are not so good for […]
-
City of Illusions, Ursula K. Le Guin
Across the years between the stars, which now was the dreamer, which the dream?
-
Late Fragment, Raymond Carver
OMFreakin’G And did you get what you wanted from this life, even so? I did. And what did you want? To call myself beloved, to feel myself beloved on the earth.
-
Nemesis Games, James S. A. Corey
-
Quantization
What you will learn: Software: practice with loops and operations on arrays Domain: approximations and error measurements, sampling Input: Construct a (continuous) signal of your choice – say a simple sinewave with a particular frequency and amplitude. Plot this. Note that since youare representing the continous signal on a computer, so you are alreadysampling it. […]
-
Convolution
What you will learn Software: relatively simple constructs, but a great exercisein constructing iterations. Visualization. Domain: develop an intuition for how convolution works. And its time complexity Input: construct the following signals of roughly the same height and width. Consider if each of these are odd or even signals. Single rectangular pulse centered at zero […]
-
Modulation
What you will learn Software: fairly simple constructs Domain: Modulation, FSK, tradeoffs Amplitude Modulation Construct a carrier (high frequency) and a signal, represented as a list of values Simply add the two Visualize all the three signals Take the modulated signal and subtract out the carrier to recover the original signal Frequency Modulation – 1 […]
-
The Rich Man’s Square Wave Generator
What you will learn Software: python, matplotlib Domain: a different way of looking at Fourier series Do this in python, mainly for the visualization capabilities Rich man’s square wave generator Create a sine wave of a given frequency and amplitude. Plot it for one period Create a second sine wave of twice the frequency and […]
-
Planet of Exile, Ursula K. Le Guin
-
The Poor Man’s Square Wave Generator
What you will learn Software: encapsulating functionality, parameterizing functions Domain: frequency and period of a square wave The poor man’s square wave generator Decide a frequency and amplitude of your desired square wave Create a list with low and high values (these correspond to the amplitude) and specific indices (these correspond to the frequency) Plot […]
-
Digital Logic Simulator
What you will learn Software: Depending on how you architect this, fairly sophisticated! Work with graphs, and best done using OOD. Domain: Digital logic circuits, and the sheer exponentiality of 2n2n This is pretty advanced but will be pretty cool. We will build a digital circuit simulator in this exercise. We will also parallelize it using […]
-
RC Circuit Analysis
What you will learn Software: relatively basic constructs. Iterative solver! Domain: A better feel for a capacitor charging and discharging and the time constant. RC Circuits Take as input values of R (in Ohms), C (in Farads), and supply voltage (in Volts). Assume that the voltage is applied to a series RC circuits at time t=0t=0, […]
-
CMOS Characterization
What you will learn: Software: relatively simple implementation, plus some visualization Domain: improve your understanding of how a transistor works CMOS Characterization – 1 A CMOS transistor operates in three different regions — cutoff, saturation, and linear. The equations for these are fairly straightforward. Implement these using hard-coded values for parameters that you may need […]
-
Programming for the Electronics Engineering Student
Motivation I’ve had a few odd discussions with students from the Electronics branch related to software development. Broadly, sniff I’m in electronics, don’t expect me to dabble in ugh software We don’t get the subjects that CS students do, so aren’t as prepared for interviews as they are eh, I’m just going to do it There’s so much […]
-
Rocannon’s World, Ursula K. Le Guin
-
Cibola Burn, James S. A. Corey
Basic problem solving. If you don’t have the data you need, play with the data you have, see if something comes out of it. She’d made it through three semesters of combinatorics that way. All right. Forwarded to all my combinatorics students 🙂