Department of Computer Science, University of Miami
CSC120 - Computer Programming I
Spring 2024


Description

Learning Objectives

  1. Understand how computer systems work
  2. Be able to convert problem descriptions into algorithmic solutions
  3. Be able to program using basic programming constructs
  4. Be able to program using object oriented techniques
  5. Be able to manage software using a repository
  6. Be able to test and debug software

Preparation

CSC120 has the prerequisite CSC115 or MTH161 (or equivalent courses). Students who do not meet the pre-requisite must tell the instructor.

Every student must have their own computer to work on, and a laptop is best because you can bring it to on-campus lectures and lab sections. Windows, Mac, and Linux are all acceptable. We will be using the IntelliJ IDEA tool for writing Java programs. You can install it on your laptop in advance from https://www.jetbrains.com/edu-products/download/#section=idea, and in the first lab session we'll help you to ensure that you have it working correctly.

Instructors

Dr Geoff Sutcliffe. Contact details are on the web at http://www.cs.miami.edu/~geoff.

Teaching Assistants

Hien Nguyen
Nicey Raiyani
Gabrielle Mraz
Carlos Rodriguez
Sonia Shah
Somak Shivlani

Contact Hours

Each week there are two 75 minute lectures:

Resource materials

The course uses an online textbook from zyBooks. A subscription is $64 and will last until 31st May.

Another recommended text is:

Course content, laboratory tasks, and assignments will be available on the web.

Assessment

15% Programming project 1 (due somewhere in the middle of semester)
20% Programming project 2 (due at the end of semester)
5% zyBook Participation (normally due at 8am on Tuesday)
10% zyBook Challenges (normally due at 8pm on Friday)
20% Laboratory tasks (graded in lab sections)
10% Midterm test (7th March, in class)
20% Final exam (2nd May, 2:00-4:30pm)
In order to obtain a particular grade, you might be required to attain that grade in all items of assessment.

Assignments will be placed on the web. The submission requirements for each assignment will be given with each assignment. Late submissions will not be accepted. Extensions of the due date will be granted if supporting documentary evidence is supplied (e.g., a doctor's certificate). Application for an extension must be made to the instructor before the due date (if possible).

Assessment items must be completed individually. While general interaction between students is encouraged, plagiarism is a breach of the Honor code. The university requires faculty to report all instances of academic integrity violations: Faculty must immediately report the suspected violation to the Department Chair (or relevant administrator in the non-departmentalized schools) and complete the online Academic Integrity Reporting Form. The Department Chair will immediately inform the Academic Dean for Undergraduate Studies of the school. See the Students Rights and Responsibilities Handbook. That really means ... It is ok to talk to other students or online resources (e.g., generative AI tools) about general solution techniques for assignments, but it is not ok to copy solutions in part or as a whole. Plagiarism will result in a loss of marks and/or fingers for all guilty students involved.

You are welcome to use AI-tools to help you program. Beware, the programs generated by AI-tools often do not meet the requirements of CSC120, e.g., they might use programing techniques or constructs other than what has been taught in the course up to that point (which is not permitted - see the Laboratory Tasks instructions). Your work must also demonstrate the required Programming Style, and AI-generated code often is nasty nasty nasty.