| CompSci 308 Spring 2021 |
Advanced Software Design and Implementation |
Whether you are keeping a journal or writing as a meditation, it is the same thing. What’s important is you are having a relationship with your mind. — Natalie Goldberg
An important way to improve is by practicing mindful learning, taking time to pause and reflect during an activity so that the context of your actions is not lost. Thus, to help you improve and to help reduce the burden of the end of project analysis, you will practice regular journaling throughout the semester. Informal writing can clarify your thinking, improve your ability to remember, to observe, to think, and to communicate. When you are writing your journal entries, do not be overly concerned about grammar. Focus on ideas, depth, and critical analysis. Tackle concepts not comma splices. For these weekly entries, it is more important to communicate ideas effectively than to worry about splitting infinitives. The object of the journal is not to simply regurgitate the readings or lecture content but to develop your own connections between the theoretical (or philosophical) and practical elements of the course and a better understanding of your relationship to coding. Just write — you might even find it fun!
Journals must be submitted using GIT by 3:08am ET in the morning on the day after that given on the course Calendar (so it is effectively a few extra hours grace time past midnight).
pushed on the master branch of the individual
portfolio_NETID
repository provided for you in the course's Gitlab groupweekNN_TOPIC.md) — templates for each are given below that are named correctly using this convention. Markdown is an industry standard, simple, plain text format for providing style guidelines that can be transformed into any other document format. IntelliJ includes a Markdown editor that provides a preview or there is a web-based editor that provides similar functionality.
Writing in a journal reminds you of your goals and of your learning in life. It offers a place where you can hold a deliberate, thoughtful conversation with yourself. — Robin Sharma
Before you start this course, take a moment to reflect on your goals and motivations for taking this course and how your programming experiences have affected you and shaped your decision to study computer science and to take this course specifically.
Your autobiography should attempt to answer the following questions:
Mindfulness in the essence of engagement, [without it we are] frequently in error, but rarely in doubt. — Ellen Langer
Take time to regularly show the development of your thoughts by describing specific, important, events during the project. These can be about anything useful, interesting, unexpected, or controversial you learned during the week from at least two of the following sources:
To help you remember the sources of and linkages between some of the non-coding, thought-work, that you did during the week summarize at least three of the following sources:
Remember when writing a personal reflection, you are offering your opinions. However you are also demonstrating that you have thought about the issue carefully and, from multiple perspectives. For example, you may want to start with something like these:
I used to believe …, however, after considering the effect of … my perception has shifted ….
Once seemed obvious that … yet now it is more tempting to ask ….
Perhaps …. is an assumption which relies too heavily on … Therefore it may be more accurate to suggest…
If you are having trouble thinking about what to write in a journal entry, think about what you would possibly write as a status update to your future or past self on a social media site.
Your most important work is always ahead of you, never behind you. — Stephen R. Covey
If you do not make a conscious effort to visualize who you are and what you want in life, then you empower other people and circumstances to shape you and your life by default. The goal of this entry is to encourage you to envision in your mind what you cannot at present see with your eyes so as to connect again with your own uniqueness and power. It is based on the principle that all things are created twice: first a mental and second a physical. The physical creation follows the mental, just as a building follows a blueprint.
Reflect on the practices, rather than the work you have produced so far, to see what you want and what you can improve to help you to take back some measure of control over your own success and well-being. Write about your concerns regarding finishing this course well, but also include things you are confident, curious, or excited about. Finally, conclude with positive things that you hope will happen over the remainder of the semester. Think of at least one aspect of the semester that you personally have control over, and discuss some concrete things you can do to create a constructive and successful conclusion to this course experience.
There are few things wholly evil or wholly good. Almost everything is an inseparable compound of the two, so that our best judgment of the preponderance between them is continually demanded. — Abraham Lincoln
The more software continues to take over every aspect of our lives, the more important it will be for us to take a stand and ensure that our ethics are ever-present in our code. — Bill Sourour
One look these days at the news headlines should make it clear that ethical issues abound in tech companies or how technology and software are applied (such as data privacy, algorithmic bias, algorithmic payment transparency, right to repair, or validity of scientific results). Technical issues are incredibly challenging because typical processes do not constrain them, so they can often outpace our capacity to think through all possible impacts. However, there is significant evidence that the main themes in today's issues have been contemplated previously and may even be timeless. For example, many concerns about smartphones were raised by the original telephone as well as the telegraph.
Ethical dilemmas are situations in which one must make a moral decision about what to do (e.g., right vs. right/wrong, good vs. good/bad, a moral judgment about a person/event/concept, or a challenge to item(s) in ACM's Code of Ethics), but the right choice can be unclear or complicated because of the costs involved. Moreover, personal responses to ethical dilemmas may well be internalized (e.g., personal ethics code, moral training at home, religious beliefs, etc.), making it hard to articulate why you believe something is correct or not.
Use this journal entry to explore a topic of interest, deep knowledge, or personal experience and develop an ethical position on it:
Write about your interest by thinking critically about it from multiple perspectives to justify an ethical perspective. Try not to simply summarize an existing perspective or report just the facts, but rather work to understand the depth and ambiguity of the ethical issues in the topics and develop your own thoughts and feelings and see how they might impact your plans for the future (e.g., what company you want to work for, what kind of software you want to develop, etc.).
Provide links to at least three resources you used to learn more about the topic from an ethical perspective to develop your opinion.
Keeping a journal of what’s going on in your life is a good way to help you distill what’s important and what’s not. — Martina Navratilova
Job interviews will certainly assess your technical skills, but they will also ask questions intended to see if you have good soft skills, and just as importantly, to see if you are self-aware of your own abilities and weaknesses. Everyone has weaknesses! Do not pretend to be naturally good at everything! The point of a “what is your greatest weakness” question is not to ensure you have no weakness, but rather to see if you have thought critically about your own skills, can do honest reflection, and care about self-improvement. Answers to these questions can often make the difference in who gets hired between two technically competitive applicants.
As the semester nears its end, review your journal, your projects, your team experiences to see how much progress you have made during the semester, but also where you can still improve after completing the course.