Instructor: Emily E. Curd PhD
eecurd@g.ucla.edu
Office Hours: MW 9:30-10:30 Music School Café
The best way to contact me is by email or through the course GitHub.
Teaching Assistant: Daniel Chavez
dechavezv@ucla.edu
Office Hours: MW 4-5pm at Hershey Hall 309.
The best way to contact me is by email
Do you have a lot of Data? Do you think you will someday generate a lot of Data? Do you want to understand programing jokes? If so this is the class for you. It is becoming easier to generate large volumes of biological data, however many biologists lack the basic skill sets to process and analyze this data. It can be daunting to figure out what to do with big data sets on your own.
In this class, you will be introduced to fundamental skills needed for manipulation, analysis, and visualization of large data sets. You will learn how to use UNIX and learn the basics of programming and scripting in Bash (Unix shell), Python, R. This will include text file and directory manipulation, the use of regular expressions, the ability to create for loops and conditional statements, the use of functions, the ability to call other programs within programs, and much, much more. You will also learn how to run all your scripts on UCLA’s Hoffman2 Cluster. If that is not enough, you will also learn Markdown / R Markdown for document preparation. Finally, you will learn about version control using git and GitHub and generate a GitHub repository of your very own.
Text (ISCB): Introduction to Scientific Computing for Biologists Author: Stefano Allesina; downloadable here: https://allesinalab.uchicago.edu/wp-content/uploads/2014/05/IntroSciComp2014.pdf
Text (BSS): Bash_Shell_Scripting https://en.wikibooks.org/wiki/Bash_Shell_Scripting
Additional freely accessible texts will be added as the quarter progresses.
Laptops are required for class time!
If you do not have a laptop you can rent one from the Arts library or the Geology library starting at 8am.
http://www.library.ucla.edu/destination/clicc-laptop-ipad-lending-arts-library http://www.library.ucla.edu/destination/clicc-laptop-lending-selgeology.
Let me know if you need to borrow a laptop, and in class activities will take into account the time for checkout / travel between library and class.
__
If you want to succeed in this class, you must put in the time. Programming is learned through practice and trial and error. Programming also be frustrating, maddening, exhilarating, and at the end of a successful script or project you may feel immense satisfaction. Students in this class will succeed by finishing assignments, collaborating with other students, talking with Daniel and me when you need help, and generally by learning to google your way to answers. There are many more ways accomplish a task than we will be able to teach you in this class. Be open to exploring the other options available for completing a task. It is likely that you will exceed our knowledge on a topic while working on your final project. We will reward your creative thinking and resourcefulness with good grades. Your reward for willingness to work hard, to be creative and resourceful will be a skillset that you will be able to use thought your career.
Daniel and I will be available to help you during class and during regular office hours. I will answer emails and other communications between the hours of 7 am – 7pm on weekdays. It is possible that I will get back to you weekends and evenings, but you should not expect a response during that time.
Daniel’s info…..
Students should also post questions to the group via the course GitHub. Chances are that if you are having a problem, someone else may also have had the same problem. Feel free to help each other succeed in this class!
Remember that we are all working towards the same goal; to getting better at programing. Sometimes this will involve learning skills, sometimes this will involve helping those around you learn a skill. Everyone in this course has a different level of programming expertise, and will bring a different skill set and unique perspective to the course. Please remember to be respectful when interacting with your peers, Daniel or me, because you never know what you might learn from talking with, helping, or collaborating with other people.
We want you to feel respected as students. Along the same lines, we what to feel that you respect us as instructors and mentors. Keep in mind that every email sends more than one message. We know that you would never send the following email, but each member of the teaching team has at some point received a student email like this cartoon.
If you have concerns about the course content, the way that a topic is discussed, or any personal interactions in class, please contact Daniel or me. We would like to mitigate any concerns as quickly as possible. You will be given opportunities throughout the course to anonymously provide feedback regarding the course content, classroom community, and my effectiveness as an instructor. Please use these opportunities to give actionable criticism (i.e. something that can be improved upon).
UCLA’s Office for Equity, Diversity, and Inclusion provides resources, events, and information about current initiatives at UCLA to support equality for all members of the UCLA community. I hope that you will communicate with Daniel or me if you experience anything in this course that does not support an inclusive environment, and you can also report any incidents you may witness or experience on campus to the Office of Equity, Diversity, and Inclusion on their website.
Your grade will be assessed as follows:
Activity | Percent Grade |
---|---|
In class participation | 20% |
Homework | 10% |
Lab assignments / participation | 20% |
Final Project | 50% |
Total | 100% |
Why I do not grade on a curve:
In recent years, research into higher education assessment practices have shown that grading on a curve can create unnecessarily competitive environments for students and result in outcomes that disadvantage some groups of students over others. This is true in data collected and analyzed for our students at UCLA as well. For this reason, I do not grade on a curve. Your grade is therefore not based on how you did in comparison to your peers, but instead how successful you are at evidencing that you have mastered the intended learning goals for that specific assessment. However, if I do find that particular assessment questions I gave an assignment or exam were unreasonably challenging, unclear, or unfair for any reason I will provide additional credit as appropriate. If you ever feel that an assignment or specific question is unfair or confusing please come and speak with me or your TA (ideally before it is due or during the assessment, but afterwards is okay also) so that we can address this concern as soon as possible. I am committed to making sure the assessment of your learning is comprehensive, fair, and incorporates best practices from education research on assessment design and inclusive practices.
Grading Scale:
Letter Grade | Percentage |
---|---|
A+ | 99-100% |
A | 93%-98.9% |
A- | 90%-92.9% |
B+ | 87%-89.9% |
B | 83%-86.9% |
B- | 80%-82.9% |
C+ | 77%-79.9% |
C | 73%-76.9% |
C- | 70%-72.9% |
D | 60%-69.9% |
F | 0%-59% |
In class participation:
You will work alone or in teams during class time to generate scripts, solve problems, and participate in class challenges. These activities are designed to test your understanding of your homework assignments and challenge you to think more creatively about programming. All in class activities must be turned in during class to the course GitHub. If you have an excused absence (criteria for an excused absence is detailed below), you will be given an alternate exercise. The lowest in class assignment score will be dropped from your in-class participation grade.
Homework:
This course includes a broad range of topics and tools. Practice is the best way to learn how to program and homework assignments will prepare you for in class activities. Homework assignments will help you learn and master basic programming skills. Homework assignments will be submitted electronically before class. The submission cutoff is 7:45 am the day of class. Late submissions will be accepted but penalized 10% each day late (submitting 7:46 the day of class counts as 1 day late).
Lab assignments / participation:
You must attend computer lab. Computer lab assignments are designed to result in a practical product like a CV or website or to provide benchmarks and feedback on the final project. This is your opportunity to get immediate feedback on your final project and a good way to get personalized attention from Daniel. All computer lab assignments must be turned in 15 minutes before your scheduled computer lab session.
Final Project:
The final project for this course will require you to produce software that manipulates and analyzes data. This software must have a practical application for a current research project. If you do not currently have a research project will be paired with a researcher that has a computational need that is appropriate for the scope of the course and student group size. Student group size will depend on the size of the program required for the research project and whether you are an undergraduate or a graduate student.
Your final project will include and be evaluated based on the following criteria.
This is a tentative schedule and subject to change, with schedule adjustments posted on CCLE announcements and the Course Website.
Date | Topic & Learning Objectives | Complete Before Class | Complete During Class |
---|---|---|---|
M April_1 | Setting up. Using Hoffman2, and the Unix Shell You will understand and be able to describe the structure of UCLA’s HPC. You will know the difference between login and compute nodes, and YOU WILL use them appropriately. You will be able execute basic UNIX commands. You will understand directory structure and UNIX permissions, and be able to create/add/remove directories and files. You learn to help yourself by finding additional UNIX tutorials and resources. |
Do: Secure a laptop for class. Do: If you are operating a PC download an ssh client: https://www.hoffman2.idre.ucla.edu/access/#Windows |
You will be seated by operating system, so that people with platform specific blocks to progress can help each other troubleshoot. You will learn what Hoffman2 is, and how to login. You will learn basic Unix commands for Navigation and will build directories and files that we will use later in class. |
W April_3 | Using Hoffman2, the Unix Shell, and text editors. You will execute more advanced commands in UNIX. You will learn how to transfer files between your computer and Hoffman2. You will be able to explain what a text editor does, and name at least three text editors that are available for use. |
Read: Chapter 2 ISCB Do: ISCB Exercises 2.13.1 and 2.13.2 and cp to the class Hoffman2 directory by 7:45 am 4/8/2019. Download a text editor that works with GitHub: https://help.github.com/en/articles/associating-text-editors-with-git (I like atom) Download: https://cyberduck.io/ |
You will work in pairs during class.You will use different text editors. You will complete basic tasks on HOffman2 using the shell. You will complete file transfers using cyberduck. Bonus: Also complete ISCB exercises in 2.13.3 and/or 2.13.4 and get a reward! |
Discussion Week_1 | Git and GitHub: You will learn what git is, why is it used, how it is used. You will master basic commands in git. You will be able to interact with our GitHub classroom. You learn to interact with GitHub in the shell and through GitHub Desktop |
Download a text editor that works with GitHub (if you have not already): https://help.github.com/en/articles/associating-text-editors-with-git Download GitHub desktop: https://desktop.github.com/ |
You learn the basic skills needed to use git. You will associate your text editor with git. You will clone a repository. You will push some modification to the repository to the github classroom. If there is time you will make a repository and start a personal website. |
M April_8 | BASH I | TBD | TBD |
W April_10 | BASH II and Project Introduction | TBD | TBD |
Discussion Week_2 | CV in Markdown: You will learn how to use Markdown. You will give and receive actionable criticism. |
Make a draft CV and bring it to class. Read the following when building your CV: http://hwpi.harvard.edu/files/ocs/files/gsas-just-for-scientists-cvs-resumes.pdf https://grad.ucla.edu/asis/agep/advcv.pdf https://gum.ucla.edu/wp-content/uploads/Workshop-3-Presentation-CV-Resume.pdf |
As a class, you will discuss the components of a CV. You will peer review CVs In small groups (3 - 5 people). Everyone’s CV will be different, and will have different content. Your goal is to make the best CV that reflects who you are. br>You will learn to transform your CV into a Markdown document. |
M April_15 | BASH III | TBD | TBD |
W April_17 | Hoffman2 Job submission | TBD | TBD |
Discussion Week_3 | Project Basics | TBD | TBD |
M April_22 | Python I | TBD | TBD |
W April_24 | Python II | TBD | TBD |
Discussion Week_4 | Project map / Flow chart | TBD | TBD |
M April_29 | Python III | TBD | TBD |
W May_1 | R I | TBD | TBD |
Discussion Week_5 | Project GitHub Readme | TBD | TBD |
M May_6 | R II | TBD | TBD |
W May_8 | R III | TBD | TBD |
Discussion Week_6 | Project Scripts | TBD | TBD |
M May_13 | Integrating Bash, Python, and R I | TBD | TBD |
W May_15 | Integrating Bash, Python, and R II | TBD | TBD |
Discussion Week_7 | Project Scripts | TBD | TBD |
M May_20 | Integrating Bash, Python, and R III | TBD | TBD |
W May_22 | SQL, SQlite, databases | TBD | TBD |
Discussion Week_8 | Project Vignette | TBD | TBD |
M May_27 | Holiday! | Holiday! | Holiday! |
W May_29 | SQL, SQlite, databases | TBD | TBD |
Discussion Week_9 | Project Vignette | TBD | TBD |
M June_3 | Project Presentations I | TBD | TBD |
W June_5 | Project Presentations I | TBD | TBD |
Discussion Week_10 | Evaluate Your Peer’s Projects | TBD | TBD |
F June 14 | Final Project Submissions | TBD | TBD |
Providing feedback to me and to your TAs:
I encourage your feedback at any time throughout the quarter about things that are helping you learn, or things that aren’t helping. Please let communicate with me or Daniel if there are ways that we can improve the course to better support student learning.
Excused Absences:
As the parent of an infant, I would appreciate not bringing home a nasty virus. If you have a fever but are feeling relatively well, please let me know and we will arrange for you to zoom into class or discussion. If you have a more serious medical issue or a family emergency, please let me know and you will be given an alternate assignment and an extension on the homework. If you are excused to miss a computer lab you will need to need to contact Daniel and possibly your project group members to discuss make up work. Note, makeup assignments will be different from the assignment turned in by your classmates, and it will be due within one week of the missed class.
Personal Problems:
I understand that sometimes life makes it difficult to focus on schoolwork. If you are having a personal problem that affects your participation in this course, please talk to me to create a plan. Please do not wait until the end of the quarter to share any challenges that have negatively impacted your engagement and academic performance. The sooner we meet, the more options we will have available to us to support your overall academic success. If you are not comfortable speaking with me directly, please utilize the other student resources provided below in order to understand how to best approach success in this course given your personal needs as soon as possible.
Academic Accommodations Based on a Disability:
Students needing academic accommodations based on a disability should contact the Center for Accessible Education (CAE) at (310)825-1501 or in person at Murphy Hall A255. When possible, students should contact the CAE within the first two weeks of the term as reasonable notice is needed to coordinate accommodations. For more information visit www.cae.ucla.edu.
Academic Achievement Program:
AAP advocates and facilitates the access, academic success, and graduation of students who have been historically underrepresented in higher education; informs and prepares students for graduate and professional schools; and develops the academic, scientific, political, economic, and community leadership necessary to transform society. Learn more at http://www.aap.ucla.edu/
Academics in the Commons at Covel Commons:
(310) 825-9315 free workshops on a wide variety of issues relating to academic & personal success www.orl.ucla.edu (click on “academics”) Bruin Resource Center: Includes services for transfer students, undocumented students, veterans, and students with dependents. http://www.brc.ucla.edu/
Career Center:
Don’t wait until your senior year – visit the career center today! http://www.career.ucla.edu/
Center for Accessible Education (Formerly Office for Students with Disabilities):
A255 Murphy Hall: (310) 825-1501, TDD (310) 206-6083; http://www.cae.ucla.edu/
College Tutorials at Covel Commons:
(310) 825-9315 free tutoring for ESL/math & science/composition/and more! www.college.ucla.edu/up/ct/ Counseling and Psychological Services Wooden Center West: (310) 825-0768 www.caps.ucla.edu
Dashew Center for International Students and Scholars 106 Bradley Hall:
(310) 825-1681 www.internationalcenter.ucla.edu
Dean of Students Office:
1206 Murphy Hall; (310) 825-3871; www.deanofstudents.ucla.edu
Lesbian, Gay, Bisexual and Transgender Resource Center:
Student Activities Center B36; (310) 206-3628 www.lgbt.ucla.edu
Letters & Science Counseling Service:
A316 Murphy Hall: (310) 825-1965 www.college.ucla.edu
Library:
Get help with your research, find study spaces, attend a workshop, rent a laptop, and more. Learn more: http://www.library.ucla.edu/
Students in Crisis:
From the Office of the Dean of Students: Faculty and Staff 911 Guide for Students, commonly known as the “Red Folder.” This tool is intended to provide you with quick access to important resources for assisting students in need.
Student Legal Services:
A239 Murphy Hall; (310) 825-9894; www.studentlegal.ucla.edu
Undergraduate Research Portal:
The Undergraduate Research Portal helps students and faculty connect over research opportunities. It’s available now under the Academics tab on MyUCLA and can be directly accessed at, urp.my.ucla.edu
Undergraduate Writing Center:
Peer learning facilitators (PLFs) are undergraduates who understand the challenges of writing at UCLA. Scheduled appointment and walk-in options are available, see www.wp.ucla.edu/uwc for more information about writing programs and to get assistance with your writing.
UCLAONE.com:
UCLA ONE is UCLA’s interactive, online gateway for mentorship, professional networking, peer driven career advice and exclusive job leads. (Similar to LinkedIn for the UCLA community)
Message about Academic Integrity to all UCLA Students from UCLA Dean of Students:
UCLA is a community of scholars. In this community, all members including faculty, staff and students alike are responsible for maintaining standards of academic honesty. As a student and member of the University community, you are here to get an education and are, therefore, expected to demonstrate integrity in your academic endeavors. You are evaluated on your own merits. Cheating, plagiarism, collaborative work, multiple submissions without the permission of the professor, or other kinds of academic dishonesty are considered unacceptable behavior and will result in formal disciplinary proceedings usually resulting in suspension or dismissal.
Forms of Academic Dishonesty:
As specified in the UCLA Student Conduct Code, violations or attempted violations of academic dishonesty include, but are not limited to, cheating, fabrication, plagiarism, multiple submissions or facilitating academic dishonesty:
Cheating: Unauthorized acquiring of knowledge of an examination or part of an examination Allowing another person to take a quiz, exam, or similar evaluation for you Using unauthorized material, information, or study aids in any academic exercise or examination – textbook, notes, formula list, calculator, etc. Unauthorized collaboration in providing or requesting assistance, such as sharing information Unauthorized use of someone else’s data in completing a computer exercise Altering a graded exam or assignment and requesting that it be regraded
Plagiarism: Presenting another’s words or ideas as if they were one’s own Submitting as your own through purchase or otherwise, part of or an entire work produced verbatim by someone else Paraphrasing ideas, data or writing without properly acknowledging the source Unauthorized transfer and use of someone else’s computer file as your own Unauthorized use of someone else’s data in completing a computer exercise
Multiple Submissions: Submitting the same work (with exact or similar content) in more than one class without permission from the instructor to do so. This includes courses you are currently taking, as well as courses you might take in another quarter
Facilitating Academic Dishonesty: Participating in any action that compromises the integrity if the academic standards of the University; assisting another to commit an act of academic dishonesty Taking a quiz, exam, or similar evaluation in place of another person Allowing another student to copy from you Providing material or other information to another student with knowledge that such assistance could be used in any of the violations stated above (e.g., giving test information to students in other discussion sections of the same course)
Fabrication: Falsification or invention of any information in an academic exercise Altering data to support research Presenting results from research that was not performed Crediting source material that was not used for research
While you are here at UCLA, you may find yourself in a situation where cheating seems like a viable choice. You may rationalize to yourself that “Everyone else does it”…Well, they don’t. And will that matter when YOU get caught? NO! If you are unsure whether what you are considering doing is cheating, just ask yourself …how would you feel if your actions were public, for anyone to see? Would you feel embarrassed or ashamed? If the answer is yes, that’s a good indicator that you are taking a risk and rationalizing it to yourself. If after reviewing the information above, you are still unclear about any of the items – don’t take chances, don’t just take your well-intentioned friend’s advice – ASK your TA or your Professor. Know the rules - Ignorance is NO defense. In addition, avoid placing yourself in situations which might lead your TA or Professor to suspect you of cheating. For example, during an exam don’t sit next to someone with whom you studied in case your answers end up looking “too similar.”
Alternatives to Academic Dishonesty:
Seek out help – meet with your TA or Professor, ask if there is special tutoring available. Drop the course – can you take it next quarter when you might feel more prepared and less pressured? Ask for an extension – if you explain your situation to your TA or Professor, they might grant you an extended deadline. See a counselor at Student Psychological Services, and/or your school, college or department – UCLA has many resources for students who are feeling the stresses of academic and personal pressures.
Remember, getting caught cheating affects more than just your GPA. How will you explain to your parents, family and friends that you have been suspended or dismissed? How will it affect your financial aid award and/or scholarship money? Will you be required to, and be able to pay back that money if you are no longer a student? If you live in the residence halls, where will you go if you are told you can no longer live there?
You have worked very hard to get here, so don’t cheat! If you would like more information, please come see us at the Dean of Students’ Office in 1206 Murphy Hall, call us at (310) 825-3871 or visit their website at www.deanofstudents.ucla.edu. __
This syllabus was modified from: https://ceils.ucla.edu/resources/teaching-guides/syllabus-design/