Introduction To Programming System Design
Introduction To Programming System Design
This course covers programming in Java and C++. Topics include review of basic
programming concepts such as control structures, functions, and arrays; coverage of more
advanced programming topics such as classes, recursion, and linked lists; use of a
container class library to program with tools such as a map class and a sort function; and
an introduction to algorithm analysis. There will also be an emphasis on good development
techniques such as good code style and documentation, unit testing and use of debugging
tools. A second goal of the course is to introduce the Unix programming environment,
including tools such as the shell, simple shell scripts, and makefiles.
Prerequisite: minimal programming experience in some high-level language (can program
with loops, if statements, and call and write functions with parameters)
Instructor
Contact Info
Claire Bono
[email protected] | SAL 310 | 213-740-4510
Lecture
3 hours / week
Lab
2 hours / week
Textbook
Assignments
Computing
environment
All submitted programs must compile and run on aludra Sun java compiler for java
programs and the g++ compiler for C++ programs. Aludra is a time-share Unix computer on
the SCF file system. You can access it remotely from PC's on or off campus using the xwin32 software, or from Macs using the X11 or XQuartz application. The first lab will be
focused on introducing the programming environment.
If you choose to develop your programs on your own computer using another environment
(e.g., Eclipse or Visual C++) you are responsible for making sure your code compiles and
1
rev 8/18/13
Labs
The lab is intended for practicing some of the techniques learned in class on the computer
in an environment where you can get immediate help from the teaching assistant.
Labs meet once a week for two hours. They will start the first week of classes. You will be
given the lab exercises a few days before the lab: some require some advance preparation.
You may complete the lab exercises before the lab period if you wish, but they are due
during your lab section. If you finish early, you are free to leave (once you get the lab
checked off) or spend the rest of the time working on your other CS 455 assignments.
Each set of lab exercises usually can earn you up to 4 points. There be will up to roughly
40 lab points total. To take some of the pressure off the lab score only 80% of the available
points are applicable towards your final score in the class (but scaled to be worth 10% of
the total course score). This gives you some leeway if you have to miss a lab, or if you
don't have time to solve all of the problems one day.
Den students. Den students will complete their labs remotely, and submit them
electronically. Den students do not have to be available during the lab session. They can
get help on the lab the same way they do for other assignments: generally via email
(whenever) or by phone (during office hours or by appointment) with someone on the
course staff.
Exams
All exams are closed book, closed note. Makeup exams will not be given. Absence due to a
serious illness will be an acceptable reason for missing an exam, and the final grade will be
scaled accordingly. The exam dates will be announced the first day of class.
Website
https://www-scf.usc.edu/~csci455
Grading
The following is the relative weight of each part of the course work. At the end of the
semester, you will have a score out of 100 percent. This score will be used in a class curve
to arrive at a letter grade. I guarantee that >=90 will be some kind of A, >=80 will at least be
some kind of B, >=70 will at least be some kind of C, and that >=60 will at least be some
kind of D.
Programming assignments
Labs
Midterm Exam 1
Midterm Exam 2
Final Exam
Total
30%
10%
10%
20%
30%
100%
Policy on regrades (e.g., if you think there was a scoring mistake on your work): you
have until one week from when you get the graded work back to initiate a regrade. For
programming assignments: if you have questions about your grade, send email to the
grader (his/her name should appear at the bottom of your detailed score file). For exams:
please come see the instructor in person.
Academic
Integrity
The USC Student Conduct Code prohibits plagiarism. All USC students are responsible for
reading and following the Student Conduct Code, which appears in the sections on
University Governance (sections 10.00-16.00) in the current version of SCampus.
SCampus is available on the web at http://scampus.usc.edu (follow the link on University
Governance on the left).
In this course we encourage students to study together. This includes discussing high-level
general strategies to be used on individual assignments. But it would not, for example,
include jointly developing pseudo-code for an assignment solution with another student. All
work submitted for the class is to be done individually, unless an assignment specifies
otherwise. Also, all exams are closed book, closed note.
Some examples of what is not allowed by the conduct code: copying all or part of someone
else's work and submitting it as your own, giving another student in the class a copy of your
assignment solution, consulting with another student during an exam, using a solution or
adapted solution to an assignment that you found on the web. The outside code resources
students will be allowed to use in assignments for this class are limited to code written by
the course staff for the purposes of helping students in the course, or code from the
textbook for this course. If you do use any such code not written by you, you are required
to acknowledge your sources in your README file. If you have questions about what is
allowed, please discuss it with the instructor.
Because of past problems with plagiarism in this and other computer science courses, we
may be running all submitted programming assignments through sophisticated plagiarismdetection software.
Violations of the Student Conduct Code will be filed with the Office of Student Judicial
Affairs and Community Standards (SJACS), and appropriate sanctions will be given. The
sanctions are usually a lot more severe than not submitting the assignment.
Students
with
Disabilities