For this week, I chose a note-taking technique as it is something I have struggled with previously. My biggest issue while taking notes has been trouble understanding or remembering what they mean later. A technique by Janet Jenkins suggests immediately after your class, you should go and type your notes out to make them understandable. I like this idea as my handwriting can be poor while taking notes quickly, and I don't always remember what my shorthand notes mean.
(2) Weekly material
This week we went over material about ethics and ethical frameworks. We also reviewed the program's policies and code of integrity. A few of the frameworks we went over are Ethical Relativism (encompasses cultural relativism and individual relativism), Utilitarianism, Care Ethics, Ethical Egoism, Divide Command Theory, Natural Law Theory, Kant's Ethics, and Virtue Ethics. We also learned some Computer Science related issues that affect stakeholders, such as
Privacy (ethical concerns over personal privacy, but greater security due to monitoring)
Environmental (fossil fuels for electricity, waste products from electronic devices ending up in landfills) Digital Divide (unfair advantages due to broadband speeds, and cultural differences with technology)
Health (sitting at a computer leading to the rise of obesity among other issues like back and wrist issues), Legal terms (Multiple laws to protect people, data, and ideas, Data Protection Act 1998, Computer Misuse Act 1990, Copyright Design and Patents Act 1988).
In this week's reading, the author Matt Right gave some advice and pointers that every Computer Science student should know. Here is an overview:
Building a portfolio to show your projects and accomplishments.
Work on your communication skills to present and defend ideas.
Have an engineering core with classes like physics, linear algebra, and probability.
Become comfortable using Unix.
Understand how to do the tasks of a system administrator.
Learn a range of programming languages. A few I'm most interested in the immediate future are:
C;
Javascript
Java (Currently learning)
Assembly (I previously took a MIPs class in college, but it's been a few years. I'm interested in assembly for reverse engineering).
Learn discrete mathematics.
Learn data structures and algorithms.
Learn about the theory of computation.
Understand computer architecture from transistors and up.
Understand operating systems (runtime systems).
Understand various networking protocols and the trade-offs between them.
Learn to program while thinking about security and how your code could be compromised.
Learn to implement various cryptography concepts.
Software testing.
Design with user experience in mind, not for yourself.
Visualization (make sense of data).
Parallelism (knowledge of architecture: multicore, caches, buses, GPUs).
Learn principles in software engineering.
Formal methods (theorem prover).
Graphics and simulation (3D engine for games).
Robotics (Learn programming through robotic projects).
Artificial Intelligence (all students should study this).
Machine learning (immense career opportunities).
Databases (SQL).
What I've gathered from the author is that there is a lot to learn and improve on. It's not going to be a short journey, but I hope it will be a fun and memorable one.
(4) Code of Integrity
After reviewing CSUMB's code of integrity, I would say the code of integrity is important for me because it's an agreement between myself, the school, faculty, and fellow students. I am committed to this school, so it's important to adhere to it.
I have also been struggling with note taking. After reading the article about note taking, I found a few methods that would help make it easy for me. Rewriting and retyping are good options for practicing note taking, and it will be easy to memorize it.
ReplyDelete