background preloader

What every computer science major should know

What every computer science major should know
Portfolio versus resume Having emerged from engineering and mathematics, computer science programs take a resume-based approach to hiring off their graduates. A resume says nothing of a programmer's ability. Every computer science major should build a portfolio. A portfolio could be as simple as a personal blog, with a post for each project or accomplishment. A better portfolio would include per-project pages, and publicly browsable code (hosted perhaps on github or Google code). Contributions to open source should be linked and documented. A code portfolio allows employers to directly judge ability. GPAs and resumes do not. Professors should design course projects to impress on portfolios, and students, at the conclusion of each course, should take time to update them. Examples Technical communication Lone wolves in computer science are an endangered species. Modern computer scientists must practice persuasively and clearly communicating their ideas to non-programmers. Specific recommendations Java

Algorithmist Maker Faire Africa: Schoolgirls Create Urine-Powered Generator | Wired Design A urine-powered generator created by four teenage girls made its debut at Maker Faire Africa 2012 in Lagos, Nigeria. According to the Maker Faire blog, the girls’ invention takes the urine and uses urea electrolysis to generate hydrogen, which can then be used to power a generator. [partner id="wired"] The blog doesn’t offer too much in the way of fine detail regarding the process, but the steps of the system outlined describe the urine being added to an electrolytic cell to separate out the hydrogen. While the idea of using human waste as a power source is very attractive, the prototype device will have a number of potential problems to contend with before it can become a reality — not least the fact that it may not be capable of creating a net gain in terms of electricity. The electrolysis of urea to generate the hydrogen requires an electrical input. Another consideration would be the longevity of the device: “Urine isn’t just composed of urea,” explains Warr.

My vi/vim cheatsheet Cursor movement h - move leftj - move downk - move upl - move rightw - jump by start of words (punctuation considered words)W - jump by words (spaces separate words)e - jump to end of words (punctuation considered words)E - jump to end of words (no punctuation)b - jump backward by words (punctuation considered words)B - jump backward by words (no punctuation)0 - (zero) start of line^ - first non-blank character of line$ - end of lineG - Go To command (prefix with number - 5G goes to line 5) Note: Prefix a cursor movement command with a number to repeat it. Insert Mode - Inserting/Appending text i - start insert mode at cursorI - insert at the beginning of the linea - append after the cursorA - append at the end of the lineo - open (append) blank line below current line (no need to press return)O - open blank line above current lineea - append at end of wordEsc - exit insert mode Editing Marking text (visual mode) Visual commands Cut and Paste Exiting Search/Replace /pattern - search for pattern?

Apostrophes & Boggleton Drive - StumbleUpon Something I’ve been noticing more and more lately is the gross misuse of apostrophes in people’s writing. I’m going to break this one down into the three most common errors: 1) Using an apostrophe with the third person singular form of a verb (WHY?!) and with plural nouns. With main verbs, the ONLY time there is EVER an apostrophe involved is with “let’s”, which, as everyone knows, is a contraction for “let us.” So when people inexplicably use an apostrophe with the third person singular form of a verb (e.g. For example, take a look at this incorrect sentence: My friend jump’s for joy. Here’s what is intended: Here’s what I read: Our friend jump us for joy. And this is what I imagine (despite the subject/verb agreement error): Similarly, apostrophes on nouns are NEVER used just to indicate plurality. The crazy neighbour owns 27 cat’s. <— INCORRECT The crazy neighbour owns 27 cats <— CORRECT 2) Creating a possessive noun that is incorrectly singular or incorrectly plural Alternatively: 3) It’s / Its

Online Computer Science Courses Computer science is the study of computational systems, their practical applications, and the examination of how humans interact with and improve upon new technology. College computer science programs and their open online courses typically focus on these primary concentrations: the theory behind programming language, the pragmatic applications and development of new technology, instructional design, and the creation of more user-friendly tech interfaces. Specifically, many courses deal with algorithm creation and coding techniques, while others will apply this knowledge to real-world tasks such as software construction. Why Take Free Online Computer Science Courses? Online computer science courses are offered at both undergraduate and graduate levels, and since computers and mobile technology are so ubiquitous, it is possible to earn a viable education through online courses and degree programs. Find Free Online Computer Science Courses

newfinancepage.html Scott Burton Financial Software Projects Graduate Division - Computer Science Tuesday 7:10-9:00 WWH Room WWH 3 This course will be taught by a veteran Wall St. technology manager currently employed at a top tier investment bank. The theme of this course will be “applied case study” and will focus on Fixed Income markets. Pre-requisites: It is assumed that the students can code in C++ or C for the server side. No prior experince in the financial sector is required - just a desire to learn it. Reference Materials: Software Engineering: Soul of a New Machine - Tracy Kidder The Mythical Man - Month - Fred Brooks (this is the only text students will need to purchase) Application Domain: (should be available in library): The Handbook of Global Fixed Income Calculations - Dragomir Krgin The Money Markets - Marcia Stigum Security Analysis - Graham and Dodd Handouts Course Objectives: 1. 2. 3. 4. 5. 6. Grading policy: The final project will be a working app built using the library submitted at mid-term.

A gentle introduction to return-oriented programming « blog.zynamics.com Hi, As I have promised in my last post I will start a series about return-oriented programming. I start with a short introduction about the topic. Why do we need return-oriented programming ? Return-oriented programming is a technique which allows an attacker to execute code in the presence of the following defensive measures. Non executable memory segments Code signing Where does return-oriented programming come from ? Return-oriented programming is a recently coined term which describes a technique that has been developed in an iterative process in the security community. Buffer overflows were first publicly documented in the Computer Security Technology Planning Study in 1972 (Appendix 1. A buffer overflow is, in the original form, a very simple error that is introduced if a function does not perform proper bounds checking for the accessed memory. The first major attack which used a buffer overflow as the targeted vulnerability was the Morris worm in 1988. Return-into-library technique

JIProlog Google What should I know (computer science-wise) before going to college to major in Computer Science? Advanced Data Structures (6.851) Prof. Erik Demaine TAs: Tom Morgan, Justin Zhang [Home] [Lectures] [Assignments] [Project] [Problem Session] Data structures play a central role in modern computer science. You interact with data structures even more often than with algorithms (think Google, your mail server, and even your network routers). In addition, data structures are essential building blocks in obtaining efficient algorithms. Specifics Lecture time: Tuesday & Thursday 11–12:30 First lecture: Tuesday, February 7, 2012 Lecture room: 4-163 Units: 3-0-9, H-level & EC credit Registration: Subscribe to 6851-students mailing list on the web. Prerequisites The required prerequisite is 6.046, Design and Analysis of Algorithms or an equivalently thorough undergraduate algorithms class from another school (e.g., covering much of CLRS). Grading There are three requirements, other than attending lectures: Scribing one, maybe two, lectures. LaTeX Help Homework solutions, scribe notes, and final projects must be typeset in LaTeX.

Related:  infinityseeker