Skip to main content

Syllabus

General Information

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.

Communication

Grading Policy