CSCI 135  ANALYSIS & DESIGN 1     HUNTER COLLEGE  CITY UNIVERSITY OF NEW YORK

CSCI 135 SOFTWARE ANALYSIS & DESIGN

COURSE DESCRIPTION
This course is:
• An introduction to software development, using the C++ programming language. Software development is a skill that involves solving real-world problems by developing computer programs. Breaking a problem down, then creating a series of logical steps (an algorithm) that solves the problem is the conceptual part of the course. The technical component involves translating the solution into a working computer program. A successful student will be able to clearly and logically develop an algorithmic solution to a problem, while being comfortable enough with C++ to transform the the algorithm into a working computer program.
• A preparation for further courses in computer science. This course is one of the “ABCs” of computer science. Students who expect to succeed in more advanced courses in computer science need to go beyond understanding the material presented in this course – they need to master it. It’s sort of like the fact that you need to master the alphabet in kindergarten in order to be a successful reader in first grade.
• Time consuming, very, very time consuming. Any programming course takes up a lot of a student’s time. In addition to the time spent in class, most students will need to spend between 10 and 15 hours a week at a computer. That makes for a total of 15-20 hours a week actually developing algorithms, and writing and debugging programs, no kidding!

This course is not:
• An introduction to computers in general. We will not cover: operating systems, networks, databases, etc. This course teaches a specialized skill – developing solutions using computer programming – and only that. You should already possess basic computer skills such as compiling simple computer programs, editing files, manipulating files, etc. If you don’t feel comfortable with these sort of basic computer skills you should come talk to me.
• An overview of the C++ language. C++ is a huge language with a lot of highly technical details. We will cover the fundamentals of C++, but the focus is on designing algorithms and solving problems.
• A good idea to take if you are working full time and taking a full course load, or, for any other reason(s) you don’t have a lot of free time to devote to CSCI 13500. The course material requires many hours to master (see above). Be honest with yourself. Make sure this course is for you, now, at this point in your academic life. If you would like to discuss the time requirements further please feel free to come talk with me.

Other than during lecture quizzes I ask that all cell phones be put away in class.

PRE-REQUISITES
The prerequisite is CSCI 12700 or instructor’s permission. At the very least, you should have written, compiled, and run a program containing iteration while, for and selection if statements.

TEXT
Please see the main course page for instructions.

MAIN COURSE PAGE
You should check this page regularly, since all class materials will be gradually posted here.

TUTORING
There are dedicated computer lab for this course: HUNTER NORTH 1001B. It is staffed with tutors, who are there to help you. Please take advantage of them. You can ask for help with labs, projects, and general course material.

QUESTIONS
Ask many in lecture! Outside of lecture go to the tutoring labs. The department hired additional tutors especially for students taking this course. Email the instructor of your recitation section with any programming questions that the tutors cannot answer. The beginning of each recitation is also devoted to answering questions. All emails to instructors must start with your full name, day and time of your recitation section, and name of your recitation instructor.

GRADESCOPE
You will submit all labs, homeworks, quizzes, code reviews, and projects electronically through Gradescope. You will see your grades (including exam grades) on Gradescope as well. An invite email was sent to you before the first lecture. If you have not received it, ask your recitation instructor to send you another one right away: you will need to email him or her your full name, EMPLID, and a working email address.

BLACKBOARD
Make sure that you have configured BlackBoard to use your preferred email address (your Hunter email address, by default), since you are responsible for any email I might send there.

LINKS & INFO
Basic Linux command line commands
Linux Lab FAQ
How to setup a Unix environment on a Windows computer
Configuring Vim (and Vi) text editor

FINAL GRADE
3% all Homeworks, 1% for all three quizzes, 2% for each of the 13 Labs (.4% for each Lab Quiz), .5% for each of the 13 code reviews, 5% for each of the three projects. This may not seem like a lot, but beware that many exam questions will be based directly on homeworks, labs, and projects), 15% midterm, and 35% the final exam — however, you must pass the final exam in order to pass the course. Also: if you do better on your final then on your midterm, the higher score will replace your midterm score.

SOFTWARE
This course it taught in Linux and your programs must be able to run on a Linux platform. On campus, you may use the 1001C and 1001B labs to do your work for this course. The standard Linux/Unix/Mac OS C++ compiler is g++. If you wish to use a home computer, you can use a Mac. Macs have Unix command line and g++. You can install Ubuntu Linux. If you want a Linux environment on Windows without installing Linux, follow this excellent tutorial: okunhardt.github.io/documents/Installing_WSL.pdf . We have had problems in the past with students programming in a native Windows environment at home, and their programs don’t work in the Linux labs and might be incompatible with Gradescope.

LABS
Lab Assignments will be posted on the Main Course Page. You submit your solutions through Gradescope. The labs will be posted in advance. Please read the tasks before you come to class. You should try to finish and submitt all lab tasks by the end of the lab period.

LAB QUIZZES
There will be a lab quiz during each lab period.

CODE REVIEWS
There will be code review of one of your programs from the previous lab during each recitation period.

LATE AND MAKE UP POLICY
Ample time will be given to complete labs and projects. However, because of the logistics of running a large lecture course, there will be no late project or lab submissions.

LEARNING OUTCOMES
Show a deep practical knowledge of one widely used programming language. Implement a complete correct program utilizing all basic C++ concepts. Analyze and solve a non-trivial problem by designing and implementing a C++ program on your own. Apply principles of design and analysis in creating substantial programs and projects of realistic scope.

CLASS EXPECTATIONS
• From the beginning, you will be expected to work independently outside of the lectures. Get started right away – especially if you are going to install your own compiler and/or operating system. The first programming project is assigned during the first week.
• Absorbing the material and doing the assignments may be challenging. In order to grasp software development concepts one must sit in front of a computer many hours a week actually writing and debugging programs outside of class time. When it comes to programming, the learning is in the doing. There is no substitute for trying and failing, trying and failing, until you finally get your program up and running correctly. Get ample help from the tutors.
• Midterm and final exams are largely based on the labs, programming projects, and homeworks. It is essential that you complete them on time.

ACADEMIC INTEGRITY
We take academic honesty very seriously, and any violation results in sanctions in accordance with Hunter College procedure. Hunter College regards acts of academic dishonesty (e.g., plagiarism, cheating on examinations, obtaining unfair advantage, and falsification of records and official documents) as serious offenses against the values of intellectual honesty. The College is committed to enforcing the CUNY Policy on Academic Integrity and will pursue cases of academic dishonesty according to the Hunter College Academic Integrity Procedures.

BULLYING AND INTIMIDATION Bullying, cyberbullying, online hate, intimidation, threats, harassment, and pressure to share schoolwork are all forms of violence. CUNY holds a zero tolerance stance towards all such acts. The University is committed to prevention of any form of bullying, will respond promptly to threats and/or acts, and will protect victims of bullying from retaliation. As a criminal matter, the New York Attorney General defines cyberbullying as the use of email, websites, instant messaging, chat rooms, text messaging and digital cameras to antagonize and intimidate others.

DIFFERENTLY ABLED STUDENTS
In compliance with the ADA and with Section 504 of the Rehabilitation Act, Hunter College is committed to ensuring educational access and accommodations for all its registered students. Hunter College’s students with disabilities and medical conditions are encouraged to register with the Office of AccessABILITY for assistance and accommodation. For information and appointment contact the Office of AccessABILITY located in Room E1214 or call (212) 772-4857 /or VRS (646) 755-3129.

CUNY POLICY ON SEXUAL MISCONDUCT In compliance with the CUNY Policy on Sexual Misconduct, Hunter College reaffirms the prohibition of any sexual misconduct, which includes sexual violence, sexual harassment, and gender-based harassment retaliation against students, employees, or visitors, as well as certain intimate relationships. Students who have experienced any form of sexual violence on or off campus (including CUNY-sponsored trips and events) are entitled to the rights outlined in the Bill of Rights for Hunter College. a. Sexual Violence: Students are strongly encouraged to immediately report the incident by calling 911, contacting NYPD Special Victims Division Hotline (646-610-7272) or their local police precinct, or contacting the College’s Public Safety Office (212-772-4444). b. All Other Forms of Sexual Misconduct: Students are also encouraged to contact the College’s Title IX Campus Coordinator, Dean John Rose (jtrose@hunter.cuny.edu or 212-650-3262) or Colleen Barry (colleen.barry@hunter.cuny.edu or 212-772-4534) and seek complimentary services through the Counseling and Wellness Services Office, Hunter East 1123. CUNY Policy on Sexual Misconduct Link: http://www.cuny.edu/about/administration/offices/la/Policy-on-SexualMisconduct-12-1-14-with-links.pdf