|General Information||Weekly Schedule||University Policy||Lecture Notes||Example Code||Read-Only Board|
I. General Information
CSCE 315-913/914/915 Programming Studio: Fall 2020
Lectures [All sections]: MWF 12:00pm-12:50pm (ONLINE)
Lab [Section 913] Tue/Thu 8:00am-8:50am ZACH 353;
Lab [Section 914] Tue/Thu 6:45pm-7:35pm ZACH 310;
Lab [Section 915] Tue/Thu 8:00am-8:50am ZACH 310;
Credit hours = 3;
* Note: Students can choose to attend the lab session online.
The course is listed as a 2-hour per week lecture, and 2-hour per week lab, however the classroom/ONLINE sessions have been intentionally scheduled for 3 hours per week of lecture (along with the lab). We will meet a minimum of 2/3 of the allocated lecture periods over the course of the semester. The idea is to "front-load" these lectures in the earlier part of the semester, to cover material that might be useful when working on the programming projects, and spend less lecture time during the project periods themselves. Also, some days when the instructor travels might be used as some of the "missed" days. The specific list of days we will meet will be provided on the course web page.
There is a final exam time reserved for this class. Although the plan is to wrap up the course before this time, students should leave the final exam time available until instructed otherwise, since it might be used for project presentations or something similar. However, there will not be a final exam in the course.
Dr. Yoonsuck Choe
Intensive programming experience that integrates core concepts in Computer Science and familiarizes with a variety of programming/development tools and techniques; students work on 2 or 3 month-long projects each emphasizing a different specialization within Computer Science; focuses on programming techniques to ease code integration, reusability, and clarity.
Prerequisites: CSCE 312 and CSCE 314; or CSCE 350/ECEN 350.
Corequisite: CSCE 313.
As a writing intensive course (W), written material is an important part of the assignments in this course. Graded writing will account for 20% of each student's overall grade in the course, and the written portion must be passed to get credit for the class.
See W-C-Course Facts.
This course is intended as an intensive programming experience that integrates core concepts in Computer Science and familiarizes students with a variety of programming/development tools and techniques. Students will primarily work in small teams on month-long projects emphasizing different specializations within computer science. The course focuses on honing good programming techniques to ease code integration, reuse, and clarity.
The primary goal for this class is to have students emerge with strong programming skills, able to address both individual and team programming challenges competently. The class is meant to allow students to improve their programming skills through significant practice.
The expected accomplishments of the students are as follows:
- Become a confident software developer experienced in the full software development cycle.
- Become a capable and effective member in a small software development team.
- Become an effective communicator (both oral and written) within the context of software projects.
The students who take this course should be able to demonstrate the following upon the completion of this course.
- Knowledge of programming and debugging tools.
- Knowledge of various programming paradigms.
- Ability to design and refine large software systems based on rough system requirements.
- Ability to implement and test software system design.
- Ability to work as a member of a software project development team.
- Knowledge of various software development paradigms.
- Ability to manage software development projects.
- Ability to write technical documentation regarding software systems.
- Ability to communicate the overall design and details of software systems.
- Introductory-level knowledge in database systems, artificial intelligence, and software engineering.
We will be using the following textbook:
Other books that may be drawn from, and that might be useful references include both the first edition of Code Complete, as well as:
- Code Complete, 2nd edition, by Steve McConnell, Microsoft Press, 2004.
- The Practice of Programming, by Brian W. Kernighan and Rob Pike, Addison Wesley, 1999.
- Code Craft, by Pete Goodliffe, No Starch, 2007. (Note: this book is available to read online for free through TAMU).
Among the topics to be covered in lecture periods are:
Though many topics will overlap, this course is not intended to be as in-depth or comprehensive as a standard software engineering course, which focuses more on project management - students may take the software engineering class after taking this class.
- Style considerations in writing code
- Design of software sytems and APIs
- Coding beyond the single component
- Basic collaborative software coding practices
- Design for portability, performance, testability
- Specification and documentation
- Basic software tools and their use
- Object oriented design
- Design patterns
- Subject-specific topics related to the team projects
- Writing effective technical documentation
Note: You should expect to spend a significant amount of time (>10 hours/week) outside of class time on programming projects. This may require meeting with team members outside of the class/lab periods.
See the Weekly Schedule section for more details.
The grading will be based on various class activities:
There will be three projects in the course. Specific grading practices for each project will be announced when that project is given out, but the grade may include factors such as evaluation of code clarity, teamwork, etc. Peer evaluation may be used as a significant contributing factor to these grades (see below).
- Writing : 20% (two short reports, 400 words each; and one long report, 1200 words). To receive a passing grade in this course, you have to get a passing grade on the writing component: 70% of the 20%.
- Three projects: 65% : 1 individual project (
20%15%) and 2 team projects (project 2: 20%25%, project 3: 25%),
- Attendance: 5%, based on attendance (Online and/or Face to face). For online attendance (zoom), students logged in with NetID will be automatically logged by zoom. For face-to-face attendance, login to zoom with your mobile, laptop, or tablet when you're in the room. Every 2 absences will deduct 1% (out of 5%) of the attendance score. Excused absences will only be allowed for those listed in the university rules.
- Quizzes: 10%
The projects are scored by the team, however, different individual contribution can lead to differential grades given the same team score.
- i = individual score
- t = team score
- c = your contribution (X %, e.g., 25%). Sum of c for all members in the team should equal 100.
- d = contribution divisor (Y %, e.g., 25% for a team of 4, 33.3% for a team of 3, etc.)
- Formula: i = min( sqrt(c/d) * t, 110).
- Team got 90 and your contribution was 25% for a 4-person team.i = min (sqrt(25/25) * 90, 110) = min(1*90, 110) = 90.
- Team got 85 and your contribution was 35% for a 4-person team.i = min (sqrt(35/25) * 85, 110) = min(100.57, 110) = 100.57.
- Team got 95 and your contribution was 20% for a 3-person team.i = min (sqrt(20/33.333) * 95, 110) = min(73.587, 110) = 73.587
The grading scale expected to be used is: >90 = A; >80 = B; >70 = C; >60 = D; all else F.
Every two hours past deadline will lead to 1 point (out of total of 100) deduction from the assignment score. For example, if you scored 100/100 but submitted the assignment 12 hours late, your final score will be 94/100 (6 points penalty).
II. Weekly Schedule and Class Notes
|1||8/19||[First day of class] Introduction;[Chapters 1, 9.1, 9.2]; Project 1 announcement: PHP-driven web site||Thu: Team assignment survey, GIT, infinityfree setup||slide01.pdf
|2||8/24||Naming, Style, Commenting [Chapters 11.1, 11.2, 31]||Tue: Project 1: Design ; PHP basics||slide02-naming.ppt
|2||8/26||Software Design Principles;
[Chapter 5, Chapter 22]
|Thu: Project 1: Regular expressions; Handing data files||slide05-sw.ppt
|2||8/28||Software Design Principles ; Testing
||Project 1: data file + Wikitext processor code due (Sunday 11:59pm)||slide06-testing.ppt
|3||8/31||Test-Driven Development, Debugging [Chapter 23]
|3||9/2||Software Development Methodologies; Agile Development; Collaborative Code Development; Project 1 intermediate review||Thu: Project 1: Code review||slide09-methodology.ppt
||Project 1: interactive gallery code due (Sunday 11:59pm)||slide12-dp.ppt
|4||9/7||Project 2: Intro to Databases, Entity-relationship model, relational DB [Chapters 1, 9.1, 9.2];||Tue: Project 1: Code review||slide14-db.ppt
|4||9/9||Project 2: SQL Schema; Project 2 announcement||Thu:
Project 2 design
|4||9/11||Project 2: SQL queries;||Project 1 final version (including search) + written assignment due (Sunday 11:59pm)||slide16-sql1.ppt
|5||9/14||Project 2: SQL queries, Database implementation;||Tue: Project 2 Design||slide17-sql2.ppt
|5||9/16||API design||Thu: Project 2, Design
|Project 2 design documents due (Sunday 11:59pm)||slide20-xml.pptx
|6||9/21||Tue: Project 2, JDBC DB client|
|6||9/23||Code Portability; Code performance; Code Tuning [Chapter 25, 26]||Thu: Project 2: JDBC DB client||slide13-port.ppt
|6||9/25||Code Portability; Code performance; Code Tuning [Chapter 25, 26]||Project 2 DB client code due (Sunday 11:59pm)||slide13-port.ppt
|7||9/28||SOLID principles||Tue: Project 2: GUI||slide23-solid.pdf
|7||9/30||Writing tips||Thu: Project 2: GUI||slide24-writing.pptx
|7||10/2||Human Computer Interaction (HCI) introduction;
|8||10/5||No class||Tue: Project 2: DB analytics|
|8||10/7||HCI design principles and user studies;
||Thu: Project 2: DB analytics||Project 2 DB GUI code due (Wednesday 11:59pm)||slide26-hci2.pptx
|8||10/9||Project 3: G-Suite Add-ons;
Project 3 announcement
|9||10/12||No class||Tue: Project 2: DB analytics|
||Thu: Project 2: Code review|
|9||10/16||No Class||Project 2 final version due (Dashboard + writing)(Sunday 11:59pm)|
|10||10/19||Project 2 presentations (913: all teams)||Tue: Project 3 Design|
|10||10/21||Project 2 presentations (914: all teams)||Thu: Project 3, G-Suite hands-on demo|
|10||10/23||Project 2 presentations (915: all teams)||Project 3 Design documents due (Sunday 11:59pm)|
|11||10/26||No class||Tue: Project 3 G-Suites User interface|
|11||10/28||No class||Thu: Project 3 G-Suites UI Code review|
|11||10/30||No class||Project 3 user interface code due (Sunday 11:59pm)|
|12||11/2||Project 3 intermediate review||Tue: Project 3 : UI User Study: Teams 1, 3, and 5 (subject: Teams 2, 4, and 6, respectively [For 913 team 5, the TA and the instructor will be the subject])|
|12||11/4||No class||Thu: Project 3 : UI User Study: Teams 2, 4, and 6 (subject: Teams 1, 3, and 5, respectively)|
|13||11/9||No class||Tue: Project 3: Code review (major functionality)|
|13||11/11||No class||Thu: Project 3: Code review (UI)|
|13||11/13||No class||Project 3 major functionality code due (Sunday 11:59pm)|
|14||11/16||Project 3 intermediate review||Tue: Project 3: Code review|
|14||11/18||No class||Thu: Project 3: Code review|
|15||11/23||Course wrap up (with instructor)/ Course evaluation (in the absence of the instructor)||Project 3 final submission due (Monday 11:59pm)|
|17||12/7(Monday)||Final exam: December 7 (Monday): 11am-1:30pm, on Zoom: Project presentations||Degree candidate grades due 12/10|
III. University Policy
The university views class attendance and participation as an individual student responsibility. Students are expected to attend class and to complete all assignments.
Please refer to Student Rule 7 in its entirety for information about excused absences, including definitions, and related documentation and timelines.
Students will be excused from attending class on the day of a graded activity or when attendance contributes to a student's grade, for the reasons stated in Student Rule 7, or other reason deemed appropriate by the instructor.
Please refer to Student Rule 7 in its entirety for information about makeup work, including definitions, and related documentation and timelines.
Absences related to Title IX of the Education Amendments of 1972 may necessitate a period of more than 30 days for make-up work, and the timeframe for make-up work should be agreed upon by the student and instructor (Student Rule 7, Section 7.4.1).
The instructor is under no obligation to provide an opportunity for the student to make up work missed because of an unexcused absence(Student Rule 7, Section 7.4.2).
Students who request an excused absence are expected to uphold the Aggie Honor Code and Student Conduct Code. (See Student Rule 24.)
AGGIE HONOR CODE: An Aggie does not lie, cheat, or steal or tolerate those who do.
Texas A&M University students are responsible for authenticating all work submitted to an instructor. If asked, students must be able to produce proof that the item submitted is indeed the work of that student. Students must keep appropriate records at all times. The inability to authenticate one's work, should the instructor request it, may be sufficient grounds to initiate an academic misconduct case (Section 126.96.36.199, Student Rule 20).
You can learn more about the Aggie Honor System Office Rules and Procedures, academic integrity, and your rights and responsibilities at http://aggiehonor.tamu.edu.
For this class, certain aspects of the honor code need to be clarified.
- There may be times in this course where you or your team make use of external code/software/libraries. Whenever this is done, you must make sure that, in addition to following any restrictions on that code itself, you clearly document what the source of the external code was, and how it was used.
- There may be cases in this course where you or your team seeks outside assistance related to one of the projects. Any assistance received from people other than members of your team, the professor, teaching assistant, or peer teacher needs to be clearly documented.
- You will be working in team environments in this course, and your work as a team will be used to determine grades. As such, it is your responsibility, when asked, to:
- accurately describe the work that you have done on a team project. Claiming credit for work that you have not done or that others did instead is a violation of the code.
- accurately describe (to the best of your knowledge) the performance of other team members. "Covering" for another team member (claiming they did more work than you know they did) or "spiking" them (claiming they did less work than you know they did) are examples of honor code violations.
- prevent (as best you can) or report (known) violations of the honor code by your other team members. You share responsibility when a project is turned in; if you are aware of a teammate having violated the code in his/her work on the project, and do not report it, you are claiming credit for that violation yourself.
- MOSS will be used to check for plagiarism in your code.
If there are any questions or concerns about whether an action is appropriate, you should check with the professor or teaching assistant first. If in doubt, assume that it is not appropriate.
Texas A&M University is committed to providing equitable access to learning opportunities for all students. If you experience barriers to your education due to a disability or think you may have a disability, please contact Disability Resources in the Student Services Building or at (979) 845-1637 or visit disability.tamu.edu. Disabilities may include, but are not limited to attentional, learning, mental health, sensory, physical, or chronic health conditions. All students are encouraged to discuss their disability related needs with Disability Resources and their instructors as soon as possible.
Texas A&M University is committed to fostering a learning environment that is safe and productive for all. University policies and federal and state laws prohibit gender-based discrimination and sexual harassment, including sexual assault, sexual exploitation, domestic violence, dating violence, and stalking.
With the exception of some medical and mental health providers, all university employees (including full and part-time faculty, staff, paid graduate assistants, student workers, etc.) are Mandatory Reporters and must report to the Title IX Office if the employee experiences, observes, or becomes aware of an incident that meets the following conditions (see University Rule 08.01.01.M1):
Mandatory Reporters must file a report regardless of how the information comes to their attention including but not limited to face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Although Mandatory Reporters must file a report, in most instances, you will be able to control how the report is handled, including whether or not to pursue a formal investigation. The University's goal is to make sure you are aware of the range of options available to you and to ensure access to the resources you need.
- The incident is reasonably believed to be discrimination or harassment.
- The incident is alleged to have been committed by or against a person who, at the time of the incident, was (1) a student enrolled at the University or (2) an employee of the University.
Students wishing to discuss concerns in a confidential setting are encouraged to make an appointment with Counseling and Psychological Services (CAPS)
Students can learn more about filing a report, accessing supportive resources, and navigating the Title IX investigation and resolution process on the University's Title IX webpage.
Texas A&M University recognizes that mental health and wellness are critical factors that influence a student's academic success and overall wellbeing. Students are encouraged to engage in proper self-care by utilizing the resources and services available from Counseling and Psychological Services (CAPS). Students who need someone to talk to can call the TAMU Helpline (979-845-2700) from 4:00 p.m. to 8:00 a.m. weekdays and 24 hours on weekends. 24-hour emergency help is also available through the National Suicide Prevention Hotline (800-273-8255) or at suicidepreventionlifeline.org.
To promote public safety and protect students, faculty, and staff during the coronavirus pandemic, Texas A&M University has adopted policies and practices for the Fall 2020 academic term to limit virus transmission. Students must observe the following practices while participating in face-to-face courses and course-related activities (office hours, help sessions, transitioning to and between classes, study spaces, academic services, etc.):
- Self-monitoring: Students should follow CDC recommendations for self-monitoring. Students who have a fever or exhibit symptoms of COVID-19 should participate in class remotely and should not participate in face-to-face instruction.
- Face Coverings: Face coverings (cloth face covering, surgical mask, etc.) must be properly worn in all non-private spaces including classrooms, teaching laboratories, common spaces such as lobbies and hallways, public study spaces, libraries, academic resource and support offices, and outdoor spaces where 6 feet of physical distancing is difficult to reliably maintain. Description of face coverings and additional guidance are provided in the Face Covering policy and Frequently Asked Questions (FAQ) available on the Provost website.
- Physical Distancing: Physical distancing must be maintained between students, instructors, and others in course and course-related activities.
- Classroom Ingress/Egress: Students must follow marked pathways for entering and exiting classrooms and other teaching spaces. Leave classrooms promptly after course activities have concluded. Do not congregate in hallways and maintain 6-foot physical distancing when waiting to enter classrooms and other instructional spaces.
- To attend a face-to-face class, students must wear a face covering (or a face shield if they have an exemption letter). If a student refuses to wear a face covering, the instructor should ask the student to leave and join the class remotely. If the student does not leave the class, the faculty member should report that student to the Student Conduct office for sanctions. Additionally, the faculty member may choose to teach that day's class remotely for all students.
Students required to quarantine must participate in courses and course-related activities remotely and must not attend face-to-face course activities. Students should notify their instructors of the quarantine requirement. Students under quarantine are expected to participate in courses and complete graded work unless they have symptoms that are too severe to participate in course activities.
Students experiencing personal injury or Illness that is too severe for the student to attend class qualify for an excused absence (See Student Rule 7, Section 7.2.2.) To receive an excused absence, students must comply with the documentation and notification guidelines outlined in Student Rule 7. While Student Rule 7, Section 188.8.131.52, indicates a medical confirmation note from the student's medical provider is preferred, for Fall 2020 only, students may use the Explanatory Statement for Absence from Class formin lieu of a medical confirmation. Students must submit the Explanatory Statement for Absence from Class within two business days after the last date of absence.