GWU

CS 1111

Introduction to Software Development, Fall 2022

GWU Computer Science

Syllabus

Welcome to CS1111 -- Introduction to Software Development

This course will teach you how to program, using Java as the programming language. No previous programming experience is required!




Professor: Dr. Kinga Dobolyi

Research interests: Software testing, computer vision and natural language processing for biomedical applications, computer science education

Contact: Please feel free to reach out with any questions you have about the course, whether they are general, or about specific assignments or code! We ask that you use the Ed discussion board first, to get the quickest response (your question may also already be answered there too). Also, we love seeing students in our virtual and in-person office hours, detailed below.


Class Schedule and Office Hours:

Tuesday/Thursday 11:10AM - 12:25PM in MPA B07

Labs:
daytime and locationleadTAs
Thursday
(Sec 30)
6:10-7:25pm
SEH 1300 and SEH 1400
TBA TBA
TBA
TBA
Monday
(Sec 34 and 35)
2:10pm-3:25pm
TOMP 402 and TOMP 406
TBA
TBA
TBA
TBA
TBA

GTAs (grading of homework, quizzes and projects):
  • TBA
  • TBA
UTAs:
  • TBA
  • TBA
LAs:
  • TBA
  • TBA
  • TBA

Dr Kinga's contact information:
kinga@gwu.edu

Office hours: Wednesdays from 1-2:30pm (you can show up at anytime, no appointment needed), or email me for an appointment (between the hours of 9am through 4pm Monday through Thursday, schedule permitting, 15 minute appointment blocks). All Dr Kinga's hours will be online on Zoom.

Objectives - In completing this class, students will...

  • Demonstrate familiarity with key concepts in a procedural programming language such as: variables, data types, control structures, methods, input and output.
  • Demonstrate the ability to use programming to solve problems appropriate to a beginning class in programming and software development.
  • Acquire familiarity with rudimentary processes of software development that include: design, coding, testing, and debugging.

Structure - This class is broken into two main activities: lectures and lab.

  • Lectures will explore the main concepts of software development in the Java language, and will include significant portions of in-class programming. Everyone should have their laptops set up and ready to code before every lecture.
  • Labs will mostly be used for graded quizzes, which will be 45 minutes long. Each lab will typically start with a review session (20 minutes), followed by the 45 minute quiz.

The GW standard is that one credit hour corresponds to a minimum of 50 minutes of instruction plus 100 minutes of independent learning (e.g., homework and exam prep) per week. This is a 3 credit course, thus you should expect to spend 2.5-3 hours in class and 50 minutes in lab, plus four to five hours of independent learning per week, which may include completing programming assignments.

The amount of time you spend per week may be more or less, depending on the topic and the current assignments, but you should set aside time to complete your work for this class, both during lecture and out.

Prerequisites:

  • None! All are welcome and capable, regardless of previous programming experience.

Responsibilities - Students must

  • Attend all lectures unless you are sick, observing a religious holiday, or there is an emergency (please email the instructor if this happens). Please see GW's policies for religious holidays. We will be grading attendance by having students take quizzes and/or upload exercises they completed (in optional groups) to Blackboard during lecture.
  • Interact, ask questions, and generally participate in class discussions during lecture and on the discussion board. Participation points can be earned via discussions on the Ed discussion board, and/or by attending office hours.
  • Complete homeworks, graded lab quizzes, and the final exam individually. All other assignments can be completed individually or in groups.
  • When working with a group, contribute meaningfully and equally.

  • Try it! -- A common question is "will this work?", or "what will happen in this case?". The quickest way to find out is to run the program yourself! It's important to get comfortable with 1) looking at code that you've never seen before, or are not sure about and 2) being able to run it on your own to try to figure out how it might work.
  • Know your sources, and use them! -- The Javadocs webpage is invaluable to find utility methods to use. The syntax of Java is documented in many places online (for free!)
  • Planning is the best debugging! -- You should never jump into code before thinking about it thoroughly. Identifying test cases before you begin writing your code or thinking about a solution is the best way to write corret code quickly. Then, design your programs by breaking them into independently implementable chunks, and write and debug them one by one.
  • Practice methodical debugging! -- Spend time "stepping though" your program, statement by statement to understand the logic behind it, and why it is ending up in a buggy state. Understand why it doesn't work, and use that knowledge to change or even rewrite your program! Be able to debug using tools like the Java Visualizer, as well as by hand on a sheet of paper.

  • Webpage for the course (you are here)
  • Blackboard: we will use Blackboard to upload programming assignments, taking quizzes, and recording of grades.
  • Ed discussion board: Ed will be our discussion forum, the place where instructors will post all announcements, and the quickest and preferred way students communicate with the course staff and each other. Note that Ed allows both public posts (that the whole class can see) and private posts (that only instructors can see). We will make every effort to answer questions within 24 business hours, but usually sooner (often less than two hours during weekdays).
  • Textbook: None required. There are lots of free materials available online, though our lectures notes should also suffice for this course. For an excellent summary and study guide, see these notes.

Grade Calculation:

  • Participation (via Ed and/or office hours): 5%
  • Lecture participation (via quizzes): 5%
  • Homework assignments: 10%
  • Lab quizzes: 40%
  • In-class project: 15%
  • Final Exam: 25%


Final course grades are calculated as follows:
A (>= 92.0%) A– (>= 90.0%)
B+ (>= 88.0%) B (>= 82.0%) B– (>= 80.0%)
C+ (>= 78.0%) C (>= 72.0%) C– (>= 70.0%)
D (>= 60.0%)
F (< 60.0%)

Late Submissions:

We do not accept any late submissions. However, students will be able to drop their lowest homework assignment grade. You will also be able to re-attempt many lab quizzes for a higher grade using a makeup slot (see the course schedule). Students who do not attend the makeup slot must have a doctor's note or other documentation of an excused absence (according to GW policy and instructor discretion) to be given another makeup of quizzes. Delayed flights, vacations, and being busy with other courses are not accepted as excused absences.
If you are unable to attend the final due to an unforseen event like an illness, a doctor's note (or documentation for another university-approved excuse) will be required.


Re-grade requests and grades on Blackboard:

It is your responsibility to make sure that grades have been correctly entered in Blackbaord in a timely manner. Please make sure that Blackboard reflects your correct scores within two weeks of an assignment due date; we will not adjust scores after this deadline.

Please be aware that Blackboard does not weight overall course grades correctly. You can calculate your grade in the course at any time by referring to the raw scores on Blackboard, and using the weights above to calculate your grade in the class.

No assignments will be accepted for re-grade requests after final exam grades have been recorded in Blackboard.

Participation (via Ed and/or office hours):

You can earn points for either asking a question on Ed, or providing a meaningul answer on Ed. The instructors will signal that a Ed post has qualified for participation points by making a note in the post thread. When providing answers to other students, please don't just give them the correct code (these posts will not recieve participation credit) -- instead, help guide them towards the correct answer. Similarly, posts that just ask for an answer to a coding question will also not recieve participation credit.

Alternatively, you can also attend office hours to earn participation points.

At least three helpful posts as described above, and/or three visits to an office hour session, will earn you the full 5% for participation points this semester.

Lecture participation (via quizzes):

This course will be taught as a "flipped classroom" where students are expected to complete reading at home, and come to each lecture prepared to work on examples.

Most lectures will have a short quiz on the lecture notes/reading (or on homework/project exercises) at the start of class. These quizzes will be completed on Blackboard and will be open for two minutes at the start of class. Late submissions will not be accepted, and we will drop the three lowest such lecture participation quiz scores for the semester.

Homework assignments:

Homework assignments are coding assignments, and will be submitted on Blackboard and graded based on what percent of the provided test cases they pass, as well as use of good coding style.

Lab quizzes:

Lab quizzes and graded and will be completed individually during lab. Each lab quiz will be a new version (on each lab day as well to be fair to students taking quizzes on Thursdays vs Mondays). For many lab quizzes, you will have an option to retake the quiz for a higher grade the following week if you choose to do so. Labs quizzes will be graded based on how many test cases they pass. TAs will attempt to modify submitted code for compilation before running against test cases, but it is your responsibility to turn in code that compiles (as you will have seen these problems before). In getting code to compile, TAs will not modify the semantics of your code, just syntax. Submissions with too many syntax errors to correct (at the discretion of the TA) will not be able to be graded against the number of test cases passed, and therefore will receive a zero (and should be retaken the following week). We will not be dropping the lowest such lab quiz grade.

Project:

We will have an in-class, group-based project towards the end of the semeser that will involve designing and building a program to perform various Natural Language Processing (NLP) tasks in Java on a dataset provided by the instructor (or students may choose their own datasets). The project grade will be based on what the group produces. For example, if all team members feel their teammate contributed equally, that teammate recieves all the points for the project earned by the groupwork. If the team feels that a teammate only contributed 50% effort, that teammate will recieve only half the points of the project earned by the groupwork. Please email the instructors ASAP if you or your team are having trouble with your team members, so we can make arrangements to monitor and resolve the situation (which may involve breaking up teams).

Final exam:

The final exam will be completed on paper during the GWU standard final exam time and day.

Extra credit:

There will be lots of opportunities to earn extra credit this semester:
  • Each time you answer a question in lecture (make sure we ask you your name!) you will recieve extra credit, which will be used by the instructor to adjust your final letter grade by up to two percentage points. We will make every effort to try to call on students by who volunteers first, but we can't guarantee we'll always achieve this goal perfectly (we're human). We will also make attempts to balance who we call on in favor of students who have historically participated less. If you notice a pattern of the instructor not calling on you enough, please send an email so we can fix it going forward!
  • You can also earn extra credit on the in-person project towards the end of the semester, as detailed on the project instructions.

If you feel pressured about an assignment, please email the instructor instead of cheating. All work that you submit in this course for a grade should be your own as stated above. In cases where group work is permitted, please list all the names of the students you worked with. If we detect cheating, we reserve the right to assign the student a 0 on the assignment, or an F in the course for more egregious violations. We will also be using automated software to be checking for cheating with code that is submitted to us.

You are not allowed to collaborate on and graded assignment unless explicitly told to. Group assignments require collaboration within each group, but no collaboration between groups is permitted. Please refer to the academic integrity policy linked from the course web page. This policy will be strictly enforced: Academic Integrity Policy

If you are a student with a disability and you need academic accommodations, please see the instructor during the first week of class, and contact the Disability Support Services Office (DSSO). All academic accommodations must be arranged through DSSO.

University Policy on Observance of Religious Holidays: Students must notify faculty no later than three weeks prior to the absence, of their intention to be absent from class on their day(s) of religious observance. If the holiday falls within the first three weeks of class, the student must inform faculty in the first week of the semester. For details and policy, see “Religious Holidays” at provost.gwu.edu/policies-procedures-and-guidelines.

Counseling and Psychological Services (202-994-5300): GW’s Colonial Health Center offers counseling and psychological services, supporting mental health and personal development by collaborating directly with students to overcome challenges and difficulties that may interfere with academic, emotional, and personal success. healthcenter.gwu.edu/counseling-and-psychological-services.

Safety and Security:

  • Monitor GW Alerts and Campus Advisories to Stay Informed before and during an emergency event or situation
  • In an emergency: call GWPD/EMeRG 202-994-6111 or 911
  • For situation-specific actions: refer to GW's Emergency Response Handbook and Emergency Operations Plan
  • In the event of an armed Intruder: Run. Hide. Fight.

Use of Electronic Course Materials and Class Recordings: Students are encouraged to use electronic course materials, including recorded class sessions, for private personal use in connection with their academic program of study. Electronic course materials and recorded class sessions should not be shared or used for non-course related purposes unless express permission has been granted by the instructor. Students who impermissibly share any electronic course materials are subject to discipline under the Student Code of Conduct. Please contact the instructor if you have questions regarding what constitutes permissible or impermissible use of electronic course materials and/or recorded class sessions. Please contact Disability Support Services at disabilitysupport.gwu.edu if you have questions or need assistance in accessing electronic course materials.

It is our intent to present materials and activities that are respectful of: age, race, ethnicity, country of origin, language, religion, spiritual practice, sexual orientation, gender identity or expression, introversion/extroversion personality dimensions, and socioeconomic and mental/physical status. All people have the right to be addressed and referred to in accordance with their personal identity. In this class, we will have the chance to indicate the name that we prefer to be called and, if we choose, to identify pronouns with which we would like to be addressed. I will do my best to address and refer to all students accordingly and support classmates in doing so as well.

Instructor Communication


We encourage active communication and feedback between the instructor and students!

Please make sure to check Ed at least each weekday, as the instructors will post all important information there about the course (we will not be using Blackboard except for assignment submissions and office hours).

The instructor will also periodically reach out to students via an email check-in; when you get such an email, it doesn't mean you did anything wrong! We simply like to know how our students are doing and feeling as the course goes on, especially if there are things we can help with!

Of course, communication goes both ways: we would love to hear from you at any time during the semester about anything you're stuggling with (or enjoying) in the course -- please do not hesitate to reach out via email (and/or have an office hours session)!


Acknowledgements: thank you to Pablo Frank Bolton for course materials from previous semesters!