15-110: Principles of Computing (Fall 2021)
Overview
Computing can be defined as the study of computational
processes that manipulate information. A computational
process is one that can be automated, and thus executed by a
computer. Therefore, one of the main underlying questions is:
what can be (efficiently) automated?
This course aims at introducing the science (and the art) of
computing to students with little or no prior background in
this subject.
Given the great amount of topics involved in
computing, the course will focus on a subset of its core
aspects, providing a brief, yet substantial introduction to
many concepts. The goal is to provide an idea of what can be
automated, and how to realize when it is useful (or, most often,
necessary) to employ computation and computers to accomplish a
complex goal.
The course will take the student along the way that starts
from a complex, possibly large problem to solve, and then move
step by step to its abstraction, to its formalization into an
algorithmic recipe, to the encoding of the algorithm using the
constructs of the python language, to the run-time
execution and error correction of the
programming code, to the efficiency analysis of the
developed algorithm and code.
Learning goals
- Understand what classes of problems computers are good at or are necessary for.
- Be able to analyze and abstract a given problem in a way which is amenable
to an algorithmic solution.
- Design algorithmic solutions.
- Judge the effectiveness of an algorithmic solution, and ways to improve it.
- Apply fundamental algorithmic solution techniques when
relevant.
- Code algorithmic solutions in Python.
- Debug and test Python code.
The Python constructs introduced throughout the course
include, but are not limited to:
- Basic datatypes (integer, strings, booleans, floating
point numbers)
- Arithmetic operations
- Conditionals
- Iteration/loops
- Composite datatypes (lists and dictionaries)
- Functions
- Input/Output and file processing libraries
Staff
Office: ARC/Zoom
Office hours:
- Tuesdays: 1:00am - 2:00pm
- Wednesdays: 1:00pm - 2:00pm
E-mail:
dazimzha@andrew.cmu.edu
Office: ARC/Zoom
Office hours:
- Wednesdays: 4:00pm - 5:00pm
- Thursdays: 4:00pm - 5:00pm
E-mail:
apacurar@andrew.cmu.edu
Office: ARC/Zoom
Office hours:
- Mondays: 5:00pm - 6:00pm
- Wednesdays: 5:00pm - 6:00pm
E-mail:
ttanveer@andrew.cmu.edu
Office: ARC/Zoom
Office hours:
- Mondays: 1:00pm - 2:00pm
- Thursdays: 8:30pm - 9:30pm
E-mail:
zhijiex@andrew.cmu.edu
Grading
- Homeworks: 15%
- Weekly, except on exam weeks
- To be solved individually (check the course policy on collaboration)
- Check the schedule for dates and deadlines
- Quizzes: 25%
- Weekly
- Administered at the beginning of the lecture or lab
- Individual and closed book, written
- Three midterms: 30% (10% each)
- Administered during normal class hours
- Individual and closed book, written
- Project: 10%
- Final exam: 20%
Homework Assignments
Getting the Assignments
The writeup and starter files for each homework assignment can be found on
Autolab.
Log in with your andrewID, select the course and then the assignment.
You can see the pdf
with the instructions by clicking on
"View writeup".
The starter code and template for typing your answers are in a
zip
file which can be downloaded by clicking on "Download
handout".
Uncompressing this file will create the directory
<asgn>-handout
with the starter code.
If you need to download these files again, be
careful not to overwrite your work!
We strongly suggest that you create one folder for each
assignment inside a folder dedicated for this course on your
machine. Submissions containing code from previous
assignments, or old code from the current assignment will not
be reconsidered.
Submitting the Assignments
You need to submit a .py
or a zip
file containing the completed
solution.
The file with your solution needs to be submitted to
Autolab.
It will immediately run a series of tests on your code and give you a
score with some feedback. Make sure to check it! If your code does not
pass all tests, you can submit it again until the deadline. You are limited to a total of 10 submissions
for each assignment.
The score received on Autolab may not reflect your final score
for the assignment, since the course staff will check the code
for style and for code similarity between students, to
ensure that you are not violating rules of academic integrity.
Quizzes (in-class)
The text with the questions of each Quiz will be available on
Canvas.
Log in with your andrewID, select the course and then the Quiz assignment.
You will find the pdf
with the questions. A paper version of the Quiz will be
provided in the classroom.
Quizzes must be answered exclusively using pen and paper!
You are not allowed to use devices, computers, books, notes, ...
At the end of the time given for answering the questions, you will use your phone to scan your answers on the
paper and you will submit on Canvas the scanned document in a pdf
format.
Policies
You are expected to comply with the
university policy on academic integrity (see also
The Word and
Understanding Academic Integrity).
Collaboration is regulated by the whiteboard policy: you can bounce
ideas about a homework with other students, but when it comes to typing
it down for submission, you are on your own. You are not allowed to use
notes, files, pictures, etc, from any previous discussion nor previous
versions of this course.
We will run a program that detects code similarity on all your homework
submissions. If students are found to have submitted almost the same
code, they will be contacted and this may result on an academic integrity
violation report.
An Invitation to Students with Learning Disabilities:
Carnegie Mellon University is committed to providing reasonable
accommodations for all persons with disabilities. To access
accommodation services you are expected to initiate the request and
submit a Voluntary Disclosure of Disability Form to the office of Health
& Wellness or CaPS-Q. In order to receive services/accommodations,
verification of a disability is required as recommended in writing by a
doctor, licensed psychologist or psycho-educational specialist. The
office of Health & Wellness, CaPS-Q and Office of Disability Resources
in Pittsburgh will review the information you provide. All information
will be considered confidential and only released to appropriate persons
on a need to know basis.
Once the accommodations have been approved, you will be issued a Summary
of Accommodations Memorandum documenting the disability and describing
the accommodation. You are responsible for providing the Memorandum to
your professors at the beginning of each semester.
Take Care of Yourself:
Do your best to maintain a healthy lifestyle this semester by eating
well, exercising, getting enough sleep and taking some time to relax.
This will help you achieve your goals and cope with stress.
All of us benefit from support during times of struggle. You are not
alone. There are many helpful resources available on campus and an
important part of the college experience is learning how to ask for
help. Asking for support sooner rather than later is often helpful.
If you or anyone you know experiences any academic stress, difficult
life events, or feelings like anxiety or depression, we strongly
encourage you to seek support. Counseling and Psychological Services
(CaPS-Q) is here to help: call 4454 8525 or make an appointment to see
the counselor by emailing
student-counselling@qatar.cmu.edu.
Consider reaching out to a friend, faculty or family member you trust
for help.
If you or someone you know is feeling suicidal or in danger of
self-harm, call someone immediately, day or night at 5554 7913. If the
situation is life threatening, call 999.