Computer Science 493-H Fall, 2014 Functional Programming and Concurrency Instructor: Ray Morehead, M.D. 717 Engineering Sciences Building Office Hours: MW 10-1 ray.morehead@gmail.com Recommended Texts: Java Concurrency in Practice, Brian Goetz, et.al. Learn You a Haskell for Great Good, Miran Lipovača Scala for the Impatient, Cay Horstmann Programming Scala, Alex Payne and Dean Wampler Programming Scala, Oderskey & Venners Grading Distribution: Homework: 20% Examination: 15% Final Examination: 25% Project: 40% Grading policy: Grades will be curved, but there is not a predefined distribution. Instead, every effort will be made to have to grades reflect the student's effort and assimilation of the material. Do not be discouraged if you find the material difficult: this is by intent. Work hard and you should do well. Homework: This is primarily a coding class, and homework is where you get an opportunity to apply the material we are covering. Expect about one homework assignment a week. Although homework only counts 20%, it is essential to your understanding of the material, and frames my impression of you as a student, and I strongly recommend you do all homework. Your submissions will have a major impact on the shape of the grading curve. I do not accept late submissions, and please work alone. Project: There will be a final project in this course, where you can demonstrate the materials you have learned. For the purposes of the project only, you will form groups of 2 to 3 students. You have wide latitude in creating your project. You will have a short period in class during the last week to 10 days to explain and demo your project. You will create a web page where you can explain your project, post code, or demo your project however you see fit. Grading for the project will be entirely by peer review. Tentative Examination Dates: Exam 1: Friday, October 3, 2014 Final Exam: 7pm to 9pm, Thurs, December 11, 2014 Note that it is possible that these dates will change. If they do, the revised time will be
announced in class. You are responsible for all information provided in class. Class Policies 1. There are no makeup exams; absence from an exam must be approved by the instructor prior to the exam. Approved missed examination scores will be replaced with the final examination score. Failure to take two examinations will result in an F for the course. An absence from an examination must be approved by the instructor. 2. Class attendance is critical for success in this course. 3. NO WORKING TOGETHER ON HOMEWORK. Students are required to work alone on the project and homework. Evidence that the project or homework was not done entirely by the student will be regarded as cheating. Dispensation is per the University policies on academic integrity. 4. Project and homework assignments are due at the beginning of class in which they are due. Late submissions are not accepted. 5. The Laboratory Fee is not refundable after the first week of classes. A registration restriction for the succeeding semester will be imposed if the fee is not paid. 6. The final examination must be taken at the scheduled time (no exceptions!). 7. Please do not bring enabled cell phones to class! If you anticipate receiving a critical call during class, please notify the instructor before class. 8. Students may not audit nor may they "sit in for free." 9. West Virginia University is committed to social justice. I concur with that commitment and expect to foster a nurturing learning environment based upon open communication, mutual respect, and nondiscrimination. Our University does not discriminate on the basis of race, sex, age, disability, veteran status, religion, sexual orientation, color or national origin. Any suggestions to further such a positive and open environment in this class will be appreciated and given serious consideration. If you area person with a disability and anticipate needing any type of accommodation in order to participate in this class, please advise me of the same and make appropriate arrangements with Disability Services (2936700). Course Objectives: Understanding of functional languages: Haskell, Scala Practical understanding of concurrency: its benefits and problems. Technical approaches to programming in a concurrent environment. Benefits of functional programming in concurrency Applied techniques, synchronization and blocking, futures, actors, Learning Outcomes: 1. The student will understand the concepts and terminology appropriate to the study of concurrency. Assessment: examination and assignments
2. The student will be exposed to core techniques in concurrency management Assessment: examination and assignments. 3. The student will develop skills in functional programming and understand its value in concurrency management. Assessment: examination and assignments
Course: Semester: Fall 2014 Course Format: Instructor: CS 493M; CS 691C Human Computer Interaction (HCI) Lecture (3 credit hours) Dr. Thirimachos Bourlai Office: Rm. 177 Engineering Sciences Building (Addition) Phone: (304) 293-4326 Email: Thirimachos.Bourlai@mail.wvu.edu Course Description: The course will provide an overview of human-computer interaction (HCI). Through lectures the students will learn the fundamentals of HCI, design thinking, and implementation. The combination of attending lectures and weekly assignments will provide the students with the necessary knowledge, understanding and basic HCI skills, including awareness of good and bad design through observation of existing technology, task analysis, and analytic and empirical evaluation methods. Each week they will have to present and discuss their work with peers. The setting for the course will be on a broad range of emerging topics, ranging from computer and mobile applications to brain machine interfaces. The course participants will be focused on the Development Challenges with Current and Emerging HCI Technologies. Course Requirements: a) Each student will have to prepare and present certain key or novel concepts of HCI in class every week (their work will be discussed with their peers and evaluated by both the instructor and their peers). For example, a novel HCI design in apple tablets published in CHI conference etc. b) Students need to prepare for a late mid-term exam where various HCI questions and concepts will need to be answered and discussed (multiple-choice; detailed explanation of HCI concepts and definitions) c) Undergraduates: need to prepare for the final week exam where they will have to present in class one state-of-the-art HCI conference or journal paper in the area of HCI (example high-end conference are CHI or Mobile HCI etc.). Implementation of the paper or the paper concept (e.g. mobile application) will count as a bonus. d) Graduates: What is expected for the UGR, as described in (c) above, plus the code development (i.e. paper implementation) or Design and develop their own (after an agreement with the instructor) HCI/MobileHCI concept (i.e. a quarter-long project) that will be
demonstrated in the class (final week). This needs to be accompanied with a final report. GRA students can work either independently or in teams of up to 2 students on the quarter-long project (Note that a GRA student needs to lead each team; the project and the class allows for an UGR student to be a team mate of the GRA student). Projects (or papers and development code) should address one of the following three design briefs: (1) change, (2) time, and (3) glance. Course Objective: Time & Location: Office hours: Prerequisites: At the end of the course, students will gain a broad perspective in the area of HCI. Their gained knowledge from the course will be illustrated through the final week demos that will be openly presented to their peers. Any WVU faculty and staff will be able to attend the final presentations. MWF 10:00pm - 10:50pm Location: ESB 215 Friday 9 a.m. to 9:50 a.m. or by appointment Good Programming Skills are expected in any of the following: C, C++, C#.NET, Java, Matlab or other (e.g. related to Website development etc.) Objectives: Understand the foundations of Human-Computer Interaction Develop the ability to build a simple graphical user interface Be able to perform Human-Centered Software Evaluation Be able to perform Human-Centered Software Design Be able to perform Graphical User-Interface Design Understand the foundations of Graphical User-Interface Programming Learn the main HCI Aspects of Multimedia Information Systems and the web Learn the main HCI Aspects of Group Collaboration and Communication Technology Textbooks: - Class notes and handouts - Reading material will also be posted to course website or handed out in class Reference books: Supplementary material: 1. Panayiotis Zaphiris and Chee Siang Ang, Human Computer Interaction: Concepts, Methodologies, Tools, and Applications, Information Science Reference, Information Science Reference, 2009.
2. Richard Harper, Tom Rodden, Yvonne Rogers and Abigail Sellen, "Being Human: Human-Computer Interaction in the year 2020", Microsoft Research Ltd, 2008. 3. Alan Dix, Janet E. Finlay, Gregory D. Abowd, and Russell Beale, Human-Computer Interaction, Prentice Hall, 2003. Grading: Semester grades will be roughly computed as follows: o Attendance & Participation: 5% o Quizzes + Class Work: 20% o Midterm Exams: 25% o Assignments: 20% (10% report and 10% presentation) 1-2 presentations on HCI concepts - depending on the number of students in class; certain topics of HCI will need to be prepared (report) and presented in class o Final Week (i) UGR Conference or Journal paper: Presentation 30% Conference or Journal paper: Presentation + Code (30% plus). An additional 10% bonus may be provided depending on the quality of the work (developed code). (ii) GRA Conference or Journal paper: Presentation + Code with associated Report (30% plus). Note: An additional 10% bonus may be provided depending on the quality of the work (developed code). Own project: Presentation + Code with associated Report (30% plus). Note: A bonus may be provided depending on the quality of the work (developed code). Additional 10% bonus may be provided depending on the originality of the project and its impact. - Quizzes (when applied) will seek to determine students level of mastery of fundamental principles and methods developed in lectures and text, reinforced and expanded upon through homework and project assignments. Actual dates will be chosen during class. - Letter grades will be determined on a 10-point scale (90-100%=A, 80-89%=B, etc).
Schedule (HCI): The schedule is subjective to change and changes to the public schedule will be announced in the class. Week Lecture Title Homework 1 # 01 - Course Introduction - What is Interaction Design? HCI History 2 # 02 - What is Interaction Design? HCI History (Cont.) - Understanding and Conceptualizing Interaction 3 # 03 Data Gathering 4 # 04 Data Analysis, Interpretation and Presentation 5 # 05 Understanding Users 6 # 06 Designing for Collaboration and Communication 7 # 07 Affective Aspects 8 # 08 Interfaces and Interactions (including but not limited to Brain Machine Interfaces) 9 # 09 The Process of Interaction Design 10 # 10 Identifying Needs and Establishing Requirements 11 # 11 Mid Term Exam 12 # 12 Design, Prototyping and Construction 13 # 13 Introducing Evaluation 14 # 14 An Evaluation Framework 15 # 15 Thanksgiving Week 16 # 16 Usability Testing, Field Studies, and Analytical Evaluation 16 # 17 Final Exam Attendance and Late Assignments: Academic Honesty: Students are expected to make every effort to attend class and arrive on time. Make-up exams will only be offered if prior arrangements are made with the instructor. All graded homework sets will be worth 100 points per set. Unexcused late homework assignments and reports will lose 10 points per day starting at the beginning of the lecture due (i.e. assignments handed in after homework is collected at the beginning of class, even during the same lecture, will be considered late). The integrity of the classes offered by any academic institution solidifies the foundation of its mission and cannot be sacrificed to expediency, ignorance, or blatant fraud. Therefore, rigorous standards will be enforced of academic integrity in all aspects and assignments of this
Social Justice Statement: course. Students in the Lane Department of Computer Science and Electrical Engineering are expected to behave ethically and professsionally. A statement to this effect will be included as a reminder on all examinations and is implicit when the student places his or her signature on tests and homework assignments. In addition to the WVU policies on cheating in the WVU student Handbook, the Lane Department and your instructor add the following: In particular, academic dishonesty, including plagiarism and cheating, will not be tolerated. If a student submits any assignment (report, project, homework, portfolio, exam, etc.) under his or her name that has been reproduced in any part or in whole from the work (paper or electronic) of others without specifically citing the source, they are being academically dishonest. They are also being dishonest if they knowingly allow their work to be submitted by someone else without acknowledgement that it is theirs. If a student is found to be academically dishonest, in addition to WVU sanctions that can lead to expulsion from the program, and/or from WVU, the Lane Department and the Professor will take the following action: Per the Student Handbook, the instructor may choose any of the following: The student may receive a zero score for the applicable assignment. A notation will be placed in the student s file (if you are a Lane Department major) AND sent to the student s advisor and the Department Chair. The student may receive an F in the applicable course. An additional notation will be made. The student may be dismissed from the class and prevented from taking any Lane Department class in the future. The student may be dismissed from WVU. The West Virginia University community is committed to creating and fostering a positive learning and working environment based on open communication, mutual respect, and inclusion. If you are a person with a disability and anticipate needing any type of accommodation in order to participate in this class, please advise me and make appropriate arrangements with the Office of Disability Services (293-6700). For more information on West Virginia University's Diversity, Equity, and Inclusion initiatives, please see http://diversity.wvu.edu