Syllabus
General Information
- Prerequisites: CICS 110 or equivalent programming experience.
- Authors:
- Ben Burns (bburns@umass.edu)
- Daniel Melanson (dwmelanson@umass.edu)
- Ibrahima Keita (ikeita@umass.edu)
Description
This hands-on course introduces students to prevalent technical tools and skills in the informatics and computer science curriculum. Advanced computer literacy is an essential skill that makes students more prepared, versatile, and productive. During this course, students will gain experience using the command line, version control, package managers, scripting languages, LaTeX, code editors, and more. Students will engage with weekly material during class under the supervision and leadership of upperclassmen. After class, students are expected to complete a small take-home activity to assess their resourcefulness and understanding of the material. After taking this course, students will have a breadth of new skills that will help them succeed in future coursework and industry positions. Intended for undergraduate computer science and informatics majors.
Statement of Inclusion
The staff for this course support the UMass commitment to diversity, and welcome individuals regardless of age, background, citizenship, disability, sex, education, ethnicity, family status, gender, gender identity, geographical origin, language, military experience, political views, race, religion, sexual orientation, socioeconomic status, and work experience. In this course, each voice in the classroom has something of value to contribute. Please take care to respect the different experiences, beliefs and values expressed by students and staff involved in this course.
Course Objectives
The objective of this course is to introduce students to common technical tools and skills utilized in the computer science and informatics curriculum here at UMass, at internships, and in research. These topics include:
- UNIX Commands
man
,cd
,ls
,pwd
,mv
,rm
,echo
,less
)- Control and redirection
- Git Basics
- Motivation
add
,commit
,status
,log
,branch
,diff
- Github
- Account
- Collaboration
- Pull requests
- Forks
push
,push
,remotes
,merge
- Package managers
- Editors
- VSCode, (Neo)Vim, Emacs
- Configuration
- Pattern Matching
- RegExp
grep
- Globbing
- Scripting
- Python
bash
,zsh
,sh
- LaTeX
- Cryptography
Course Format
Each week has a corresponding lecture, series of write-ups, and set of practice exercises. Exercises are designed to be completed weekly, and are designed to be completed in order.
Prerequisite Knowledge
Familiarity with a programming language (for example, Python or Java) is expected, for instance completion of CICS 110.
Required Materials
Any personal computer is workable, but access to a GNU/Linux or MacOS machine is preferred. Windows users will either setup Windows Subsystem for Linux (WSL) or SSH in the first week for access to a UNIX environment.