This course teaches students the concepts needed for creating interactive web and mobile applications using modern technology. It covers topics including user interface and web design, basic HTML, Javascript, and Php, frameworks such as VUE and React, mobile frameworks such as NativeScript, security, testing, scaling to handle large numbers of users, internationaliation and accessibility. Students in the course work in teams to build a working web application for an outside client. Clients have included campus organizations, non-profits, local companies, and Brown enterprenurial students.
This course teaches students the concepts needed for creating interactive web and mobile applications using modern technology. It covers topics including user interface and web design, basic HTML, Javascript, and Php, frameworks such as VUE and React, mobile frameworks such as NativeScript, security, testing, scaling to handle large numbers of users, internationaliation and accessibility. Students in the course work in teams to build a working web application for an outside client. Clients have included campus organizations, non-profits, local companies, and Brown enterprenurial students.
This course teaches the concepts needed to create software-controlled embedded and real time systems. Topics include basic hardware and low-level software concepts, real time scheduling, modeling real time and embedded systems, and proving properties of the systems. We have converted a 1979 pinball to run using an Arduino as part of this course.
This course is designed to teach software engineering techniques that are used to create moderate to large sized programs. This includes design methodologies that scale and are geared toward larger, long-lifetime systems with multiple designers. It includes tools to assist the programmer and to assist and manage programmer teams.
This graduate course provides an overview of particular topics relevant to software engineering with a strong emphasis on research directions and where the field is going. It is designed both to familiarize the student with current research directions and where the field is going, and to lay the foundations for students wising to do research in the area.
This course combined the first two traditional courses (csci0150 and csci0160, object-oriented programming and algorithms and data structures respectively) into a single course for students with a prior programming background. The current invocation is a taught quite differently.
This course looks at problems in the humanities and social sciences that can be solved using appropriate data analysis and computation. It concentrates on application problems and not on programming or mathematics. This course is the result of a NSF CPATH project we have been working on. It is now taught as CSCI 0030.
This is a sophomore level software engineering course covering both advanced programming topics such as threads, user interfaces, web applications and software architecture, as well as project engineering and agile programming. Students design and write a team project. Homework assignments other than the project have been chosen to demonstrate different applications including computational biology, physics and natural language processing.
This was a new course on user interface design and development. In addition to covering basic HCI, it is project-based with an emphasis on group work. It is now taught as CSCI 1300.
This is a freshman seminar where the students will work as a team to build, test, and deploy a web application.
This course covered the basics of distributed systems, web computing, and parallel computing using MPI.
This ia a senior-level project course where students work in teams of ten to learn software engineering and to build a useful system.
This is a graduate seminar in covering various topics in user interfaces. The course is taught alternate years and tends to cover different topics each time it is taught. Possible topics this year include device-independent user interfaces and 3D desktops.
This is a seminar course on topics related to programming environments. This year we studied a collection of 30 papers relating to future directions for programming environments and concentrating on program analysis and verification.