Syllabus | cs128@illinois

Introduction to Computer Science II

Summer 2021 as CS-199-128

University of Illinois at Urbana-Champaign

Instructor

Michael R. Nowak | Teaching Assistant Professor

Department of Computer Science, University of Illinois at Urbana-Champaign

mnowak1@illinois.edu | +1 (217) 244-8894  | nowakphd.com

Learning objectives

At the end of the course, a successful student should be able to:

Asynchronous lectures

This class breaks from traditional collegiate lectures by delivering course content through a series of asynchronous daily lessons available on-demand through our course website.  Each lesson introduces new material through a combination of text, video, and interactive walkthroughs.  You will find interactive coding exercises interspersed throughout each lesson, which are designed to reinforce the material that you have been reading about and listening to.  

Synchronous class meetings

Online lab on Mondays
5:00 pm to 6:15 pm CT

On Mondays you will attend a lab (via zoom) and will work collaboratively with a partner on interactive exercises and problem sets.  Each lab will be choreographed by a facilitator who will introduce the activities and answer your questions.

Other synchronous programs available

Office hours and help sessions

All course staff participate in running online office hours on the online help site. Both group and individual help sessions will be available, with available course staff dropping by periodically to offer suggestions and advice. Office hour times will be posted on the calendar.

Additional programs

CS 128 staff run many regular programs. Topics include new and old homework review, conceptual content, quiz preparation, and help with the longer machine project that you will complete this semester. Program times and details will be posted on the course calendar.

Note that CS 128 programs are not all just general help sessions. Some may be, but course office hours are the primary way to get help with a specific problem.

Onboarding

Before you can get started with the course, you will need to complete the onboarding process. Visit cs128.org and click on New User Signup. Once you've done so, you can get started (see next section).

Getting started

Once you've completed the onboarding process, please complete the tasks of the Getting started document (https://www.cs128.org/start) to learn what you need to complete before the course begins,

Assignments and grading

Course grades will be assigned according to this scale:

Minimum % of Total Points Earned

93.0%

90.0%

87.0%

83.0%

80.0%

77.0%

73.0%

70.0%

60.0%

Letter Grade

A

A-

B+

B

B-

C+

C

C-

D

* You will fail this course if you earn below 60.0% of the total available points

Method of evaluation

Course grades will be calculated using the following weights:

Machine problems

50%

Laboratory assignments

10%

Topic-review activities (TRAs)

40%

* No categories will overflow -- you cannot earn more than the total number of available points for each respective category.    

* We reserve the right to modify these weightings during the semester if unforeseen circumstances with course infrastructure warrant us to do so.

Machine problems

Topic-review activities

Laboratory assignments  

Course communication

We have set up a comprehensive and well-organized course website and discussion forum to help you find what you need to know. Our goal is to avoid email and other 1-to-1 forms of communication that don't scale well to large numbers of students.

There are two primary sources of information for CS-128:

  1. This website
  2. The course forum (discuss.cs128.org)

Most policy questions are answered in this syllabus. For almost anything else, search the forum—maybe another student has asked your question and we've already answered it. If you still can't find an answer, post your question on the forum.

What you’re responsible for

You are responsible for email sent to your @illinois.edu email address. We will occasionally use a course email list to send important announcements.

You are also responsible for announcement messages posted in the course forum (discuss.cs128.org). These announcements are important and we will frequently post in this category in lieu of using email.

Contacting the Course Staff

You may think that the professor spending five minutes responding to your email is not a huge problem. Five-minute responses to 100s of students can consume many hours though. We kindly ask you to post to the course forum (discuss.cs128.org).

This is not because we don't like you. It's simply because there are a lot of you, a much smaller number of us, and many of the questions that you have are shared by other students. If you email us, we can answer your question to one person: you. If you post on the course forum, we can answer your question to the entire class.  You may find that your question has already been answered by searching prior to posting, or that another student can answer it for you before the course staff.

Here is a general guide about how to contact the course staff:

In contrast, here are some cases where you can and should contact the course instructors:

Reporting problems

If you believe that you have identified a problem with a quiz or midterm question, machine problem, lesson, or otherwise, please report the problem to the course staff through a private note on the discussion forum. Do not post your questions publicly.

Copyright statement

The course materials used in this course are copyrighted. All material prepared for this class is copyrighted; this includes the syllabus, lecture slides and notes, exams, machine problems, lab work activities, etc. Given that all course material is a copyrighted work, you do not have the rights to copy or distribute the course material, unless the author expressly grants such permission.

Recording statement

Students may not record audio or video of any course activity unless the student has an approved accommodation from Disability Resources & Educational Services permitting recording. This accommodation letter must be presented to the instructor in advance of any recording being done. Students who are allowed to record classes are not permitted to redistribute audio or video recordings of statements or comments from the course to other individuals without the express permission of the faculty member and of any students who are recorded.

Academic Integrity

The University of Illinois at Urbana-Champaign Student Code should also be considered as a part of this syllabus. Students should pay particular attention to Article 1, Part 4: Academic Integrity. Read the Code at the following URL: http://studentcode.illinois.edu/.

Academic dishonesty will result in a sanction proportionate to the severity of the infraction, with possible sanctions described in 1-404 of the Student Code (https://studentcode.illinois.edu/article1/part4/1-404/). Every student is expected to review and abide by the Academic Integrity Policy as defined in the Student Code: https://studentcode.illinois.edu/article1/part4/1-401/. As a student it is your responsibility to refrain from infractions of academic integrity and from conduct that aids others in such infractions. A short guide to academic integrity issues may be found at https://provost.illinois.edu/policies/policies/academic-integrity/students-quick-reference-guide-to-academic-integrity/. Ignorance of these policies is not an excuse for any academic dishonesty. It is your responsibility to read this policy to avoid any misunderstanding. Do not hesitate to ask the instructor(s) if you are ever in doubt about what constitutes plagiarism, cheating, or any other breach of academic integrity.  It is imperative that each student clearly understand those rules and the severe consequences that can result from the adjudication of an Honor Code Violation.

By submitting anything to this course, electronically or otherwise, you are asserting the following: “I have neither given nor received unauthorized aid on this academic work. In particular, I certify that I have not received or given any assistance that is contrary to the letter or the spirit of the collaboration guidelines for this assignment.”

 

In particular, every student should understand that complicity – helping or attempting to

help another student commit an act of academic dishonesty – also constitutes academic

dishonesty and carries the same punishment as cheating.

Cheating

All work submitted to this course must be your own. Cheating in this course will result in a grade reduction, your removal from the CS program, or from the University of Illinois.  Specifically, the following activities constitute cheating and will be dealt with according to relevant departmental (https://cs.illinois.edu/academics/honor-code) and university (https://studentcode.illinois.edu/) policies. You may not:

  1. Turn in work that was completed by anyone other than yourself.
  2. Copy or paste code that you did not write from any source.
  3. Misrepresent your work as the work of another student.
  4. Examine another classmate's solution, reproduce it, and submit it as your own work.
  5. Share information about the content of quizzes or other private course assessments.
  6. Publish your MP or coursework anywhere where other students can find them. Note that this includes publishing your MP publicly on GitHub. Nobody wants to see your solutions to the MP anyway. If you want to impress employers, fill your GitHub page with your own independent projects.

We will run cheating detection software on all submitted student work. These programs are extremely accurate, and any evidence of cheating that they uncover will initiate academic integrity violation proceedings.  We are serious about this, and ask you to be serious about learning. If you want to learn more about how accurately this software detects cheating and plagiarism, read this article (https://www3.nd.edu/~kwb/nsf-ufe/1110.pdf).

A simple rule of thumb about collaboration

A general rule of thumb is that exchanging or soliciting ideas about how to solve the MP and TRAs is not cheating, but exchanging code is cheating. Feel free to discuss your solutions with other students as long as you do not provide them or allow them to view your source code. If you are talking in English or another spoken human language that's fine. If you are exchanging computer code, that's cheating.  An exception to the rule: collaboration (exchanging ideas, soliciting ideas, or otherwise) is not permitted on quizzes or midterms.

Penalties

If you are caught cheating in CS 128 you will (without question) receive a FAIR violation. Depending on the severity of the situation, you may also have any of the following penalties applied:

Plagiarism

Plagiarism is the presentation of the work of someone else without giving him or her due credit.

You can copy the words of others as long as you identify them as such. In fact, documented

use of program libraries is encouraged. Submitted work will be examined for plagiarism using

computer software designed for that purpose. Examinations are meant to measure the knowledge or skill of each individual, so giving or receiving unauthorized assistance during tests and quizzes is cheating. It is assumed that college students know what is honest and what is not.

Americans with Disabilities Act Statement

The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, you may visit 1207 S. Oak St., Champaign, call 333-4603, e-mail disability@illinois.edu or go to https://www.disability.illinois.edu.  If you are concerned you have a disability-related condition that is impacting your academic progress, there are academic screening appointments available that can help diagnose a previously undiagnosed disability. You may access these by visiting the DRES website and selecting “Request an Academic Screening'' at the bottom of the page.

Tentative Schedule

Week

Topics

1

Introduction to the C++ programming language
Compound data; Structured types; Basic i/o

2

Formal and informal testing

3

Compound types (pointers, references, arrays); Function argument passing and overloading

4

Classes; Data representation

5

Networking

6

Files and the filesystem; Databases

7

Memory

8

Dynamic memory in classes; vectors and lists

9

Generic programming using templates; inheritance and polymorphism

10

Trees

11

Graphs

12

Design patterns (eg. iterators)