Competitive/Collaborative Programming Class

ICPC Computer Programming Contest Prep

Problem Solving in Computer Science

Spring 2022 -- CSC 2700 Section 01 (1216 Patrick Taylor, 6:30 PM - 8:20 PM)



Class Home




Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.
--Frederick P. Brooks Jr.
A change in perspective is worth 80 IQ points
--Alan Kay
What kind of programmer is so divorced from reality that she thinks she'll get complex software right the first time?
--James Alan Gardner
Learning the art of programming, like most other disciplines, consists of first learning the rules and then learning when to break them.
--Joshua Bloch
So if an algorithm is an idealized recipe, a program is the detailed set of instructions for a cooking robot preparing a month of meals for an army while under enemy attack
--Kernighan Brian
But while you can always write 'spaghetti code' in a procedural language, object-oriented languages used poorly can add meatballs to your spaghetti.
--Andrew Hunt
How do you expect to succeed if you do not know the rules?
--Anonymous
Not only is this incomprehensible, but the ink is ugly and the paper is from the wrong kind of tree.
--Professor W.
Happiness should be a function without any parameters.
--Pranshu Midha
Premature optimization is the root of all evil.
--Donald Knuth
Good programmers write code that humans can understand.
--Martin Fowler
Twenty hours at the keyboard can save you two hours of planning.
--Isaac Traxler
The personal computer isn't "personal" because it's small and portable and yours to own. It's "personal" because you pour yourself into it - your thoughts, your programming.
--Audrey Watters
People who are really serious about software should make their own hardware
--Alan Kay
One knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
--Brian Kernighan
Managers of programming projects aren’t always aware that certain programming issues are matters of religion. If you’re a manager and you try to require compliance with certain programming practices, you’re inviting your programmers’ ire. Here’s a list of religious issues:
■ Programming language
■ Indentation style
■ Placing of braces
■ Choice of IDE
■ Commenting style
■ Efficiency vs. readability tradeoffs
■ Choice of methodology—for example, Scrum vs. Extreme Programming vs. evolutionary delivery ■ Programming utilities
■ Naming conventions
■ Use of gotos
■ Use of global variables
■ Measurements, especially productivity measures such as lines of code per day
--Steve McConnell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
--Rick Cook
The most important property of a program is whether it accomplishes the intention of its user.
--C.A.R. Hoare