GWU

CS 1111

Introduction to Software Development, Spring 2024

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 MON 111

Labs:
daytime and locationleadTAs
Monday
(Sec 30)
11:10am-1:00pm
TOMP 405
Ryah Carpenter Grady McPeak
Thursday
(Sec 31 and 33)
6:10pm-8:00pm
SEH 1300 and 1400 and 1450
Grady McPeak Seth Kay
Vik Becker
Adil Bajwa

GTAs (grading of homework, quizzes and projects):
  • Grady McPeak, GTA (labs and grading), gradymcpeak@email.gwu.edu, Mondays 12pm-3:00pm, SEH 4th floor
UTAs:
  • Ryah Carpenter: Mondays 3:30-5:30pm, Tuesdays 6:30pm-8:30pm, Wednesdays 11:00am-1:00pm, 1st floor of SEH
LAs:
  • Seth Kay, Fridays 11am-2pm in SEH 4th floor couches
  • Adil Bajwa, Thursdays 3-6pm in SEH 4th floor couches
  • Vik Becker, no office hours

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

Office hours: SEH 4655 Tuesdays from 12:45pm-2:00pm (you can show up at anytime, no appointment needed), Zoom on Wednesdays from 8:45am-10am, or email me for an appointment (between the hours of 9am through 4pm Monday through Thursday, schedule permitting, 15 minute appointment blocks).

We also have an anonymous feedback form available for students in this class.

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 20-39 minutes long, as well as working on the project and other exercises. Most labs will start with the quiz, followed by exercises and presentations from the next topic in the schedule.

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.
  • When working with a group, contribute meaningfully and equally.

  • Webpage for the course (you are here)
  • Blackboard: we will use Blackboard to record grades, upload participation, and post videos of lectures.
  • 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.
  • Submit server for submitting homework and programming assignments

Grade Calculation:

  • Participation (via Ed): 2.5%
  • Lecture/lab participation (via quizzes and exercises): 2.5%
  • Homework assignments: 10%
  • Lab quizzes (quizzes 2-5): 55%
  • Lecture quiz (quiz 6): 20%
  • In-class project: 10%
  • Professionalism: up to -5%


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 and extensions:

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). We do not offer makeups for makeup quizzes. If you miss the last lecture quiz (quiz 6) you will recieve an incomplete for the course and will need to make it up by the first two weeks of the following semester via an in-person oral exam.


Re-grade requests and grades on Blackboard:

It is your responsibility to make sure that grades have been correctly entered in Blackboard 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 grades have been recorded in Blackboard.

Participation (via Ed):

You can earn points for either asking a question on Ed, or providing a meaningul answer on Ed. 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.

At least three helpful posts as described above will earn you the full 2.5% for participation points this semester.

Lecture/lab participation (via quizzes and exercises):

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 three minutes at the start of class. Late submissions will not be accepted.

Other lectures and labs will have short participation exercises that students will submit; these will also count towards participation.

We will drop the three lowest participation scores for the semester.

Professionalism:

Students are expected to treat each other, the TAs, and the instructor professionally both in-person and in online communications and work. If unprofessional behavior is observed, a student will first receive a warning. Afterwards, their final grade in the course may be reduced up to 5% (as a loss of the participation points this semester) for additional acts of unprofessionalism.
Unprofessionalism covers activities (or lack thereof) on the group project this semester (see below).

Homework assignments:

Homework assignments are coding assignments, and will be graded based on what percent of the provided test cases they pass, as well as use of good coding style. We will drop the lowest homework score when calculating final grades.

Lab quizzes:

Lab quizzes are graded and will be completed individually during lab; students will generally recieve 30 minutes for such a quiz. You will have an option to retake the quiz for a higher grade. We will not be dropping the lowest such lab quiz grade.

You have two options for lab quizzes: 1) you can choose to attempt a brand new, unseen problem, for 100 points, or 2) you can choose to attempt one of the sample quizzes for a cap of 80 points. If you later would like to use your chance to retake quizzes 2-5, this will be capped at a maximum of 80 points as the makeup will also be from one of the sample quizzes. Sample quiz versions are assigned randomly for each lab section.

Lecture quiz:

The last day of lecture will be used for Quiz 6; you will have only one attempt at this quiz.

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).

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. All code you submit must be your own work and not copied from the Internet (for example, you may NOT get code from ChatGPT unless explicity allowed in the project). If you use code we did not cover in class, you need to cite your sources with comments in your submitted code.

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

You are not allowed to use code you copied off the internet (including LLMs such as ChatGPT) unless explicitly instructed to do so on certain sections of the final project. Staff will not help you debug ChatGPT code during office hours or on Ed, and submitting such code can be grounds for an honor code violation.

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!