Software Engineering
I expect you to visit this page at least once per 24 hours.
Mon, September 29, 2025 3:06:42 PM
You have seen pair programming since freshman year. You may not have taken it seriously. Here is my rationale for this course, and it should be the rationale for any company that values its code base.
Contrary to O’Reilly’s “The Essentials of Copying and Pasting from ChatGPT”, real programming engages the brain, and no software (compiler IntelliJ whatever) can adequately check your thinking.
Two brains (and more) knowing my (as in me, the manager, owner) code base well is better than having a single super developer on staff who can blackmail me with threats to leave and sink my start-up/team within the company.
Laurie Williams and Bob Kessler some 10 years ago published a comprehensive book after studying the use of pair programming in a variety of settings, but mostly industry. They came to the conclusion that pair programming saves companies money in the long run.
Strengths and Weaknesses
In general, people have unequal skills. The key is to use each others strengths’ and learn from each other.
You may think you can do it alone. What if you get sick? (Even in this class!)
You may think your partner can do it all. If so, you’re a lazy bump and when your boss finds out you get fired.
Code Walks
We will downgrade every partner of a pair if we discover that one of the partners is not up to speed with the code.
Mon, September 29, 2025 10:53:26 AM
I put up your self-evals in Fish on a branch called self-2. Please complete them by Tuesday at 10:00pm. I will look for your completed self-evals on that branch at that location at that time.
Thu, September 18, 2025 7:06:35 AM Due to the size of our class, we do not have second panelists. A panel thus consists of two presenters (who alternate between driving and presenting), a head panelist, and a secretary. As a secretary, your far away most important job is to take the notes. If you have a point that’s being missed, you can jump in. But that’s bonus points, and slowing things down is worse than just silently taking the notes. The quality of the notes is paramount.
Mon, September 15, 2025 2:56:09 PM
Alright. Enough. I do not want to see another submission without at least the following:
black
isort
flake8
flake8-pyproject
mypy
pydocstyle
pytest
pytest-cov
pytest-mock
pre-commit
types-requests
Set flake to:
ignore = ["E203", "E266", "E501", "W503", "F401"]
max-line-length = 88
max-complexity = 18
Set pydocstyle to:
convention = "pep257"
add-ignore = ["D100","D101","D102","D103","D104","D205","D400"]
The black and isort tools will similarly require setup and configuration. Do so.
You should be using uv or pdm as your python and environment manager. If you need more work to set this up, Makefile.
I should be able to ask you to run your pre-commit hook and see the results of these tests.
Don’t just do it for this project or this course. Set yourself up a Project template
Q: But I didn’t learn any of this in my $PYTHON_BASED_COURSE!
Tough. You should go ask for your money back.
Q: But sciris doesn’t have / isn’t set up to ....
Tough. Figure it out.
Mon, September 15, 2025 11:02:55 AM You will have now received in your repo a self evaluation form named self-E.md.
Respond as requested. Your answers will be harvested on Tuesday at 10:00pm. I will be checking that your answers reflect the code as it was submitted immediately before the due date; make sure your links refer to lines or ranges in that commit.
Tue, September 9, 2025 1:09:42 PM
I would normally have one of your assignments due on Tuesday evening, so that it makes sense to present in class on Wednesday. You were given one day more than you would usually get to complete D —
Tue, September 2, 2025 11:17:12 AM Starting this Wednesday, we will have our first code walks. I have selected a pair of presenters and a panel to start with. Following that, time permitting, we will conduct a couple of more reviews with both presenters and panelists drawn from the class.
It is your job to make sure that you are equipped and ready to present your code. Beyond having it available, you should already be set up and ready to present. That means having the font in an appropriate size for the audience, and be familiar navigating a code base using your tooling. The ''presenter mode'' available in most IDEs is inadequate, as it only works nicely for one file at a time.
You should be fully ready to present when called upon.
Tue, September 2, 2025 10:23:40 AM
You will now find, C —
Do not get used to an announcement telling you that an assignment is posted; it will be up to you to check the page regularly.
The deadline leaves you with many days to finish something that ought to take 30 mins max in total.
Mon, August 25, 2025 12:19:02 PM Welcome to the Fall 2025 edition of Software Engineering I. As always, we aim to deliver a course that teaches you a lot, not in terms of industrial tools and techniques but for your life as a reflective software developer.
this front page serves as a universal announcement scroll,
the Assignments, Actual page serves as your “task list,” and
a few other pages come online as needed.