Skip to main content

Syllabus (Fall 2024)

Logistics

Course Info

  • Credits: 3 undergraduate or 4 graduate hours
  • Students who have already taken courses, such as CS 105, CS 125, CS 225 and equivalent or above, will NOT receive credits by taking this course, unless the student has contacted the instructor with an appropriate reason and approval is hence granted.

Course Time and Venue

Tuesdays and Thursdays 9:30-10:50 AM, Literatures, Cultures, and Linguistics Building (LCLB), Room G20

Office hours

  • Assistant Professor Yan Tang
    • 3:30-4:30 PM Thursdays @ LCLB, Room 4023.
  • TA Mingyue Huo
    • 3:00-4:00 PM Wednesdays; meeting over Zoom (link is available on Canvas/Campuswire) until further notice.

Required Textbooks and References

  • William, E. and Shotts, Jr., The Linux Command Line: A Complete Introduction

    This book is available for free in PDF format directly from the author under a Creative Commons license. If you want a paper, mobi, or epub copy, you can purchase this textbook in both paper and electronic formats directly from the publisher.

  • Ramey, C. and Fox, B., Bash Reference Manual

    This book is the authoritative reference manual for Bash. It is available for free in PDF format and other formats. While the William and Shotts textbook will be our main source of assigned readings on the command line, this reference manual should be the first place you look when you need to look something up about Bash.

  • Guido van Rossum, et al. The Python Tutorial and The Python Language Reference

    This is the authoritative tutorial and reference manual for Python. They are readily available on the official Python website. The offline version of the reference manual can be downloaded for free in various formats such as PDF, HTML and epub.

  • Elkner et al., How to Think Like a Computer Scientist

    A good starter book for first-time Python learners. It touches the ground and is easy to follow. Download for free.

  • Bird, S., Klein, E. and Loper, E., Natural Language Processing with Python

    While the 1st edition of this textbook is available for purchase, this class will use the online version.

  • Chacon, S. and Straub, B., Pro Git, Second Edition, Apress, 2014.

    As a quick reference for the use of git, this book covers most of the hands-on commands for common operations on Git. The book in multiple formats is available to download for free.

Required Tools and Software

  • Students are expected to have their own computers for exercises and assignments. Internet connection is also essential for connecting to the on-campus server and downloading lab exercises and homework assignments.

    Note that if you have trouble accessing a computer and/or internet on a demand basis in order to study this course, please contact the instructor as early as possible. They will work with the department, trying their best to accommodate and solve the issue.

  • Programming languages taught in this course include GNU bash of version 5.1 on Ubuntu 22 and Python of version 3.11.9

    All students will have an account to access the on-campus server (the “cl” server) running Linux. This allows students to carry on practice on bash command line tools anytime online. For Mac users, bash command line tools are already installed as a part of your operating system. However, occasionally the same command may differ in the flags it takes and in the outputs it produces on Ubuntu and Mac, due to the different versions. For Windows 10 users, a Linux environment can be installed using the Windows Subsystem for Linux (WSL). Official instructions for doing so can be found here. Regardless of which system an exercise or homework is completed, it must also be tested on the on-campus server (i.e. the “cl” server) – all the assignments will be graded based on their outputs running on the on-campus server.

    Students are responsible for installing the programming environment on their own computers. It is recommended that Python and relevant modules be installed via Anaconda Distribution.

  • Git software and GitHub account for assignment deployment and submission

    Git is a version control system that records changes to a file or set of files over time. For Mac users, the git software is built in the macOS, so nothing needs to be done. For Windows users, the binary installer can be downloaded from Git. While both 32- and 64-bit versions are available for downloading, Windows systems of contemporary versions should fully support the latter.

    Students are required to register a free GitHub account at https://github.com, where exercises and assignments will be submitted for grading during the course.

    All Github repositories associated with assignments in this course will be stored on the course Github account until the same course is offered again next year, by when all the repositories from the previous year will be deleted. Therefore, if needed, it is students’ responsibility for keeping a copy of their own repositories before they are removed.

If any student runs into trouble when setting up the software environment on their own machines, please reach out to the instructor and TA for help. A part of the lecture and the lab session of the first week will be devoted to making sure all essential software is installed and running.

Student Responsibilities

Knowledge and content scope

  • Some of the knowledge/contents involved in lab sessions may not be covered in lectures.
  • Some of the knowledge/contents involved in homework may not be covered in lectures or lab sessions.

Responsibilities

  • Students are responsible for all of the material covered in readings.
  • Students are responsible for all of the material covered in video lectures.
  • Students are responsible for all of the material covered in class.
  • Students are responsible for all of the material covered in homework.
  • Students are responsible for all of the material covered in discussions on Campuswire. This includes clarifications to homework and lab instructions.
  • Students are responsible for informing the instructors in a timely manner of any issues they have encountered during the course.
  • Students are responsible for the originality of their solutions/code.
  • Students are responsible for ensuring that their code runs on the “cl” server. If your code does not run, you will be given a score of 0 for that homework/lab assignment. You will have the opportunity to come during office hours and explain and debug your work for a revised grade. Test your code on the “cl” server before submitting.

Expectations

  • Students are expected to attentively read assigned readings and view assigned video lectures.
  • Students are expected to attend the entirety of every lecture and lab session and actively participate in the class.
  • Students are expected to develop self-learning and problem-solving abilities utilising all possible resources, e.g. office hours, textbooks, online content and discussion with peer classmates.
  • Students are expected to actively follow along and practice the examples presented in class.
  • Students are encouraged to conduct discussions with classmates.

Grading

Students will be assessed on the extent to which they have attained the learning goals and outcomes. This assessment will be primarily hands-on, assessed through a combination of daily practice, lab exercises, and homework assignments.

Grades are assessed on a 100-point scale:

  • Programming and scripting assignments make up 80% of the overall grade:
    • Weekly homework assignments: 50%
    • Lab exercises: 30%
  • Daily practice makes up 10% of the overall grade.
  • Attendance counts for 10% of the overall grade.

The final letter grade for this course will be converted from the numeric grade using the following table:

Numerical grade        Letter grade
98.00 - 100.00   A+
92.00 - 97.99   A
90.00 - 91.99   A-
88.00 - 89.99   B+
82.00 - 87.99   B
80.00 - 81.99   B-
78.00 - 79.99   C+
72.00 - 77.99   C
70.00 - 71.99   C-
68.00 - 69.99   D+
62.00 - 67.99   D
60.00 - 61.99   D-
< 60.00   F

DRES

If a student has a disability or condition that requires special consideration and accommodation, the student is expected to inform the instructor and the TA by email no later than the beginning of the fourth week. The message in the email should:

  • Include a scanned attachment of the requisite letter from the University Division of Disability Resources and Educational Services (DRES).
  • Include a detailed description of the accommodations that the student is requesting for this class.

To contact DRES students may visit 1207 S. Oak St., Champaign, call 333-4603 (V/TTY), or email disability@illinois.edu.

Academic Integrity

This course follows the University of Illinois Student Code regarding Academic Integrity. The College of Liberal Arts and Sciences also has an excellent web page on the topic. You are expected to read these resources prior to the second day of class, and to understand your responsibilities with regard to Academic Integrity.

Students’ Quick Reference Guide to Academic Integrity states that it is students’ “responsibility to refrain from infractions of academic integrity, from conduct that may lead to suspicion of such infractions, and from conduct that aids others in such infractions. “I did not know” is not an excuse.”

All work submitted for this class must be solely each student’s own. Violations of Academic Integrity include, but are not limited to, copying (from e.g. peer classmates, online sources, and AI tools), cheating, and unapproved collaboration. There is zero tolerance for any form of violation. Any violation of academic integrity, even unintentional, may result in penalties as stated in the Student Code and the course syllabus.

Should an incident occur in which a student is believed to have violated academic integrity, the instructor(s) will initiate the procedures outlined in the Illinois Academic Integrity Policy via Faculty Academic Integrity Reporting (FAIR), the system for reporting academic integrity allegations and violations.

Absences and Late Work Policy

Excused absence

If a student will be absent from class for any reason, the student is expected to inform the course instructor and the TA ahead of time should the student wish to receive penalty-free credit:

  • Each absence must be separately reported ahead of time via a private post on Campuswire to the instructor and TA
  • Each Campuswire post must be filed under the “Excused absence” category
  • Each Campuswire post must list the date of the absence
  • Each Campuswire post must list the reason for the absence
  • Each Campuswire post must mention whether or not makeup credit is being requested

No penalty-free credit will be granted if the procedure is not strictly followed. However, penalty-free credits for excused absence can be no more than 30% of the total attendance credits presented above. Once penalty-free credits reach the limit, no more credit will be granted for any form of absence.

Late work

In-class exercises during a lab session must be turned in by 23:59:59 the first Friday after the lab session takes place. A homework assignment is normally due by 23:59:59 the first Sunday after it is announced. Occasionally, one home assignment may be given two weeks to complete. In that case, the deadline will be on the second Sunday. Lab exercises and homework assignments turned in late will be docked 15 percentage points per day late.

Reference solutions for lab exercises and homework assignments will be presented after the deadlines. The solutions will typically be discussed during the class on the Thursday after an assignment is due. Under no circumstances will late work be accepted after the solution has been presented to the class.

Penalty-free late days

In order to accommodate extraordinary events, such as illness, students will be allotted a budget of four (4) penalty-free late days for which no late penalty will be assessed for lab exercises or homework assignments. Penalty-free late days are intended to accommodate unforeseeable extraordinary events, not poor planning or poor time management.

If a student wishes to make use of a penalty-free late day, the student must do all of the following prior to the current assignment deadline:

  • Post a private message on Campuswire to the instructor and the TA:
    • The message must be filed under the Campuswire category for that homework assignment.
    • The title of the message must be “Penalty-free late day (X of 4)”, where X is replaced by the number 1, 2, 3 or 4.
    • In the body of the message, the student must explicitly request the use of a penalty-free late day.
    • If the student does not receive a reply acknowledging the record from the instructors within 24 hours, a direct email may be sent to the instructors as a reminder.
  • In the student’s git repository for the assignment, the student must note the request in the appropriate file, check in the changes, and push the changes to the remote repository.

Only when all of these steps have been taken prior to the deadline will a penalty-free late day be applied. If a student wishes to make use of more than one penalty-free late day per assignment, all of the above steps must be performed separately for each penalty-free late day.

For unforeseeable matters (e.g. emergencies), the student should still notify the instructors afterwards about any reasons that caused the delay, as well as the intention to use penalty-free late day(s).

Penalty-free late days cannot be used to extend any deadline beyond the last regular day of class in the semester, nor be used to turn in work after the solution has been presented to the students.

Inclusive Statement

The effectiveness of this course is dependent upon the creation of an encouraging and safe classroom environment. Exclusionary, offensive or hateful speech (such as racism, sexism, homophobia, transphobia, etc.) will not be tolerated and in some cases subject to University harassment procedures. Both instructors and students all responsible for creating a positive and safe environment that allows all students equal respect and comfort. Everyone is, therefore, expected to help establish and maintain an environment where everyone can contribute without fear of ridicule, intolerance, or offensive language and behaviour.